Własny serwer – cz.2: PHP i SQL
Ostatnia aktualizacja: 17 sierpnia 2024, 10:48
W pierwszej części serii cyklu Własny Serwer zaparkowaliśmy domenę, skonfigurowaliśmy serwer www za pomocą Apache (oraz opcjonalnie Nginx) i uruchomiliśmy zaporę ogniową.
W tej części zainstalujemy PHP oraz system bazodanowy oparty na MariaDB.
Po co PHP i MariaDB?
Większość aplikacji webowych (ale nie wszystkie), służących do tworzenia stron internetowych i publikacji treści w sieci używają interpretatora PHP i jakiegoś systemu bazodanowego, np. MariaDB, MySQL (raczej wycofywany z obiegu), SQLite, PostgreSQL, etc.
PHP służy do generowania stron internetowych i budowania aplikacji webowych w czasie rzeczywistym, a SQL jest używany do tworzenia, modyfikowania relacyjnych baz danych oraz do umieszczania i pobierania danych z tych baz.
1. Instalacja PHP
Jak wspominałem na początku, konfiguracja serwera opiera się Debianie z gałęzi stabilnej 11 „Bullseye”, więc do instalacji oprogramowania używamy menadżera pakietów apt:
apt update
apt install php7.4-xml php7.4-mbstring php7.4-imap php7.4-mysql libapache2-mod-php7.4 php7.4-json php-gd php-getid3 php7.4-gd php7.4-fpm
Po zakończeniu instalacji sprawdź wersję PHP:
php -v
Sprawdzenie statusu php-fpm:
systemctl status php7.4-fpm
Jeśli usługa jest nieaktywna, uruchom ją:
systemctl start php7.4-fpm
systemctl enable php7.4-fpm
Aby sprawdzić konfigurację PHP na serwerze, umieść plik:
info.php
w katalogu udostępnionym dla stron www, który skonfigurowaliśmy w poprzednim rozdziale, tj.:
/var/www/linuxiarze.pl/public_html/
wklejając do pliku info.php:
<?php phpinfo(); ?>
Zapisz plik i otwórz w przeglądarce www stronę:
http://111.222.33.44/info.php
gdzie zamiast 111.222.33.44 wpisz IP swojego serwera lub nazwę zaparkowanej domeny.
Po weryfikacji PHP zalecam usunięcie pliku info.php z serwera lub zmianę nazwy na:
info.php.bak
Opcjonalnie: Jeśli potrzebujesz nowszej wersji PHP z linii 8, należy użyć zewnętrznych repozytoriów, np. SURY.
2. Instalacja MariaDB
apt install mariadb-server mysql-common php-mysql php7.4-mysql
Status i uruchomienie:
systemctl start mariadb
systemctl enable mysqld
systemctl status mysqld -l
Po zainstalowaniu MariaDB nie zawiera hasła dla użytkownika root, więc natychmiast trzeba je ustawić. Wykonaj polecenie:
/usr/bin/mysql_secure_installation
Po wyświetleniu monitu o hasło użytkownika root wystarczy nacisnąć ENTER:
Enter current password for root (enter for none):
Teraz możesz zdefiniować protokół uwierzytelniania MariaDB:
If You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n]
Podając Y (Yes), możesz zmienić hasło roota:
Change the root password? [Y/n]
New password:
Re-enter new password:
Password updated successfully!
Następnie pojawia się seria pytań dotyczących konfiguracji i bezpieczeństwa MariaDB. Możesz odpowiedzieć na każde z nich Y:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Potem skrypt zakończy działanie, a MariaDB będzie gotowa do użycia.
Pierwsze logowanie jako root:
mysql -u root -p
Enter password:
...
MariaDB [(none)]>
Utworzenie nowego użytkownika
Teraz możesz utworzyć nowego użytkownika bazy danych, który będzie potrzebny do konfiguracji aplikacji webowej.
Utworzenie użytkownika o nazwie 'pawel1′:
CREATE USER 'pawel1'@'localhost' IDENTIFIED BY 'mojehaslo1';
Utworzenie nowej bazy danych o nazwie baza1:
CREATE DATABASE baza1;
Udzielenie dostępu użytkownikowi 'pawel1′ do bazy 'baza1′:
GRANT ALL PRIVILEGES ON baza1.* TO 'pawel1'@'localhost';
Aby wyjść z MariaDB:
exit;
Aby sprawdzić wersję MariaDB:
mysql -v
I to wszystko, jeśli chodzi o instalację i podstawową konfigurację PHP i MariaDB na serwerze z Debianem.
W następnej części 3 zainstalujemy certyfikat SSL za pomocą bezpłatnego narzędzia Let’s Encrypt oraz skonfigurujemy cron, aby automatycznie ją odnawiał.