Как установить LEMP (Nginx, PHP, MariaDB) в Arch Linux
Из-за своей модели непрерывного выпуска, которая включает в себя передовое программное обеспечение, Arch Linux не был спроектирован и разработан для работы в качестве сервера для предоставления надежных сетевых услуг, поскольку требует дополнительного времени для обслуживания, постоянных обновлений и разумных файлов. конфигурации.
Но, тем не менее, поскольку Arch Linux поставляется с базовой установкой с минимальным предустановленным программным обеспечением, он может стать надежной отправной точкой для установки большинства популярных в наши дни сетевых служб, включая LEMP или LAMP, веб-сервер Apache, Nginx, PHP, базы данных SQL, Samba, FTP-серверы, BIND и другие, многие из которых предоставляются из Arch Официальные репозитории Linux и другие из AUR.
В этом руководстве описаны установка и настройка стека LEMP (Nginx, PHP, MySQL с движком MariaDB и PhpMyAdmin) удаленно с использованием SSH >, который может стать прочной основой для создания приложений веб-сервера.
Шаг 1. Назначьте статический IP-адрес сетевому интерфейсу Arch Linux
1. После минимальной базовой установки Arch Linux перезагрузите сервер, войдите в систему с учетной записью root или эквивалентной административной учетной записью sudo и определите имена сетевых устройств вашей системы с помощью команды ip link
.
ip link
2. Чтобы назначить статические конфигурации сети, мы будем использовать пакет netctl для управления сетевыми подключениями. После того как вы успешно определили имена своих сетевых интерфейсов, скопируйте шаблон файла ethernet-static в системный путь netctl и измените его имя на описательное. (попробуйте использовать строку «static» в сочетании с именем сетевого адаптера), выполнив следующую команду.
sudo pacman -S netctl
sudo cp /etc/netctl/examples/ethernet-static /etc/netctl/my-static-profile
3. Следующий шаг — отредактировать этот новый файл шаблона, изменив директивы файла и указав фактические настройки сети (интерфейс, IP/сетевая маска, шлюз, широковещание, DNS), как показано в приведенном ниже отрывке.
sudo nano /etc/netctl/my-static-profile
Измените файл с настройками вашей сети:
Description='A basic static ethernet connection'
Interface=eth0 # Replace with your network interface name
Connection=ethernet
IP=static
Address=('192.168.1.100/24') # Replace with your desired IP address
Gateway='192.168.1.1' # Replace with your gateway address
DNS=('192.168.1.1') # Replace with your DNS server, if needed
4. Следующим шагом будет запуск сетевого подключения с помощью системного инструмента netctl и проверка подключения системы, введя следующие команды.
sudo netctl start my-static-profile
sudo netctl status my-static-profile
5. Если вы получили активный зеленый статус выхода, вы успешно настроили свой Сетевой интерфейс, и пришло время автоматически включить его в общесистемных службах.
sudo netctl enable my-static-profile
Также проверьте свою сеть, выполнив команду ping для имени домена, а также установите пакет net-tools (самая известная функция этого пакета — команда ifconfig, которая Разработчики Arch считаются устаревшими и заменены на iproute2).
sudo pacman -S net-tools
6. Теперь вы можете запустить команду ifconfig, чтобы проверить настройки Сетевых интерфейсов и проверить, все ли отображается правильно, а затем перезагрузить вашей системы, чтобы убедиться, что все на месте и правильно настроено.
ifconfig
ping linux-console.net
Шаг 2. Установите программное обеспечение LEMP в Arch Linux
Как указано во введении к этой статье, 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, удалив анонимную учетную запись пользователя, удалив тестовую базу данных и учетные записи root, доступные из-за пределов локального хоста.
Запустите следующую команду, чтобы повысить безопасность 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
sudo systemctl enable php-fpm
Чтобы просмотреть все доступные модули PHP, выполните следующие команды.
sudo pacman -Ss | grep php
12. Одним из последних шагов является установка Веб-интерфейса PhpMyAdmin для базы данных MySQL. Выполните следующую команду, чтобы установить PhpMyAdmin вместе с его модулем, необходимым для PHP, затем создайте символическую ссылку для системного пути PhpMyAdmin на корневой путь Nginx по умолчанию.
sudo pacman -S phpmyadmin
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=mysqli
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 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 не является самой лучшей системой для запуска на производственных серверах из-за своей модели непрерывного выпуска, ориентированной на сообщество, он может быть очень быстрым и надежным источником для небольших некритических производственных сред.