Установка nginx + php fpm + mysql + memcache на UBUNTU 18.04: различия между версиями
Misha (обсуждение | вклад) (Новая страница: «==Источники информации== # [https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04 Ho…») |
Misha (обсуждение | вклад) (→Установка MYSQL сервера) |
||
(не показано 11 промежуточных версий этого же участника) | |||
Строка 11: | Строка 11: | ||
<pre>sudo apt install nginx</pre> | <pre>sudo apt install nginx</pre> | ||
После инсталляции NGINX будет стартовать автоматически после перезагрузки.<br> | После инсталляции NGINX будет стартовать автоматически после перезагрузки.<br> | ||
− | Если у Вас установлен фаервол ufw, то его настройка описана в | + | Если у Вас установлен фаервол ufw, то его настройка описана в [https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04 статье]. Здесь описывать не буду.<br> |
Находим ip адрес компьютера | Находим ip адрес компьютера | ||
<pre>ifconfig</pre> | <pre>ifconfig</pre> | ||
− | и пробуем зайти на него из браузера по адресу http://<local_address_server> | + | и пробуем зайти на него из браузера по адресу http://<local_address_server><br> |
+ | Если получили приглашение NGINX - идем дальше. | ||
+ | |||
+ | ==Установка MYSQL сервера== | ||
+ | <pre>$ sudo apt install mysql-server</pre> | ||
+ | В данной версии вход пользователем mysql/root сделан только от системного пользователя root и без пароля, поэтому mysql_secure_installation запускаем так. | ||
+ | <pre>$ sudo mysql_secure_installation</pre> | ||
+ | И выполняем все, что предлагает скрипт<br> | ||
+ | '''Примечание:''' У меня не получилось изменить пароль mysql/root и вход так и остался, через sudo mysql -uroot - без пароля. | ||
+ | |||
+ | ==Установка и настройка PHP== | ||
+ | ===Установка=== | ||
+ | <pre>$ sudo apt-get install php-fpm php-mysql</pre> | ||
+ | ===Настройка=== | ||
+ | <pre>sudo nano /etc/php/7.2/fpm/php.ini</pre> | ||
+ | Было | ||
+ | <pre>;cgi.fix_pathinfo=1</pre> | ||
+ | Стало | ||
+ | <pre>cgi.fix_pathinfo=1</pre> | ||
+ | Заодно можно сделать настройки указанные [http://miac.volmed.org.ru/wiki/index.php/FAQ#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8.2C_.D0.BA.D0.BE.D1.82.D0.BE.D1.80.D1.8B.D0.B5_.D1.8F_.D1.81.D0.B4.D0.B5.D0.BB.D0.B0.D0.BB_.D0.BF.D1.80.D0.B8_.D0.BF.D0.B5.D1.80.D0.B5.D1.85.D0.BE.D0.B4.D0.B5_.D0.BD.D0.B0_php_5.3 тут]<br> | ||
+ | Теперь нам надо просто перезапустить PHP fpm сервис. | ||
+ | <pre>$ sudo systemctl restart php7.2-fpm</pre> | ||
+ | ==Настройка NGINX для работы с PHP fpm сервером.== | ||
+ | Мы установили все нужные компоненты. Осталось только сделать настройки Nginx, что бы он работал с динамическим контентом через PHP сервер.<php> | ||
+ | Открываем настройки Nginx сервера по умолчанию: | ||
+ | <pre>sudo nano /etc/nginx/sites-available/default</pre> | ||
+ | Файл /etc/nginx/sites-available/default выглядит примерно так | ||
+ | <pre> | ||
+ | server { | ||
+ | listen 80 default_server; | ||
+ | listen [::]:80 default_server; | ||
+ | |||
+ | root /var/www/html; | ||
+ | index index.html index.htm index.nginx-debian.html; | ||
+ | |||
+ | server_name _; | ||
+ | |||
+ | location / { | ||
+ | try_files $uri $uri/ =404; | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | Мы должны сделать некоторые изменения для нашего сайта | ||
+ | # Во-первых, нам нужно добавить index.php в качестве первого значения строки директивы index, так чтобы файл с именем index.php был открыт, если он доступен, когда запрашивается каталог. | ||
+ | # Мы можем изменить директиву server_name, чтобы указать доменное имя или общедоступный IP-адрес нашего сервера. | ||
+ | # Для фактической обработки PHP нам просто нужно раскомментировать сегмент файла, который обрабатывает запросы PHP, удаляя символы фунта (#) перед каждой строкой. Это будет блок местоположения ~ \ .php $, включенный фрагмент fastcgi-php.conf и сокет, связанный с php-fpm. | ||
+ | # Мы также раскомментируем блок местоположения, связанный с файлами .htaccess, используя тот же метод. Nginx не обрабатывает эти файлы. Если какой-либо из этих файлов попадает в корень документа, они не должны обслуживаться посетителями. | ||
+ | Было | ||
+ | <pre>index index.html index.htm index.nginx-debian.html;</pre> | ||
+ | Стало | ||
+ | <pre>index index.php index.html index.htm index.nginx-debian.html;</pre> | ||
+ | |||
+ | Было | ||
+ | <pre>server_name _;</pre> | ||
+ | Стало | ||
+ | <pre>server_name server_domain_or_IP;</pre> | ||
+ | И добавляем модули location в модуль server | ||
+ | <pre>location ~ \.php$ { | ||
+ | include snippets/fastcgi-php.conf; | ||
+ | fastcgi_pass unix:/run/php/php7.2-fpm.sock; | ||
+ | } | ||
+ | location ~ /\.ht { | ||
+ | deny all; | ||
+ | }</pre> | ||
+ | После сделанных изменений, сохраняем и закрываем файл.<br> | ||
+ | Проверяем конфигурацию nginx | ||
+ | <pre>sudo nginx -t</pre> | ||
+ | И если ошибок нет, то перезапускам nginx. | ||
+ | <pre>sudo systemctl reload nginx</pre> | ||
+ | ==Создание файла для проверки конфигурации== | ||
+ | Для проверки можно создать файл с любым кодом PHP и проверить как оно работает.<br> | ||
+ | Например, создаем файл /var/www/html/index.php со следующим содержимым | ||
+ | <pre><?php | ||
+ | phpinfo();</pre> | ||
+ | Теперь в браузере заходим http://server_domain_or_IP/index.php<br> | ||
+ | И если Вы увидите таблицу настроек PHP, то настройки сделаны правильно. | ||
+ | ==[http://miac.volmed.org.ru/wiki/index.php/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_memcache Добавления модуля memcache]== |
Текущая версия на 08:42, 29 июня 2018
Содержание
Источники информации
- How To Install Linux, Nginx, MySQL, PHP (LEMP stack) in Ubuntu 16.04.
- Install Nginx with PHP-FPM and Memcached Support on Ubuntu 17.04 / 17.10.
Обновление системы
Для начала обновляем систему
$ sudo apt update $ sudo apt upgrade
Установка NGINX
sudo apt install nginx
После инсталляции NGINX будет стартовать автоматически после перезагрузки.
Если у Вас установлен фаервол ufw, то его настройка описана в статье. Здесь описывать не буду.
Находим ip адрес компьютера
ifconfig
и пробуем зайти на него из браузера по адресу http://<local_address_server>
Если получили приглашение NGINX - идем дальше.
Установка MYSQL сервера
$ sudo apt install mysql-server
В данной версии вход пользователем mysql/root сделан только от системного пользователя root и без пароля, поэтому mysql_secure_installation запускаем так.
$ sudo mysql_secure_installation
И выполняем все, что предлагает скрипт
Примечание: У меня не получилось изменить пароль mysql/root и вход так и остался, через sudo mysql -uroot - без пароля.
Установка и настройка PHP
Установка
$ sudo apt-get install php-fpm php-mysql
Настройка
sudo nano /etc/php/7.2/fpm/php.ini
Было
;cgi.fix_pathinfo=1
Стало
cgi.fix_pathinfo=1
Заодно можно сделать настройки указанные тут
Теперь нам надо просто перезапустить PHP fpm сервис.
$ sudo systemctl restart php7.2-fpm
Настройка NGINX для работы с PHP fpm сервером.
Мы установили все нужные компоненты. Осталось только сделать настройки Nginx, что бы он работал с динамическим контентом через PHP сервер.<php> Открываем настройки Nginx сервера по умолчанию:
sudo nano /etc/nginx/sites-available/default
Файл /etc/nginx/sites-available/default выглядит примерно так
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }
Мы должны сделать некоторые изменения для нашего сайта
- Во-первых, нам нужно добавить index.php в качестве первого значения строки директивы index, так чтобы файл с именем index.php был открыт, если он доступен, когда запрашивается каталог.
- Мы можем изменить директиву server_name, чтобы указать доменное имя или общедоступный IP-адрес нашего сервера.
- Для фактической обработки PHP нам просто нужно раскомментировать сегмент файла, который обрабатывает запросы PHP, удаляя символы фунта (#) перед каждой строкой. Это будет блок местоположения ~ \ .php $, включенный фрагмент fastcgi-php.conf и сокет, связанный с php-fpm.
- Мы также раскомментируем блок местоположения, связанный с файлами .htaccess, используя тот же метод. Nginx не обрабатывает эти файлы. Если какой-либо из этих файлов попадает в корень документа, они не должны обслуживаться посетителями.
Было
index index.html index.htm index.nginx-debian.html;
Стало
index index.php index.html index.htm index.nginx-debian.html;
Было
server_name _;
Стало
server_name server_domain_or_IP;
И добавляем модули location в модуль server
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } location ~ /\.ht { deny all; }
После сделанных изменений, сохраняем и закрываем файл.
Проверяем конфигурацию nginx
sudo nginx -t
И если ошибок нет, то перезапускам nginx.
sudo systemctl reload nginx
Создание файла для проверки конфигурации
Для проверки можно создать файл с любым кодом PHP и проверить как оно работает.
Например, создаем файл /var/www/html/index.php со следующим содержимым
<?php phpinfo();
Теперь в браузере заходим http://server_domain_or_IP/index.php
И если Вы увидите таблицу настроек PHP, то настройки сделаны правильно.