Konfigurujemy serwer www na Archu
Data: 2017-09-11, autor: Michał MisztalZmienił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.