Instalowanie Apache, PHP i MySQL w systemie Linux

Zaleca się używanie popularnej i dobrze wspieranej dystrybucji Linuksa, 32-bitowej (x86) lub 64-bitowej (amd64).

Istnieją dwie duże rodziny dystrybucji Linux: Debian i Red Hat. Debian to darmowy projekt o otwartym kodzie źródłowym. Ma on kilka odmian (dystrybucji), z których najpopularniejszą jest Linux Ubuntu. Red Hat to komercyjny rozproszony system operacyjny, który ma darmowe odmiany o nazwach Linux CentOS i Linux Fedora.

Red Hat Linux jest rozwijany przez Red Hat Inc. Red Hat Linux (lub jego darmowa modyfikacja CentOS) jest znany jako korporacyjny system operacyjny. Jego główną zaletą jest stabilność (niski wskaźnik awarii systemu). Ta stabilność jest jednak osiągana dzięki starannemu doborowi oprogramowania dostępnego "po wyjęciu z pudełka". Kiedy instalujesz taki system operacyjny w celu rozwoju aplikacji PHP, ta strategia może stać się problemem, ponieważ masz dostęp do starej (choć stabilnej) wersji PHP i innego oprogramowania. Nie znajdziesz nowego oprogramowania w repozytorium, więc jeśli chcesz go zainstalować, musisz pobrać go gdzieś, przeczytać instrukcję i ewentualnie (jeśli nie masz szczęścia) skompilować go samemu.

Z powyższych względów do programowania PHP lepiej wybrać Linux Ubuntu. Ubuntu jest rozwijany przez Canonical Ltd. Linux Ubuntu ma dwie edycje: Desktop Edition i Server Edition. Ubuntu Desktop to dystrybucja zawierająca środowisko graficzne, podczas gdy wersja Ubuntu Server ma tylko terminal konsolowy. W celu rozwoju aplikacji PHP zaleca się korzystanie z edycji Desktop.

Canonical zwykle wydaje nową wersję Linux Ubuntu co 6 miesięcy, w kwietniu i październiku, oraz wersję LTS co 2 lata. Na przykład w chwili pisania tego tekstu najnowszą wersją jest Ubuntu 18.04 Xenial Xerus LTS (wydany w kwietniu 2018 r.).

Wersje non-LTS mają krótki okres wsparcia (około 9 miesięcy), ale mają najnowsze wersje oprogramowania PHP. Z drugiej strony, wydania LTS mają dłuższy okres wsparcia(5 lat), ale nieco przestarzałe oprogramowanie PHP na starcie.

Ubuntu Desktop ma najnowszą wersję PHP i inne oprogramowanie dostępne z repozytorium. Wadą korzystania z takiej wersji jest to, że będziesz musiał uaktualnić ją do następnej wersji co 9 miesięcy (wraz z upłynięciem okresu wsparcia). Jeśli nie podoba Ci się perspektywa aktualizacji co 9 miesięcy, wybierz najnowszą wersję LTS. Ubuntu wspiera najnowszą obecnie wersję PHP 7.x

Instalowanie Apache i PHP

W nowoczesnych dystrybucjach Linuksa możesz łatwo pobrać i zainstalować oprogramowanie ze scentralizowanego repozytorium . Repozytorium zawiera tak zwane pakiety . Pakiet ma nazwę (na przykład php,apache2) i wersję.

Można zainstalować pakiet za pomocą jednego polecenia. Jednak to polecenie (jak i nazwa pakietu) mogą się różnić w zależności od używanej dystrybucji Linuksa. Na przykład, aby pobrać i zainstalować pakiety w dystrybucji Linuksa opartej na Debianie (np. Ubuntu Linux), należy użyć programu apt (apt-get). W dystrybucjach Red Hat (np. Fedora lub CentOS) używasz yum (menedżer pakietów RPM). Poniżej podano szczegółowe instrukcje instalacji dla tych systemów operacyjnych.

Debian lub Linux Ubuntu

Przede wszystkim zaleca się aktualizację systemu poprzez zainstalowanie najnowszych dostępnych aktualizacji. Aby to zrobić, w powłoce poleceń uruchom następujące polecenia:

sudo apt-get update

sudo apt-get upgrade

Powyższe polecenia uruchamiają narzędzie APT i instalują najnowsze aktualizacje pakietów systemowych. Polecenie sudo(oznaczaSuper User DO) pozwala uruchomić polecenia jako administrator systemu (root). W naszym przypadku uruchamiamyb takapt-get. Zwykle używasz sudo, gdy chcesz podnieść swoje uprawnienia, aby zainstalować pakiet lub edytować jakiś plik konfiguracyjny.

Komenda sudo może zażądać hasła. Po wyświetleniu monitu wprowadź hasło pod którym logujesz się do systemu i naciśnij Enter.

Następnie, z powłoki poleceń, uruchom następujące polecenia:

sudo apt-get install apache2

sudo apt-get install php

sudo apt-get install libapache2-mod-php

Powyższe polecenia pobierają z repozytorium i instalują najnowsze dostępne wersje serwera Apache HTTP Server, silnika PHP i modułu rozszerzającego PHP dla Apache.

