LAMP на Arch Linux


Установка ПО

Для реального использования вычислительной системы в качестве веб-ресурса используется сочетание ПО, называемое LAMP (Linux+Apache+MySQL+PHP). Предполагается, что система с установленным ArchLinux уже имеется, значит, остаётся тройка недостающих компонентов.

Замечание В связи с поглощением одной легендарной компании известным производителем ПО, использование СУБД MySQL в прогрессивном сообществе считается дурным тоном. Здесь и далее, вместо MySQL используется MariaDB

Для удобства администрирования СУБД будет использован пакет PhpMyAdmin.

Установка пакетов ПО:

[root@webserver ~]# pacman -S apache php php-apache mariadb phpmyadmin php-mcrypt lynx

Настройка PHP в Apache

В файле /etc/httpd/conf/httpd.conf:

  • В конце списка “LoadModule” добавить строку “LoadModule php5_module modules/libphp5.so”
  • В конце списка “Include” добавить строку “Include conf/extra/php5_module.conf”
  • В секции <IfModule mime_module> убедиться в отсутствии знака комментария для строки “TypesConfig conf/mime.types”
  • Убрать знак комментария для “MIMEMagicFile conf/magic”

В файле /etc/httpd/conf/mime.types добавить строку “application/x-httpd-php php php5”.

В файле /etc/php/php.ini:

  • date.timezone = Asia/Tashkent
  • extension=mcrypt.so
  • extension=mysql.so
  • extension=mysqli.so

Создать тестовый PHP-файл, запустить демон apache и проверить работу веб-сервера с помощью браузера на адресу http://localhost/test.php:

[root@webserver ~]# cat > /srv/http/test.php
<?php phpinfo(); ?>
[root@webserver ~]#
[root@webserver ~]# systemctl start httpd
[root@webserver ~]# systemctl enable httpd

Настройка MariaDB/MySQL

Запустить демон mysql и прогнать установочный сценарий:

[root@webserver ~]# systemctl start mysqld
[root@webserver ~]# mysql_secure_installation
...
Enter current password for root (enter for none): [Enter]
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] [Enter]
Remove anonymous users? [Y/n] [Enter]
Disallow root login remotely? [Y/n] n [Enter]
Remove test database and access to it? [Y/n] [Enter]
Reload privilege tables now? [Y/n] [Enter]
[root@webserver ~]# systemctl restart mysqld
[root@webserver ~]# systemctl enable mysqld

Настройка PhpMyAdmin

Скопировать конфигурационный файл PhpMyAdmin и подключить его к Apache:

[root@webserver ~]# cp /etc/webapps/phpmyadmin/apache.example.conf 
/etc/httpd/conf/extra/httpd-phpmyadmin.conf
[root@webserver ~]# vi /etc/httpd/conf/httpd.conf
...
Include conf/extra/httpd-phpmyadmin.conf
[root@webserver ~]# vi /usr/share/webapps/phpMyAdmin/.htaccess
#deny from all
[root@webserver ~]# vi /etc/httpd/conf/extra/httpd-phpmyadmin.conf
Alias /phpmyadmin/ "/usr/share/webapps/phpMyAdmin/"

В файле /etc/php/php.ini к переменной “open_basedir” добавить путь “/etc/webapps/”.

Перезапустить демон httpd, открыть браузер по адресу “http://localhost/phpmyadmin/”, авторизоваться как пользователь root, создать базу данных.