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

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