Konfigurujemy serwer www na Archu

Data: 2017-09-11, autor: Michał Misztal

Zmieniłem dysk w poczciwym T61. T61 miał iść do handlu. Ale jakoś nie potrafię się z nim rozstać. Matryca 1680x1050 IPS - według mnie - tylko sprzęt Apple ją przebija. Ale w sprzęt Apple nie będę inwestował. Dysk 30GB SSD w zupełności pod serwer www wystarczy.

W związku z tym trzeba było parę rzeczy zainstalować od nowa (że o systemie nie wspomnę). Tzn - serwer Apache, PHP7, bazę danych MariaDB i phpMyAdmin. Czyli na początek w terminalu klepiemy

[root@komputer]# pacman -S apache php-apache php mariadb phpmyadmin

Ok, pierwsze co będziemy konfigurować to bazę. Najpierw odpalamy w terminalu

[root@komputer]# mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Powiedzmy, że nic nie będziemy tutaj mieszać. Uruchamiamy serwer bazy i przeprowadzamy inicjalizację. W trakcie tego procesu zostaniemy poproszeni o kilka rzeczy, m.in. o nowe hasło roota i potwierdzenie podstawowych ustawień

[root@komputer]# systemctl start mysqld && systemctl enable mysqld
[root@komputer]# mysql_secure_installation

Teraz tylko dodajemy użytkownika, żeby nie logować się kontem roota

[user@komputer ~]$ mysql -u root -p

MariaDB> CREATE USER 'user'@'localhost' IDENTIFIED BY 'podać_hasło';
MariaDB> GRANT ALL PRIVILEGES ON mydb.* TO 'user'@'localhost';
MariaDB> FLUSH PRIVILEGES;
MariaDB> quit

Teraz pora na konfigurację serwera www Apache. Sugerowałbym tutaj utworzyć katalog ~/serwer_www (mkdir ~/serwer_www) w ktorym to będą nasze strony i do którego już mamy wszystkie uprawnienia. Poprzednio dodawałem uprawnienia 777 dla katalogu użytkownika aby użytkownik http widział katalog. Dzisiaj sobie go zbindujemy - będzie to o wiele elegantsze rozwiązanie, czyli w terminalu piszemy i wywołujemy funkcję mount

[root@komputer]# echo /home/user/serwer_www /srv/http none defaults,bind 0 0>> /etc/fstab
[root@komputer]# mount /srv/http

Pora na edycję pliku /etc/httpd/conf/httpd.conf. W sekcji LoadModule należy zakomentować wpis LoadModule mpm_event_module modules/mod_mpm_event.so i odkomentować następujące LoadModule mpm_prefork_module modules/mod_mpm_prefork.so i LoadModule rewrite_module modules/mod_rewrite.so. Dla obsługi PHP należy niżej dodać linie

LoadModule php7_module modules/libphp7.so
AddHandler php7-script php

W sekcji IfModule dir_module dodajemy index.php, żeby plik index.php był automatycznie parsowany(DirectoryIndex index.html index.php). Pora teraz na phpMyAdmin. Konfigurację tą zostawiłem na koniec bo zawiera w sobie również ustawienia dla bazy sql. Na początku zrobimy zamieszanie w pliku /etc/php/php.ini, należy odkomentować linie

extension=pdo_mysql.so
extension=mysqli.so

I teraz prawdziwa bomba. Konfiguracja dla phpMyAdmin została wrzucona do jednego pliku który tylko dołączany jest do konfiguracji serwera www (miła odmiana po open_basedir). Czyli tworzymy plik /etc/httpd/conf/extra/phpmyadmin.conf z zawartością



Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
    DirectoryIndex index.php
    AllowOverride All
    Options FollowSymlinks
    Require all granted
</Directory>

A następnie w ustawieniach Apache w sekcji Includes go dołączamy przez dodanie

# phpMyAdmin
Include conf/extra/phpmyadmin.conf

Tyle - włączamy usługi. Sprawdzamy czy phpMyAdmin działa (http://localhost/phpmyadmin). Mogłem coś przeoczyć ale pisałem to zaraz po skonfigurowaniu wszystkiego więc raczej wszystko powinno działać od razu. Jakby co to pisać w komentarzach.

Skomentuj lub zgłoś błąd

© Michał Misztal 2023