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