Найти в Дзене

Установка Apache, MySQL, PHP и phpMyAdmin в Linux Manjaro (Arch)

Актуальное на данный момент (июнь 2022) руководство по настройке LAMP (Linux, Apache, MySQL/MariaDB, PHP/Perl/Python) в linux системах, использующих httpd демон на локальном http сервере. В основу статьи легла тема на форуме manjaro Небольшое отступление от темы. Если кто-то в комментариях мне расскажет как сделать навигацию по статье (ссылки там, якоря) - буду премного благодарен, а то сплошная портянка текста - такое себе удовольствие. А душа просит организации контента и содержания со ссылками на параграфы. Итак, к сути. Установка наших непотребств по шагам. 1. Обновление системы sudo pacman -Syyu 2. Установка Apache sudo pacman -S apache После окончания установки правим конфигурационный файл, который лежит по пути /etc/httpd/conf/httpd.conf. Для этого открываем консоль и вводим следующее: sudo nano /etc/httpd/conf/httpd.conf nano - консольный текстовый редактор. Находим строку LoadModule unique_id_module modules/mod_unique_id.so и комментируем её, должно получиться так # LoadModule
Оглавление
Картинка для привлечения внимания
Картинка для привлечения внимания

Актуальное на данный момент (июнь 2022) руководство по настройке LAMP (Linux, Apache, MySQL/MariaDB, PHP/Perl/Python) в linux системах, использующих httpd демон на локальном http сервере.

В основу статьи легла тема на форуме manjaro

Небольшое отступление от темы. Если кто-то в комментариях мне расскажет как сделать навигацию по статье (ссылки там, якоря) - буду премного благодарен, а то сплошная портянка текста - такое себе удовольствие. А душа просит организации контента и содержания со ссылками на параграфы.

Итак, к сути. Установка наших непотребств по шагам.

1. Обновление системы

sudo pacman -Syyu

2. Установка Apache

sudo pacman -S apache

После окончания установки правим конфигурационный файл, который лежит по пути /etc/httpd/conf/httpd.conf. Для этого открываем консоль и вводим следующее:

sudo nano /etc/httpd/conf/httpd.conf

nano - консольный текстовый редактор.

Находим строку LoadModule unique_id_module modules/mod_unique_id.so и комментируем её, должно получиться так

# LoadModule unique_id_module modules/mod_unique_id.so

Сохраняем файл (ctrl + o) и закрываем (ctrl + x) редактор.

Далее, включаем автостарт службы Apache и перезапускаем её:

sudo systemctl enable httpd
sudo systemctl restart httpd

Проверить запущен ли и работает Apache можно командой

sudo systemctl status httpd

Примерный вывод этой команды выглядит так:

Красивый скрин консольки №1
Красивый скрин консольки №1

2.1 Тестирование Apache.

На данном этапе, корневая директория сервера у нас находится по пути /srv/http (мы это изменим в последствии для удобства разработки на локальном хосте). Создадим файл index.html в корне нашего сервера

sudo nano /srv/http/index.html

и впишем туда немного рандомного html, например:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>Welcome</title>
</head>
<body>
<h2>Welcome to my Web Server test page</h2>
</body>
</html>

Теперь, открываем наш любимый Интеренет Эксплорер браузер и переходим по адресу

http://localhost/

или

http://127.0.0.1/

Вуаля, как говорили древние греки, всё работает.

3. Установка MariaDB (MySQL)

Снова в консоль:

sudo pacman -S mysql

MariaDB c 2013 года поставляется как альтернатива MySQL в дистрибутивах Arch Linux. Поэтому после ввода команды выше, вы увидите предложение выбрать mariadb или percona-server. Нам нужна mariadb, поэтому вписываем 1 и жмем enter

[root@server ~]# pacman -S mysql
:: There are 2 providers available for mysql:
:: Repository extra
1) mariadb
:: Repository community
2) percona-server
Enter a number (default=1): `Press Enter`
resolving dependencies...
looking for conflicting packages...
Packages (7) boost-libs-1.60.0-2 icu-56.1-2 jemalloc-4.0.4-1libmariadbclient-10.1.11-1 libxml2-2.9.3-1
mariadb-clients-10.1.11-1 mariadb-10.1.11-1
Total Download Size: 30.68 MiB
Total Installed Size: 218.10 MiB
:: Proceed with installation? [Y/n]

Теперь ВАЖНО. Перед стартом сервиса MariaDB, нужно инициализировать рабочую директорию MariaDB (где будут храниться данные). Для этого выполняем следующее:

sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Теперь, по аналогии с Apache, включаем автостарт службы и стартуем ее

sudo systemctl enable mysqld
sudo systemctl start mysqld

Проверить установку MariaDB можно следующей командой:

sudo systemctl status mysqld

Мы увидим, что-то, похожее на следующий вывод:

Красивый скрин консольки №2
Красивый скрин консольки №2

3.1 Установка root пароля MySQL/MariaDB

