Установка LEMP (Nginx, PHP, MySQL с движком MariaDB и PhpMyAdmin) в Arch Linux
Из-за своей модели скользящего выпуска, включающей устаревшее программное обеспечение, Arch Linux не было спроектировано и разработано для работы в качестве сервера для обеспечения надежных сетевых служб, поскольку оно требует дополнительного времени для обслуживания, постоянных обновлений и разумной конфигурации файлов.
Но, тем не менее, поскольку Arch Linux поставляется с основным установочным компакт-диском с минимальным предустановленным программным обеспечением, он может представлять собой надежную отправную точку для установки большинства популярных в настоящее время сетевых служб, включая < b>LEMP или LAMP, веб-сервер Apache, Nginx, PHP, базы данных SQL, Samba, FTP-серверы, BIND и другие, многие из которых предоставляются из Arch Официальные репозитории Linux и другие из AUR.
В этом руководстве описана установка и настройка стека LEMP (Nginx, PHP, MySQL с движком MariaDB и PhpMyAdmin) удаленно с использованием SSH, что может обеспечить прочную основу для создания приложений веб-сервера.
Требования
Предыдущее руководство по установке Arch Linux, за исключением последней части, посвященной работе в сети с DHCP.
Шаг 1. Назначьте статический IP-адрес сетевому интерфейсу
1. После минимальной базовой установки Arch Linux перезагрузите сервер, войдите в систему с учетной записью root или эквивалентной административной учетной записью sudo и определите имена устройств сетевых карт вашей системы, используя ip link< /б> команда.
ip link
2. Чтобы назначить статические конфигурации сети, мы будем использовать пакет Netctl для управления сетевыми подключениями. После того как вы успешно определили имена своих сетевых интерфейсов, скопируйте шаблон файла ethernet-static в системный путь netctl и измените его имя на описательную схему именования ( попробуйте использовать строку «static» в сочетании с именем сетевого адаптера), выполнив следующую команду.
cp /etc/netctl/examples/ethenet-static /etc/netctl/static.ens33
3. Следующий шаг — отредактировать этот новый файл шаблона, изменив директивы файла и указав фактические настройки сети (интерфейс, IP/сетевая маска, шлюз, широковещание, DNS), как показано в приведенном ниже отрывке.
nano /etc/netctl/static.ens33
Description='A basic static ethernet connection for ens33'
Interface=ens33
Connection=ethernet
IP=static
Address=('192.168.1.33/24')
Gateway='192.168.1.1'
Brodcast='192.168.1.255'
DNS=('192.168.1.1' '8.8.8.8')
4. Следующим шагом будет запуск сетевого подключения с помощью системного инструмента netctl и проверка подключения системы, введя следующие команды.
netctl start static.ens33
netctl status static.ens33
5. Если вы получили активный зеленый статус выхода, вы успешно настроили свой Сетевой интерфейс, и пришло время автоматически включить его в общесистемных службах. Также проверьте свою сеть, запустив команду ping для имени домена, а также установите пакет net-tools (самая известная функция этого пакета — команда ifconfig, которую Arch разработчики сочли его устаревшим и заменили его на iproute2).
Включить общесистемные конфигурации сетевых карт
netctl enable static.ens33
Установите пакет сетевых инструментов
pacman -S net-tools
6. Теперь вы можете запустить команду ifconfig, чтобы проверить настройки Сетевых интерфейсов и проверить, все ли отображается правильно, а затем перезагрузить. б> ваша система, чтобы убедиться, что все на месте и правильно настроено.
ping linux-console.net
Шаг 2. Установите программное обеспечение LEMP
Как указано во введении к этой статье, LEMP означает Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB, которая сегодня является одной из наиболее распространенных платформ веб-приложений после LAMP ( тот же стек с Apache в уравнении).
7. Перед фактической установкой стека LEMP нам необходимо обновить систему, а затем получить удаленное управление сервером Arch Linux. Как вы, вероятно, знаете, OpenSSH является основным кандидатом на эту работу, поэтому установите его, запустите демон SSH и включите его для всей системы.
sudo pacman -Syu
sudo pacman –S openssh
sudo systemctl start sshd
sudo systemctl status sshd
sudo systemctl enable sshd
Теперь пришло время приступить к установке LEMP. Поскольку это руководство задумано как всеобъемлющее руководство, я разделю установку стека LEMP на небольшие части, шаг за шагом.
8. Сначала установите Веб-сервер Nginx, затем запустите его и проверьте его статус, выполнив следующие команды.
sudo pacman -S nginx
sudo systemctl start nginx
sudo systemctl status nginx
9. Следующей службой, которую необходимо установить, является база данных MySQL. Введите следующую команду, чтобы установить сервер базы данных MySQL, выберите механизм MariaDB, затем запустите и проверьте статус демона.
sudo pacman -S mysql
sudo systemctl start mysqld
sudo systemctl status mysqld
10. Следующий шаг — обеспечить высокобезопасную среду для баз данных MySQL, предоставив пароль для корневой учетной записи MySQL, удалив анонимную учетную запись пользователя, удалив тестовую базу данных и корневые учетные записи, доступные из-за пределов локального хоста. Запустите следующую команду, чтобы повысить безопасность MySQL, нажмите [Enter] для ввода текущего пароля учетной записи root, затем ответьте Да на все вопросы (также настройте пароль учетной записи root).
sudo mysql_secure_installation
Примечание. Ни в коем случае не путайте корневую учетную запись MySQL с корневой учетной записью системы Linux — это две разные вещи — не такие уж разные, но они работают на разных уровнях.
Чтобы проверить безопасный вход MySQL в базу данных с помощью синтаксиса команды mysql -u root -p, укажите свой пароль root, а затем покиньте базу данных с помощью команды exit;.
mysql -u root -p
11. Теперь пришло время установить серверный язык сценариев PHP, чтобы иметь возможность разрабатывать и запускать сложные динамические веб-приложения, а не просто обслуживать HTML/CSS код.
Поскольку мы используем Nginx в качестве веб-сервера, нам необходимо установить модуль на базе PHP-FPM для связи через Fast Common Gateway и изменения генерируемого динамического контента. с помощью PHP-скриптов.
Введите следующую командную строку, чтобы установить службу PHP-FPM, затем запустите демон и проверьте статус.
sudo pacman –S php php-fpm
sudo systemctl start php-fpm
sudo systemctl status php-fpm
Чтобы просмотреть все доступные модули PHP, введите следующие команды.
sudo pacman –S php[TAB]
sudo pacman –Ss | grep php
12. Одним из последних шагов является установка Веб-интерфейса PhpMyAdmin для базы данных MySQL. Выполните следующую команду, чтобы установить PhpMyAdmin вместе с необходимым для него модулем PHP, затем создайте символическую ссылку для системного пути PhpMyAdmin на корневой путь Nginx по умолчанию.
pacman -S phpmyadmin php-mcrypt
sudo ln -s /usr/share/webapps/phpMyAdmin /usr/share/nginx/html
13. Затем настройте файл php.ini, включив в него необходимые расширения, необходимые приложению PhpMyAdmin.
sudo nano /etc/php/php.ini
С помощью клавиш [CTRL+W] раскомментируйте (удалите ; в начале строки) следующие строки.
extension=mysqli.so
extension=mysql.so
extension=mcrypt.so
mysqli.allow_local_infile = On
В том же файле найдите и отредактируйте директиву open_basedir, чтобы она напоминала следующие включенные каталоги.
open_basedir= /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/
14. Следующий шаг — включить PHP-FPM FastCGI в директиве localhost Nginx. Введите следующую команду для резервного копирования конфигурации файла веб-сервера nginx.conf, а затем замените ее следующим содержимым.
sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo nano /etc/nginx/nginx.conf
Добавьте весь следующий контент в nginx.conf.
#user html;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
charset koi8-r;
location / {
index index.php index.html index.htm;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
location /phpmyadmin {
rewrite ^/* /phpMyAdmin last;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ /\.ht {
deny all;
}
}
}
15. После того, как все настройки файлов были выполнены, все, что вам нужно сделать, это перезапустить службы Nginx и PHP-FPM и указать в браузере http://localhost/phpmyadmin URL-адрес с локального узла или http://arch_IP/phpmyadmin с другого компьютера.
sudo systemctl restart php-fpm
sudo systemctl restart nginx
16. Если все работает так, как задумано, последним шагом будет включение LEMP в масштабе всей системы с помощью следующих команд.
sudo systemctl enable php-fpm
sudo systemctl enable nginx
sudo systemctl enable mysqld
Поздравляем! Вы установили и настроили LEMP в Arch Linux, и теперь у вас есть полноценный динамический интерфейс для запуска и разработки веб-приложений.
Хотя Arch Linux не является самой подходящей системой для запуска на производственных серверах из-за своей модели непрерывного выпуска, ориентированной на сообщество, он может быть очень быстрым и надежным источником для небольших некритических производственных сред.