Благодаря модели Rolling Release, которая использует передовое программное обеспечение, 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
- После минимальной установки ядра Arch Linux перезагрузите сервер, войдите в систему под учетной записью root или эквивалентной административной учетной записью
sudo
и определите имена устройств сетевой карты вашей системы с помощью командыip link
.
ip link
- Для назначения статических сетевых конфигураций мы будем использовать пакет
netctl
для управления сетевыми подключениями. После успешного определения имен сетевых интерфейсов скопируйте шаблон файла ethernet-static в системный путь netctl и измените его имя на описательную схему именования (попробуйте использовать строку «static» в сочетании с именем сетевой карты), выполнив следующую команду.
sudo pacman -S netctl sudo cp /etc/netctl/examples/ethernet-static /etc/netctl/my-static-profile
- Следующим шагом будет редактирование этого нового файла-шаблона путем изменения директив файла и указания реальных сетевых настроек (интерфейс, IP/Netmask, шлюз, широковещание, 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
- Следующим шагом будет запуск сетевого подключения с помощью системного инструмента netctl и проверка возможности подключения к системе с помощью следующих команд.
sudo netctl start my-static-profile sudo netctl status my-static-profile
- Если вы получите активный зеленый статус выхода, то вы успешно настроили ваш сетевой интерфейс и пришло время автоматически включить его в общесистемных службах.
sudo netctl enable my-static-profile
Также протестируйте свою сеть, выполнив командуping
по доменному имени, а также установите пакетnet-tools
(наиболее известной функцией этого пакета является команда ifconfig, которую разработчики Arch посчитали устаревшей и заменили наiproute2
).
sudo pacman -S net-tools
- Теперь вы можете запустить команду
ifconfig
, чтобы проверить настройки сетевых интерфейсов и убедиться, что все отображается правильно, а затем перезагрузить вашу систему, чтобы убедиться, что все на месте и правильно настроено.
ifconfig ping tecmint.com
Шаг 2: Установите программное обеспечение LEMP на Arch Linux
Как указано во введении к этой статье, LEMP означает Linux, Nginx, PHP/PhpMyAdmin и MySQL/MariaD, что является одной из самых распространенных платформ веб-приложений на сегодняшний день после LAMP (тот же стек с Apache в уравнении).
- Перед установкой стека 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 на небольшие части, шаг за шагом. - Сначала установите Nginx Web Server, затем запустите его и проверьте его состояние, выполнив следующие команды.
sudo pacman -S nginx sudo systemctl start nginx sudo systemctl status nginx
- Следующей службой, которую необходимо установить, является база данных MySQL. Выполните следующую команду, чтобы установить сервер базы данных MySQL и выбрать движок MariaDB, затем запустите и проверьте состояние демона.
sudo pacman -S mysql sudo systemctl start mysqld sudo systemctl status mysqld
- Следующим шагом будет создание безопасной среды для баз данных MySQL путем предоставления пароля для корневой учетной записи MySQL, удаления анонимной учетной записи пользователя, удаления тестовой базы данных и корневых учетных записей, доступных извне localhost.
Выполните следующую команду для повышения безопасности MySQL, нажмите Enter для ввода текущего пароля root-аккаунта, затем ответьте Yes на все вопросы (также установите пароль root-аккаунта).
sudo mysql_secure_installation
Для проверки безопасности MySQL войдите в базу данных, используя синтаксис командыmysql -u root -p
, укажите свой пароль root и выйдите из базы данных, используя командуexit;
.
mysql -u root -p
- Теперь пришло время установить язык сценариев на стороне сервера 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
- Одним из последних шагов является установка веб-интерфейса PhpMyAdmin для базы данных MySQL. Выполните следующую команду для установки PhpMyAdmin вместе с его модулем, необходимым для работы с PHP, а затем создайте символическую ссылку для системного пути PhpMyaAdmin на корневой путь Nginx по умолчанию.
sudo pacman -S phpmyadmin sudo ln -s /usr/share/webapps/phpMyAdmin /usr/share/nginx/html
- Затем настройте файл 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/
- Следующим шагом будет включение директивы PHP-FPM FastCGI на локальном хосте 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; } } }
- После того, как все настройки файлов выполнены, вам остается только перезапустить сервисы Nginx и PHP-FPM и направить браузер на
http://localhost/phpmyadmin
URL с локального узла илиhttp://arch_IP/phpmyadmin
с другого компьютера.
sudo systemctl restart php-fpm sudo systemctl restart nginx
- Если все работает как надо, то последним шагом будет включение LEMP во всей системе с помощью следующих команд.
sudo systemctl enable php-fpm sudo systemctl enable nginx sudo systemctl enable mysqld
Поздравляем! Вы установили и настроили LEMP на Arch Linux и теперь у вас есть полноценный динамический интерфейс для запуска и разработки веб-приложений.
Хотя Arch Linux – не самая лучшая система для производственных серверов из-за ориентированной на сообщество модели скользящих выпусков, она может быть очень быстрым и надежным источником для небольших некритичных производственных сред.
Комментарии (0)