Поиск по сайту:

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


Из-за своей модели непрерывного выпуска, которая включает в себя передовое программное обеспечение, Arch Linux не был спроектирован и разработан для работы в качестве сервера для предоставления надежных сетевых услуг, поскольку требует дополнительного времени для обслуживания, постоянных обновлений и разумных файлов. конфигурации.

Но, тем не менее, поскольку Arch Linux поставляется с базовой установкой с минимальным предустановленным программным обеспечением, он может стать надежной отправной точкой для установки большинства популярных в наши дни сетевых служб, включая LEMP или LAMP, веб-сервер Apache, Nginx, PHP, базы данных SQL, Samba, FTP-серверы, BIND и другие, многие из которых предоставляются из Arch Официальные репозитории Linux и другие из AUR.

В этом руководстве описаны установка и настройка стека LEMP (Nginx, PHPMySQL с движком 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 не является самой лучшей системой для запуска на производственных серверах из-за своей модели непрерывного выпуска, ориентированной на сообщество, он может быть очень быстрым и надежным источником для небольших некритических производственных сред.