Как установить Nginx, PHP, MariaDB и PhpMyAdmin на Arch Linux

Благодаря модели 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

  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/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
  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 tecmint.com

Шаг 2: Установите программное обеспечение LEMP на Arch Linux

Как указано во введении к этой статье, LEMP означает Linux, Nginx, PHP/PhpMyAdmin и MySQL/MariaD, что является одной из самых распространенных платформ веб-приложений на сегодняшний день после LAMP (тот же стек с Apache в уравнении).

  1. Перед установкой стека 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 на небольшие части, шаг за шагом.
  2. Сначала установите Nginx Web Server, затем запустите его и проверьте его состояние, выполнив следующие команды.
    sudo pacman -S nginx
    sudo systemctl start nginx
    sudo systemctl status nginx


  3. Следующей службой, которую необходимо установить, является база данных MySQL. Выполните следующую команду, чтобы установить сервер базы данных MySQL и выбрать движок MariaDB, затем запустите и проверьте состояние демона.
    sudo pacman -S mysql
    sudo systemctl start mysqld
    sudo systemctl status mysqld

  4. Следующим шагом будет создание безопасной среды для баз данных MySQL путем предоставления пароля для корневой учетной записи MySQL, удаления анонимной учетной записи пользователя, удаления тестовой базы данных и корневых учетных записей, доступных извне localhost.
    Выполните следующую команду для повышения безопасности MySQL, нажмите Enter для ввода текущего пароля root-аккаунта, затем ответьте Yes на все вопросы (также установите пароль root-аккаунта).
    sudo mysql_secure_installation


    Для проверки безопасности MySQL войдите в базу данных, используя синтаксис команды mysql -u root -p, укажите свой пароль root и выйдите из базы данных, используя команду exit;.
    mysql -u root -p

  5. Теперь пришло время установить язык сценариев на стороне сервера 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

  6. Одним из последних шагов является установка веб-интерфейса PhpMyAdmin для базы данных MySQL. Выполните следующую команду для установки PhpMyAdmin вместе с его модулем, необходимым для работы с PHP, а затем создайте символическую ссылку для системного пути PhpMyaAdmin на корневой путь Nginx по умолчанию.
    sudo pacman -S phpmyadmin
    sudo ln -s /usr/share/webapps/phpMyAdmin  /usr/share/nginx/html

  7. Затем настройте файл 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/
  8. Следующим шагом будет включение директивы 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;
            }
        }
    }
  9. После того, как все настройки файлов выполнены, вам остается только перезапустить сервисы Nginx и PHP-FPM и направить браузер на http://localhost/phpmyadmin URL с локального узла или http://arch_IP/phpmyadmin с другого компьютера.
    sudo systemctl restart php-fpm
    sudo systemctl restart nginx


  10. Если все работает как надо, то последним шагом будет включение LEMP во всей системе с помощью следующих команд.
    sudo systemctl enable php-fpm
    sudo systemctl enable nginx
    sudo systemctl enable mysqld

Поздравляем! Вы установили и настроили LEMP на Arch Linux и теперь у вас есть полноценный динамический интерфейс для запуска и разработки веб-приложений.

Хотя Arch Linux – не самая лучшая система для производственных серверов из-за ориентированной на сообщество модели скользящих выпусков, она может быть очень быстрым и надежным источником для небольших некритичных производственных сред.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.tecmint.com

Похожие статьи

Комментарии (0)