Пошаговая инструкция по разворачиванию стека LAMP (Linux, Apache, MySQL, PHPMyAdmin) на базе дистрибутива Manjaro. На момент написания данной статьи использовалась версия Manjaro 22.0.2 с рабочим окружением XFCE.
Большинство наших действий будет производится в терминале с использованием редактора Nano, который установлен в системе по умолчанию. Вы можете использовать тот редактор, который вам более приемлем, например Vim (только не забудьте его предварительно установить).
Обновляем систему до актуального состояния
Запускаем терминал и выполняем команду
sudo pacman -Syyu
Устанавливаем Apache
команда, для установки, в терминале
sudo pacman -S apache
после установки включаем автоматический запуск служб Apache
sudo systemctl enable httpd
затем даем команду на перезапуск Apache
sudo systemctl restart httpd
смотрим статус Apache
sudo systemctl status httpd
Результатом будет подобный вывод в терминале
Для выхода из данного состояния нажимаем Ctrl+C.
Примечание по конфигурации Apache
В некоторых статьях говорится, что для правильной работы необходимо открыть файл конфигурации /etc/httpd/conf/httpd.conf
Закомментировать в нем строку LoadModule unique_id_module modules/mod_unique_id.so
В моем случае данная строка была закомментирована по умолчанию изначально.
Проверяем работу Apache
Сервер расположен на нашем компьютере в директории /srv/http
Для физической проверки создадим в этой директории файл index.html
Можете создать файл любым удобным для вас способом, я для удобства сделаю его в терминале редактором Nano, командой
sudo nano /srv/http/index.html
Редактор nano создаст этот файл и автоматически откроет его в терминале.
Помещаем в него, стандартное содержание файла index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>Проверка работы Apache, файл index.html</h1> </body> </html>
Сохраняем файл комбинацией клавиш Ctrl+O, выходим из редактора nano Ctrl+X.
Теперь открываем браузер и открываем адрес http://localhost/.
Если все правильно то увидим содержание нашего файла index.html.
Устанавливаем MySQL
В Linux в качестве альтернативы MySQL используется MariaDB.
Ставим MySQL командой
sudo pacman -S mysql
После ввода команды выбираем первый пункт — 1) MariaDB
Теперь выполняем команду для инициализации каталогов и баз (примерно так звучит перевод ниже приведенной команды, на многих англоязычных форумах).
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
Процесс может длится в некоторых случаях до нескольких минут — просто ждем. Результат будет таким.
Теперь включим автоматический запуск служб mysql
sudo systemctl enable mysqld
Запускаем службы mysql
sudo systemctl start mysqld
На данном этапе для проверки работы mysql введем команду
sudo systemctl status mysqld
Если все правильно увидим примерно такой вывод
Конфигурируем первоначальные настройки MariaDB и пользователя root
sudo mysql_secure_installation
Далее пойдут вопросы
Если интересует значение этих вопросов можете воспользоваться переводчиком — станет все ясно, и вы сможете выбрать свой вариант ответа, я отвечал так:
На вопрос Enter current password for root (enter for none):
просто нажимаем Enter
На вопрос Switch to unix_socket authentication [Y/n]
Ответил N
На вопрос Change the root password? [Y/n]
Ответил Y
и задал свой пароль (пароль придумываем сами и запоминаем)
На вопрос Remove anonymous users? [Y/n]
Ответил Y
На вопрос Disallow root login remotely? [Y/n]
Ответил N
На вопрос Remove test database and access to it? [Y/n]
Ответил Y
На вопрос Reload privilege tables now? [Y/n]
Ответил Y
Результатом будет надпись спасибо за использование MariaDB!
Thanks for using MariaDB!
Устанавливаем PHP
в Manjaro надо поставить два пакета php и php-apache, ставим отдной командой
sudo pacman -S php php-apache
Теперь внесем изменения в файл /etc/httpd/conf/httpd.conf
Откроем файл в редакторе nano командой
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 версии 8 в самом конце этого же файла добавляем три строчки
LoadModule php_module modules/libphp.so AddHandler php-script php Include conf/extra/php_module.conf
Не забываем сохранить файл комбинацией клавиш Ctrl+O и выходим из редактора Ctrl+X
Теперь можно проверить PHP
создайте файл в директории /srv/http
sudo nano /srv/http/php-info.php
Файл будет содержать, всего одну строчку, стандартный код который выводит информацию о версии PHP, поместите его в этот файл:
<?php phpinfo();?>
Ка всегда сохраняем файл комбинацией клавиш Ctrl+O и выходим из редактора Ctrl+X
Перезапускаем Apache
sudo systemctl restart httpd
Открываем в браузере адрес
http://localhost/php-info.php
Если все работает правильно то увидим страницу с информацией о php
Ставим phpMyAdmin
sudo pacman -S phpmyadmin
Откроем файл /etc/php/php.ini
sudo nano /etc/php/php.ini
Раскомментируем две строчки
extension=bz2 extension=mysqli
Результат выглядит так
Не забываем сохранить файл комбинацией клавиш Ctrl+O и выходим из редактора Ctrl+X
Создаем конфигурационный файл /etc/httpd/conf/extra/phpmyadmin.conf
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>
Открываем снова, как ранее, файл /etc/httpd/conf/httpd.conf
sudo nano /etc/httpd/conf/httpd.conf
В конец файла добавляем строчку кода
Include conf/extra/phpmyadmin.conf
Не забываем сохранить файл комбинацией клавиш Ctrl+O и выходим из редактора Ctrl+X
Перезапускаем сервер Apache
sudo systemctl restart httpd
Для проверки переходим по стандартному адресу http://localhost/phpmyadmin
Для входа используем логин root. Пароль используем тот который вы задали в разделе конфигурирования первоначальных настроек MariaDB и пользователя.
На этом основные настройки закончены.
Рекомендации
Директрория установленного и настроенного веб сервера /srv/http может не иметь достаточных прав, поэтому для дальнейшей работы советую дать ей, соответствующие вашим требованиям, права на чтение и запись.
Ранее рекомендовалось задавать пароль для шифрования в конфигурационном файле phpmyadmin. Так как у меня это тестовый локальный сервер, мне это не надо. Можете это сделать следующим способом, вводим команду которая откроет файл /etc/webapps/phpmyadmin/config.inc.php
sudo nano /etc/webapps/phpmyadmin/config.inc.php
Прокрутите файл до строки , которая начинается с $cfg[‘blowfish_secret’]
В единичных кавычках поставите любую комбинацию из 32 символов — пароль для шифрования
Если менее 32 — защита будет слабее, более 32 ничего не даст.
Естественно не забываем перезагрузить наш сервер
sudo systemctl restart httpd
Если интересует как развернуть web-server на базе дистрибутивов Debian, Ubuntu или LinuxMint, вот ссылки на подробные инструкции:
- LAMP — в Debian 10
- Устанавливаем PhpMyAdmin в Debian 10
- Самая простая установка LAMP в Linux
- Локальный web сервер — установка и настройка в Ubuntu 14.04
в этих статьях вы найдете инструкции — как развернуть LAMP на базе дистрибутивов Debian, Ubuntu или LinuxMint.
Разворачивание LАMP на разных операционных системах Linux очень схожа. Изучив их, вы сможете, даже в инструкции к другому дистрибутиву, найти ответ который поможет решить ваш вопрос.
Информация была собрана с многочисленных форумов и статей, путем многочисленных переустановок. Для каждого случая может, что-то отличаться в зависимости от используемых версий и дистрбутивов. Поэтому, выше описанное, не может быть одинаковой инструкцией для всех. В моем случае все работает, функционирует и выполняет нужные мне задачи. Я использую данную комбинацию как локальный сервер для экспериментов и тестирования.
Если есть что добавить по теме или поделиться опытом пишите в комментариях.
Всем Удачи!
Mongaro?? Manjaro?