Własny Serwer

Własny serwer – cz.2: PHP i SQL

Ostatnia aktualizacja: 16 września 2023, 19:25



 
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ł.

Click to rate this post!
[Total: 1 Average: 5]

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.