0

Debian i instalacja serwera WWW

Po poprawnym zainstalowaniu dystrybucji linuxa, nadszedł czas na wykorzystanie potencjału tego systemu operacyjnego. W końcu nie instalujemy linuxa do zabawy (o ile jesteśmy w miarę normalni) tylko chcemy na nim pracować. Pomysł padł na serwer WWW do celów domowych, a dokładnie do przypomnienia sobie budowania aplikacji internetowych.

Ok to co będziemy chcieli mieć. Na pewno serwer WWW, PHP, jakąś bazę danych no i coś co by pozwalało nam tą bazę danych przeglądać. W skrócie taki podstawowy zestaw zwany jako LAMP (Linux, Apache, MariaDB, PHP)

Jako serwera web użyjemy popularnego serwera Apache. Do celów domowych / pisania własnych aplikacji przepuszczam, że nie będzie mi potrzebne nic bardziej wydajnego czy zoptymalizowanego. Co do PHP mamy kilka wersji zainstalujemy najnowszą nie martwiąc się w tym momencie o jakąś kompatybilność. MariaDB dostarczy nam rozwiązań bazodanowych.

Aktualizacja paczek

Naszą pracę rozpocznijmy od zaktualizowania paczek naszego systemu

sudo apt-get update

Instalacja Apache

Apache jest oprogramowaniem webserwera do przetwarzania żądań i transmisji danych za pomocą sieci HTTP. Webserwer instalujemy za pomocą poniższej komendy:

sudo apt-get install apache2 -y

Po zainstalowaniu, możemy sprawdzić stan naszego serwera. Aby wrócić do linii komend należy wcisnąć ctrl+z.

systemctl status apache2
Status serwera wywołany za pomocą komendy systemctl status apache2

Serwer już działa i możemy wyświetlić pierwszą domyślną stronę na adresie „localhost”

Domyślna strona Apache2 pod adresem localhost

Instalacja PHP

PHP jest językiem programowania który może być niezbędny do uruchomienia aplikacji internetowych takich jak phpMyAdmin którego zainstalujemy później. Proste strony napisane w HTML nie wymagają instalacji PHP, ale jeżeli byśmy chcieli uruchomić coś więcej (np.: stronę bazującą na WordPress’ie) będziemy musieli to zrobić.

Instalację PHP przeprowadzimy za pomocą komendy:

sudo apt-get install php php-cgi php-mysqli php-pear php-mbstring php-php-gettext libapache2-mod-php php-common php-phpseclib php-mysql -y

A sprawdzenie instalacji możemy wykonać za pomocą:

php --version
Wyświetlenie aktualnej wersji PHP, wraz z data wydania.

Instalacja MariaDB

MariaDB jest open-source’owym systemem zarządzania relatywnymi bazami danych. Jest odpowiednikiem MySQL którego znamy z windowsowych systemów. MariaDB jest kompatybilna z MySQL i możemy je zamiennie stosować. Wiele komend czy funkcjonalności znanych z MySQL znajdziemy w MariaDB.

Do zainstalowania MariaDB użyjemy poniższej komendy w terminalu:

sudo apt-get install mariadb-server mariadb-client -y

Oczywiście status serwera możemy sprawdzić używając komendy systemctl status mariadb.

systemctl status mariadb
Status działania serwera MariaDB

Samo zainstalowanie serwera SQL nie jest wystarczające, należy go jeszcze skonfigurować. Możemy to zrobić używając skryptu konfiguracyjnego.

sudo mysql_secure_installation

Będziemy musieli odpowiedzieć na kilka pytań. Na początku będziemy proszeni o podanie hasła do konta Root. Nie jest to te same konto jak w naszym systemie. Jeżeli robimy to pierwszy raz to hasło nie zostało ustawione, w innym przypadku wpisujemy hasło. Następnie powinniśmy dostać pytania o zmianę hasła, usunięcie anonimowych użytkowników, wyłączenie zdalnego logowania na konto Root, usunięcie testowej bazy danych czy przeładowanie uprawnień. Poniżej lista mojej konfiguracji:

  • Enter current password for root (enter for none): Enter
  • Switch to unix_socket authentication [Y/n]: y
  • Change the root password? [Y/n]: 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

phpMyAdmin

Następnym krokiem będzie instalacja, a raczej ściągnięcie narzędzia do wygodnego zarządzania bazami. W tym celu użyjemy komendy WGET.

wget -P Downloads https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

Każde pobrane archiwum ma odpowiadający mu plik .asc zawierający niepowtarzalny klucz. Dla każdego z plików znajdujących się w tym samym folderze możemy zweryfikować podpis. Do zweryfikowania klucza GPG dla phpMyAdmin należy pobrać phpMyAdmin keyring do naszego katalogu.

wget -P Downloads https://files.phpmyadmin.net/phpmyadmin.keyring

Następnie przechodzimy do naszego katalogu i importujemy klucz.

cd Downloads
gpg --import phpmyadmin.keyring

Ściągamy pliki .asc do naszej wersji phpMyAdmin

wget -P https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz.asc

A następnie weryfikujemy pliki .asc względem pobranych przez nas kluczy.

gpg --verify phpMyAdmin-latest-all-languages.tar.gz.asc

Teraz stworzymy folder w katalogu serwera Apache2, a następnie rozpakujemy pliki phpMyAdmin do tego katalogu.

sudo mkdir /var/www/html/phpMyAdmin
sudo tar xvf phpMyAdmin-latest-all-languages.tar.gz --strip-components=1 -C /var/www/html/phpMyAdmin

Możemy stworzyć plik konfiguracyjny i użyć edytora tekstu do jego wypełnienia.

sudo cp /var/www/html/phpMyAdmin/config.sample.inc.php /var/www/html/phpMyAdmin/config.inc.php
sudo nano /var/www/html/phpMyAdmin/config.inc.php
Uzupełnienie $cfg[’blowfish_secret’]

Kolejnym krokiem jest nadanie uprawnień, właściciela dla pliku konfiguracyjnego oraz restart Apache’a.

sudo chmod 660 /var/www/html/phpMyAdmin/config.inc.php
sudo chown -R www-data:www-data /var/www/html/phpMyAdmin
sudo systemctl restart apache2

Dostęp do phpMyAdmin za pomoca przeglądarki

W tym momencie powinniśmy mieć możliwość zalogowania się do naszej bazy danych z poziomu przeglądarki wpisując adres „localhost/phpMyAdmin”. Do pierwszego zalogowania użyjemy danych konta które podaliśmy podczas konfiguracji MariaDB.

Strona logowania do phpMyAdmin

Z tego poziomu możemy dodawać konta baz danych, uprawnienia i same bazy.

Podsumowanie

Za pomocą kilku powyższych komend w tym momencie mamy przygotowany system do pracy z aplikacjami internetowymi. Mamy serwer WWW z zainstalowanym PHP i bazą danych z graficzną administracją. Jest to dobry początek przygody w budowaniu własnych aplikacji.

Źródła:

Mariusz Czajkowski

Wykształcenie: magister inżynier Automatyki i Robotyki. Zainteresowania techniczne: Programowanie, Elektronika, Mikrokontrolery, Sterowniki PLC.