Fedora Linux — Установка, настройка LEMP — Nginx + PHP-FPM +phpMyAdmin(PMA)

Отличная связка nginx + php-fpm — работает быстро, настраивается быстро, разворачивается быстро, при работе с php по мне так, это отличная связка. Весь материал из данной статьи — настройка домашнего LEMP сервера для тестовых нужд т.е. ниже расскажу как развернуть такой стек, создать демо-страницу или страницы. По сути чтение + воплощение стати в жизнь, примерно 5 — 10 минут, в конце сатьти представлен рабочий скрипт, который создает, удаляет, отображает существующие сайты.

Установка Nginx + Php-fpm

Устанавливаем необходимые пакеты (собственно сам стек):

dnf install nginx php-fpm php-common

Стартуем, включаем nginx:

systemctl enable nginx && systemctl start nginx

Конфигурирование php-fpm

Немного правим конфиг php-fpm:

nano /etc/php-fpm.d/www.conf

Изменяя параметры:

user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Включаем и стартуем php-fpm

systemctl enable php-fpm.service && systemctl start php-fpm.service

Создание тестового сайта

Создадим каталог сайта:

mkdir -p /srv/www/site1.local/public_html

Каталог для логов сайта:

mkdir /srv/www/site1.local/logs

Создадим индексный файл, который выводит информацию о php:

nano /srv/www/site1.local/public_html/index.php

С текстом:

<?php 
    phpinfo();

Указываем разрешения для каталога сайта:

chown -R nginx:nginx /srv/www/site1.local

Конфигурирование nginx

Создаем необходимые каталоги:

mkdir -p /etc/nginx/sites-available/ && mkdir -p /etc/nginx/sites-enabled/

Подключаем каталог sites-available в секцию http в /etc/nginx/nginx.conf:

include /etc/nginx/sites-available/*.conf;

Создаем файл-конфиг для нашего сайта:

nano /etc/nginx/sites-available/site1.local.conf

С параметрами:

server {
    server_name site1.local;
    access_log /srv/www/site1.local/logs/access.log;
    error_log /srv/www/site1.local/logs/error.log;
    root /srv/www/site1.local/public_html;

    location / {
        index index.html index.htm index.php;
    }

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Создаем симлинку для включения сайта:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/site1.local.conf

 

Создаем файл /var/run/php-fpm/php-fpm.sock, если его еще нет, и права на него выдаем*:

sudo touch /var/run/php-fpm/php-fpm.sock
sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock

Задаем права на файл конфигурации*:

sudo chown nginx:nginx /etc/nginx/sites-available/site1.local.conf

Перезапускаем nginx:

systemctl restart nginx

Дополнительные настройки

Добавляем в /etc/hosts наш новоиспеченный сайт:

echo "xxx.xxx.xxx.x site1.local" >> /etc/hosts

Где xxx.xxx.xxx.x — IP сервера, где разворачивается LEMP.

Так, как сервер тестовый разрешаем контекст httpd_t для selinux:

semanage permissive -a httpd_t

Далее необходимо открыть http сервис в firewalld:

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

Проверку можно осуществить в браузере набрав в адресной строке http://site1.local

Автоматизация

Руками пилить все вышеописанные папки довольно долго и нудно, для облегчения задач был написан скрипт, который может:

  • Создавать тестовые сайты (папки, конфиги, индексный файл)
  • Удалять любой из тестовых сайтов
  • Отображать информацию о существующих сайтах

Ропозиторий — https://github.com/m0zgen/create-lemp-site

 

Источник: https://sys-adm.in/sections/os-nix/830-fedora-linux-ustanovka-nastrojka-lemp-nginx-php-fpm.html

Примечание:

* — мои добавки, без которых у меня не завелось, по данному руководству

site1.local заменил на start.local

PMA (phpMyAdmin)

дальше расскажу как в CentOS / Fedora собственно быстро установить сабж.

Установка

В CentOS нужно установить epel-release:

yum install epel-release

Установить phpMyAdmin используя yum / dnf:

yum install phpmyadmin

Настройка разрешений

Настроить разрешения на PMA:

chgrp -R nginx /etc/phpMyAdmin

Настроить разрешения для каталога сессий:

chown -R nginx:nginx /var/lib/php/

Создание nginx конфига phpMyAdmin

Создать каталог для нашего сниппета:

mkdir -p /etc/nginx/snippets

Создать файл конфига:

nano /etc/nginx/snippets/phpMyAdmin.conf

С параметрами:

location /phpMyAdmin {
       root /usr/share/;
       index index.php index.html index.htm;
       location ~ ^/phpMyAdmin/(.+\.php)$ {
               try_files $uri =404;
               root /usr/share/;
               fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
               fastcgi_index index.php;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               include /etc/nginx/fastcgi_params;
       }
       location ~* ^/phpMyAdmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
               root /usr/share/;
       }
}
location /phpmyadmin {
    rewrite ^/* /phpMyAdmin last;
}

Подключить в конфиг своего сайта в раздел server новый сниппет:

include /etc/nginx/snippets/phpMyAdmin.conf;

Перезапустить nginx:

systemctl restart nginx

Как открыть PMA

Здесь все просто, PMA будет доступен по ссылке:

http://test-site.local/phpMyAdmin
Если в момент импорта большого дампа в PMA возникает ошибка 413 Request Entity Too Large, в конфиг nginx в раздел http можно добавить параметр client_max_body_size 200M; где 200M размер дампа или больше. Так же по теме — Импорт большого дампа базы MySQL

Done!

 

Источник: https://sys-adm.in/sections/os-nix/837-kak-ustanovit-phpmyadmin-na-lemp-nginx-php-fpm-centos-fedora.html

Довольны?
[Оценок: 0 средняя: 0]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *