Nginx + php56 + php-fpm + MySQL (MariaDB) + phpMyAdmin + Python36

0. Обновляемся, отключаем selinux:

$ sudo yum update
$ sudo setenforce 0

Посмотреть состояние:

$ sudo getenforce

Выключить совсем:

$ sudo nano /etc/selinux/config
SELINUX=enforcing

меняем на permissive или disabled.

1. nginx
$ sudo yum install epel-release
$ sudo yum install nginx

2. нужно открыть порты 80 и 443, для этого последовательно выполняем команды:

 $ sudo firewall-cmd --permanent --zone=public --add-service=http
 $ sudo firewall-cmd --permanent --zone=public --add-service=https
 $ sudo firewall-cmd --reload

Или отключаем firewalld, устанавливаем iptables и настраиваем там:

$ sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables  -A INPUT -i lo -j ACCEPT
$ sudo iptables  -A INPUT -p icmp -m icmp --icmp-type 0,8,11 -j ACCEPT
$ sudo iptables  -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ sudo iptables  -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo iptables  -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
$ sudo iptables -P INPUT DROP

3. Запускаем Nginx:

$ sudo systemctl start nginx.service

4. добавляем Nginx в автоматическую загрузку при перезапуске сервера:

$ sudo systemctl enable nginx.service

5. проверяем:

http://192.168.113.27
6. MySQL
$ sudo yum install mariadb-server mariadb -y

7. Запускайте MariaDB:

$ sudo systemctl start mariadb

8. Далее нужно настроить безопасность баз данных. При первом заходе будет запрошен пароль, если вы его не установили, то он пустой, нужно нажать просто Enter:

$ sudo mysql_secure_installation

В процессе будут заданы несколько вопросов, после согласия с ними клавишу “y”.

 mysql_secure_installation prompts:
 Enter current password for root (enter for none):
 OK, successfully used password, moving on...

 Setting the root password ensures that nobody can log into the MariaDB
 root user without the proper authorisation.

 New password: password
 Re-enter new password: password
 Password updated successfully!
 Reloading privilege tables..
 ... Success!

9. В конце добавляем для MariaDB автоматический запуск:

$ sudo systemctl enable mariadb.service

Больше никаких настроек для баз данных не нужно.

10. Установим PHP и необходимые компоненты для работы с Nginx и MariaDB:
$ sudo yum install php php-mysql php-fpm -y

10a. Command to install the Remi repository configuration package:

# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Command to install the yum-utils package (for the yum-config-manager command):

# yum install yum-utils

The php56 collection is available in the remi-safe repository

Command to install:

# yum install php56w

Command to install additional packages:

# yum install php56w php56w-mysql php56w-fpm

11. Нужна небольшая настройка PHP. Открывайте файл:

$ sudo nano /etc/php.ini

В самом конце дописывайте данную строку:

cgi.fix_pathinfo=0

и, попутно, правим:

display_errors = On // После отладки - Off
post_max_size = 60M
;default_charset = "UTF-8"
default_charset = "windows-1251" // У меня сайты в такой кодировке - меняем.
file_uploads = On
upload_max_filesize = 50M
max_file_uploads = 20
date.timezone = Europe/Kiev

12. Далее редактируйте еще один файл:

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

Нужно найти строку “listen =” и изменить ее значение. Должно быть вот так:

listen = /var/run/php-fpm/php-fpm.sock

13. Осталось запустить PHP:

$ sudo systemctl start php-fpm

14. И включить автоматическую загрузку при старте сервера:

$ sudo systemctl enable php-fpm.service

15. Нужно настроить Nginx на работу с PHP. Открывайте файл:

$ sudo nano /etc/nginx/conf.d/default.conf

Удаляйте все данные из него и вписывайте данный код, в третьей строке нужно указать домен или ip-адрес виртуального сервера и сохраняем:

server {
 listen 80;
 server_name домен_или_IP_сервера;
 root /usr/share/nginx/html;
 index index.php index.html index.htm;
 location / {
 try_files $uri $uri/ =404;
 }
 error_page 404 /404.html;
 error_page 500 502 503 504 /50x.html;
 location = /50x.html
 {
 root /usr/share/nginx/html;
 }
 location ~ \.php$ {
 try_files $uri =404;
 fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 }
 }

16. Перезапускаем Nginx, чтобы все изменения вступили в силу:

$ sudo systemctl restart nginx

17. Далее нужно протестировать все настройки. Создаем файл для проверки работы:

$ sudo nano /usr/share/nginx/html/info.php

18. Вписываем в него строку и сохраняем:

<?php phpinfo(); ?>

19. Проверяем:

http://192.168.113.27/info.php

20. Если все нормально удаляем файл:

$ sudo rm /usr/share/nginx/html/info.php

Далее настраиваем nginx по второй ссылке

phpmyadmin

21. Python3.6

Устанавливаем репозиторий:

# yum install https://centos7.iuscommunity.org/ius-release.rpm
# yum install python36u python36u-devel python36u-pip

 

 

https://invs.ru/support/chastie-voprosy/kak-ustanovit-lemp-linux-nginx-mysql-php-na-centos-7/
http://drach.pro/blog/linux/item/38-nginx-apache-web-server
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7