Постараюсь максимально подробно остановиться на этом моменте, т.к. в своё время несколько раз безбожно тупил и начинал установку с начала.

Итак, чтобы начать, открываем консоль (по сути, из нее и выходить-то по ходу событий не надо :) ) и вводим команду:

sudo mysql_secure_installation

Жмем Enter и НЕ ТОРОПИМСЯ

Первый вопрос в консоли будет

Enter current password for root (enter for none):

Так как паролей мы еще не устанавливали, то просто жмем Enter. Далее.

Switch to unix_socket authentication [Y/n]

Если хотите добраться до баз данных через phpMyAdmin на локальном хосте с учетной записью root без танцев с бубном, то вводим N и жмем Enter. Далее.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n]

Тут, я бы рекомендовал выбрать Y и установить root пароль, отличный от вашей учетной записи root в системе. Дело ваше, но, тем не менее. Допустим, выбрали Y и нажали Enter. Консоль попросит дважды ввести выбранный пароль.

Красивый скрин консольки №3
Красивый скрин консольки №3

После, скрипт спросит удалить ли анонимных пользователей. Эм.. думаю, объяснять не надо, что их желательно удалить, поэтому Y и жмем Enter

Красивый скрин консольки №4
Красивый скрин консольки №4

Далее, скрипт задаст вопрос, разрешить ли root пользователю удаленный вход. Обычно, на локальном сервере этого не требуется, поэтому можно смело выбирать N и жать Enter

Красивый скрин консольки №5
Красивый скрин консольки №5

MariaDB по умолчанию содержит тестовые данные, их тоже смело можно удалить при установке

Красивый скрин консольки №6
Красивый скрин консольки №6

Вводим Y и жмем Enter.

Далее ОБЯЗАТЕЛЬНО соглашаемся с перезагрузкой привилегий

Красивый скрин консольки №7
Красивый скрин консольки №7

Вводим Y и жмем Enter.

На этом установка MariaDB окончена.

4. Установка PHP

Традиционно, в консоли:

sudo pacman -S php php-apache

После установки PHP нужно настроить PHP модуль Apache. Для этого открываем файл настроек Apache

sudo nano /etc/httpd/conf/httpd.conf

Находим и комментируем следующую строку. Должно получится вот так

# LoadModule mpm_event_module modules/mod_mpm_event.so

Далее, раскомментируем, или добавим строку

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Далее, в зависимости от установленной версии PHP, добавляем в конец файла следующее.

Для PHP версии 7

LoadModule php7_module modules/libphp7.so

AddHandler php7-script php

Include conf/extra/php7_module.conf

Для PHP версии 8

LoadModule php_module modules/libphp.so

AddHandler php-script php

Include conf/extra/php_module.conf

Сохраняем файл (ctrl + o) и закрываем (ctrl + x) редактор.

4.1 Тестируем PHP

Создадим файл test.php в директории /srv/http

sudo nano /srv/http/test.php

Вписываем внутрь

<?php
phpinfo();

Перезапускаем Apache

sudo systemctl restart httpd

И открываем браузер по адресу http://localhost/test.php . Если видим информацию о PHP, то всё ок.

5, Установка phpMyAdmin

phpMyAdmin - это графическая административная панель управления MySQL / MariaDB.

Установка

sudo pacman -S phpmyadmin

после завершения процесса установки, правим php.ini файл

sudo nano /etc/php/php.ini

раскомментируем расширения

extension=bz2
extension=mysqli

Раскомментирование производится путем удаления ";" в начале строки

Сохраняем файл (ctrl + o) и закрываем (ctrl + x) редактор.

Далее, необходимо создать конфигурационнный файл для phpMyAdmin

sudo nano /etc/httpd/conf/extra/phpmyadmin.conf

и добавить в него следующие строки

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

Затем, открываем конфигурационный файл Apache

sudo nano /etc/httpd/conf/httpd.conf

и добавляем следующее в конец файла

Include conf/extra/phpmyadmin.conf

Сохраняем файл (ctrl + o) и закрываем (ctrl + x) редактор.

Перезагружаем Apache

sudo systemctl restart httpd

и тестируем phpMyAdmin, открыв http://localhost/phpmyadmin

Если увидите ошибку с текстом "The configuration file now needs a secret passphrase (blowfish_secret)", то сгенерируйте 32-х символьную строку рандомного текста, откройте

sudo nano /etc/webapps/phpmyadmin/config.inc.php

$cfg['blowfish_secret'] = '`MyP@$S`'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!$ /**

и вместо `MyP@$S` вставьте свои 32 волшебных символа. До недавнего времени длина строки особо роли не играла, но пару версий назад phpMyAdmin стал ругаться на очень длинные строки.

Перезагружаем Apach и радуемся жизни.

sudo systemctl restart httpd

А вот как сменить корневую директорию сервера, и как без боли ниже поясницы работать с сайтами на локальном сервере, я расскажу в следующей статье.