Powyższe polecenia mogą wymagać potwierdzenia podczas instalowania pakietu. Zaleca się odpowiedź Tak (naciśnij y, a następnie Enter).

Fedora, CentOS lub Red Hat Linux

Rozpoczynamy od aktualizacji systemu poprzez zainstalowanie najnowszych dostępnych aktualizacji. Aby to zrobić, w powłoce poleceń uruchom następujące polecenie:

sudo yum update

Powyższe polecenie uruchamia narzędzie YUM i instaluje najnowsze aktualizacje pakietu systemowego.

Następnie, z powłoki poleceń, uruchom następujące polecenia:

sudo yum install httpd

sudo yum install php

Powyższe polecenia są pobierane z repozytorium i instalowane są najnowsze dostępne wersje serwera Apache HTTP Server i PHP.

Następnie uruchom następujące polecenia, aby dodać serwer Apache HTTP Server do automatycznego uruchamiania systemu i uruchomić go:

sudo chkconfig --level 235 httpd on

sudo service httpd start

Sprawdzanie instalacji serwera www

Po skonfigurowaniu serwera WWW Apache HTTP sprawdź, czy jest on poprawnie zainstalowany i czy serwer widzi silnik PHP. Aby to zrobić, utwórz plik phpinfo.php w katalogu głównym dokumentu Apache.

Główny katalog to katalog, w którym można(domyślnie) przechowywać pliki sieciowe. Zazwyczaj katalog główny serwera Apache to /var/www/html/.

Dla ułatwienia nawigacji po strukturze katalogów i edytowanie plików, warto zaleca zainstalować Midnight Commandera (wygodny menedżer plików i edytor tekstu).
Aby zainstalować Midnight Commander w systemie Debian lub Linux Ubuntu, wpisz:

sudo apt-get install mc

Poniższe polecenie instaluje Midnight Commandera w Fedorze, CentOS lub Red Hat Linux:

sudo yum install mc

Po instalacji możesz uruchomić menedżera plików za pomocą komendy mc i edytować plik a
plik tekstowy za pomocą następującej komendy (uruchamianej też klawiszem F4):

mcedit/path/to/file

Jeśli potrzebujesz uprawnień administracyjnych, aby edytować plik, dodaj komendę sudo
do powyższego polecenia.

W pliku phpinfo.php wprowadź metodę PHP phpinfo() w następujący sposób:

<?php
  phpinfo();
?>

Otwórz plik w swojej przeglądarce. Powinna wyświetlić się standardowa strona z informacjami o PHP (na przykład rysunek A.1).

Rysunek A.1. Informacje PHP

Tworzenie wirtualnego hosta Apache

Zend Framework 3 wymaga utworzenia wirtualnego hosta dla twojej strony internetowej. Termin hosta wirtualnego oznacza, że ​​możesz uruchomić kilka stron internetowych na tym samym komputerze.

Witryny wirtualne są różnicowane według nazwy domeny (np. site.mydomain.com i site2.mydomain.com ). Każdy wirtualny host ma swój własny katalog główny dokumentu, umożliwiający umieszczanie plików internetowych w dowolnym miejscu w systemie (nie tylko w katalogu /var/www/html ).

W systemie Debian lub Ubuntu Linux

Masz przykład domyślnego hosta wirtualnego w /etc/apache2/sites-available/000-default.conf (patrz poniżej).

<VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host(this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Wszystko, co musisz zrobić, to po prostu edytować ten plik wirtualnego hosta w razie potrzeby i ponownie uruchomić Apache, aby zastosować zmiany.

Możesz również skopiować ten plik i utworzyć inny wirtualny host, gdy potrzebujesz kilku stron internetowych do działania na tym samym komputerze. Na przykład, aby utworzyć kolejny wirtualny plik hosta o nazwie 001-vhost2.conf , wpisz następujące polecenie z powłoki poleceń:

cd/etc/apache2/sites-available
sudo cp 000-default.conf 001-vhost2.conf
sudo a2ensite 001-vhost2.conf

Nazwa hosta wirtualnego zaczyna się od prefiksu(np. 000 , 010 itd.), Który definiuje priorytet. Serwer WWW Apache próbuje kierować żądanie HTTP do każdego wirtualnego hosta po kolei (najpierw do 000-default , następnie do 001-vhost2 ), a jeśli jakiś wirtualny host nie może obsłużyć żądania, następny jest wypróbowany i tak dalej.

W Fedorze, CentOS lub Red Hat Linux

Istnieje przykład wirtualnego hosta w pliku /etc/httpd/conf/httpd.conf . Przewiń yen plik do samego dołu - do sekcji o nazwie Virtual Hosts. Możesz edytować tę sekcję w razie potrzeby i ponownie uruchomić Apache, aby zastosować zmiany.

Instalowanie serwera bazy danych MySQL

MySQL to bezpłatny system zarządzania relacyjnymi bazami danych (projekt zarządzany przez Oracle). MySQL to najpopularniejszy system baz danych używany w PHP.

Debian lub Linux Ubuntu

Aby zainstalować bazę danych MySQL, wpisz:

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install php-mysql

Powyższe polecenia instalują odpowiednio komponent serwera MySQL, składnik klienta MySQL i moduł rozszerzający MySQL dla PHP.

Konfigurowanie serwera bazy danych MySQL

Podczas instalacji serwera MySQL zostaje utworzony użytkownik root. Domyślnie użytkownik root nie ma hasła, więc musisz ustawić je ręcznie. Będziesz potrzebował tego hasła do tworzenia innych użytkowników baz danych MySQL.

Aby połączyć się z serwerem MySQL, wprowadź następujące polecenie:

mysql -u root

Pojawi się wiersz polecenia MySQL. W wierszu polecenia wprowadź następujące polecenie i naciśnij klawisz Enter (w poleceniu poniżej, zastąp<your_password> swoim hasłem):

SET PASSWORD FOR 'root'@'localhost' = '<your_password>';

Jeśli polecenie zostanie wykonane pomyślnie, wyświetlony zostanie następujący komunikat:

Query OK, 0 rows affected (0.16 sec)

Teraz musimy utworzyć nową bazę danych, która będzie przechowywać tabele. Aby to zrobić, wpisz:

CREATE DATABASE test_db;

Powyższe polecenie tworzy pusty schemat, który będziemy później wypełniać.

Następnie chcemy stworzyć kolejnego użytkownika bazy danych o nazwie test_user, który będzie używany do łączenia się z bazą danych. Aby utworzyć użytkownika, wpisz następujące polecenie (w poleceniu poniżej zamień <your_password> na hasło użytkownika):

GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost' 
 IDENTIFIED BY '<your_password>';

Powyższe polecenie tworzy użytkownika o nazwie test_user i przyznaje użytkownikowi wszystkie uprawnienia do bazy danych test_db.

Na koniec wpisz quit, aby opuścić monit MySQL.

Instalowanie Apache, PHP i MySQL w systemie Windows

Zdecydowanie zaleca się używanie Linuksa do rozwoju programów w PHP. Większość systemów serwerowych ma zainstalowany system Linux. Jeśli używasz Windowsa do codziennych zadań, nadal możesz zainstalować Linuksa na maszynie wirtualnej (na przykład na VirtualBox) i uruchomić Apache, PHP i MySQL na tym wirtualnym komputerze. Jeśli w tym samym czasie chciałbyś używać NetBeans w Windows, możesz to zrobić - po prostu skonfiguruj katalog współdzielony (na przykład skonfiguruj serwer Samby na maszynie wirtualnej).

Jeśli zdecydujesz się zainstalować Apache, PHP i MySQL w Windows (co nie jest zalecane), pamiętaj jednak, że konfiguracja w Windows może być trudniejsza niż w Linuksie.

Istnieje dwie najpopularniejsze dystrybucje Apache + MySQL + PHP:

Wybierz jedną i zainstaluj ją na swoim komputerze z serwerem Windows.

Sprawdzanie instalacji serwera sieciowego

Po skonfigurowaniu serwera sieciowego sprawdź, czy jest on poprawnie zainstalowany i czy serwer Apache rozpoznaje silnik PHP. Aby sprawdzić, czy Apache i PHP są poprawnie zainstalowane, utwórz plik phpinfo.php w katalogu głównym dokumentu Apache.

W pliku phpinfo.php wprowadź metodę PHP phpinfo() w następujący sposób:

<?php
    phpinfo();
?>

Otwórz plik w przeglądarce. Powinna wyświetlić się standardowa strona z informacjami o PHP(rysunek A.3).

Rysunek A.3. Informacje PHP

Konfigurowanie serwera bazy danych MySQL w systemie Windows

Teraz chcemy stworzyć schemat bazy danych i użytkownika bazy danych. Będziemy używać klienta wiersza poleceń MySQL. Zapoznaj się z dokumentacją WAMP lub XAMPP, aby dowiedzieć się, jak to zrobić.

Konsola klienta linii poleceń MySQL wygląda następująco (patrz rysunek A.5):

Rysunek A.5. Klient linii poleceń MySQL

Teraz musimy utworzyć nową bazę danych, która będzie przechowywać tabele. Aby to zrobić, wpisz następujące polecenie w oknie klienta MySQL:

CREATE DATABASE test_db;

Powyższe polecenie tworzy pustą bazę danych, którą zapełnimy później. Jeśli polecenie zostanie wykonane pomyślnie, wyświetlony zostanie następujący komunikat:

Query OK, 0 rows affected (0.16 sec)

Następnie chcemy stworzyć kolejnego użytkownika bazy danych o nazwie test_user, który będzie używany przez stronę internetową do łączenia się z bazą danych. Aby utworzyć użytkownika, wpisz następujące polecenie (w poleceniu poniżej wymień <your_password> na odpowiednie hasło):

GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost' 
 IDENTIFIED BY '<your_password>';

Powyższe polecenie tworzy użytkownika o nazwie test_user i nadaje użytkownikowi wszystkie uprawnienia do schematu bazy danychtest_db.