Установка nginx
После установки чистой системы, произведем установку и настройку связки nginx + php-fpm
система:
1 2 |
# cat /etc/centos-release CentOS Linux release 7.3.1611 (Core) |
Подключаем репу:
1 |
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm |
Устанавливает пакет:
1 |
yum install nginx |
Проверяем:
1 2 |
# yum repolist | grep nginx nginx nginx repo 56 |
Если возникли проблемы:
1 |
yum clean all; yum update |
Проверяем:
1 2 3 4 |
yum list installed | grep nginx nginx.x86_64 1.6.0-1.el6.ngx @nginx Nginx-release-centos.noarch |
Добавляем в автозагрузку:
1 |
systemctl enable nginx.service |
И запускаем:
1 |
systemctl start nginx.service |
Проверяем, запустился ли:
1 2 |
# netstat -tulpn | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 21585/nginx: master |
Если не запускает, убедится что 80-й порт не занимает apache:
1 2 |
netstat -ntupl | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1238/httpd |
Если занят и использование httpd не предпологается, т.к. мы будем использовать nginx+php-fpm тогда останавливаем и убираем из сервисов:
1 2 3 |
systemctl stop httpd.service systemctl disable httpd.service Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service. |
Не забываем после всего открыть 80-й порт на файрволе:
1 |
iptables -I INPUT -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT |
Установка php-fpm 7
Устанавливаем php-fpm и некоторые модули, которые скорее всего пригодятся в дальнейшей работе:
используем этих ребят https://webtatic.com/packages/php70/ , репа:
1 2 |
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm |
Устанавливаем:
1 |
yum install php70w-fpm php70w-common php70w-cli php70w-mysql php70w-gd php70w-ldap php70w-odbc php70w-pdo php70w-pear php70w-xml php70w-xmlrpc php70w-mbstring php70w-snmp php70w-soap |
Добавляем php-fpm в автозагрузку:
1 2 |
systemctl enable php-fpm.service ln -s '/usr/lib/systemd/system/php-fpm.service' '/etc/systemd/system/multi-user.target.wants/php-fpm.service' |
И запускаем:
1 |
systemctl start php-fpm.service |
Проверяем:
1 2 |
netstat -tulpn | grep php-fpm tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2907/php-fpm: maste |
Пример конфига nginx для домена с php-fpm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
server { listen *:80 ; server_name mysite.com; access_log /var/log/nginx/mysite.com_nginx_access.log; error_log /var/log/nginx/mysite.com_nginx_error.log; root /var/www/mysite.com; index index.php; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_read_timeout 60; fastcgi_intercept_errors on; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~* \.(svg|jpg|jpeg|gif|png|ico|bmp|js|css|txt|swf)(\?.*)?$ { expires max; } } |
Привет конфига для php-fpm (/etc/php-fpm.d/mysite.com.conf)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
[mysite.com] listen = 127.0.0.1:9000 listen.backlog = -1 listen.allowed_clients = 127.0.0.1 listen.owner = root listen.group = nginx listen.mode = 0660 user = apache group = apache pm = dynamic pm.max_children = 128 pm.start_servers = 30 pm.min_spare_servers = 25 pm.max_spare_servers = 50 pm.max_requests = 1000 pm.status_path = /fpm-status request_terminate_timeout = 0 request_slowlog_timeout = 0 slowlog = /var/log/mysite.com/php_slow.log rlimit_files = 65536 rlimit_core = 0 catch_workers_output = no security.limit_extensions = .php php_admin_flag[display_errors] = off php_admin_flag[log_errors] = on php_admin_value[error_log] = /var/log/mysite.com/php_error.log php_admin_value[memory_limit] = 256M php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f noreply@mysite.com php_admin_value[session.save_handler] = files php_admin_value[session.save_path] = /var/lib/php/session php_admin_value[session.gc_maxlifetime] = 72000 php_admin_value[session.cookie_secure] = on php_admin_value[session.cookie_httponly] = on php_admin_value[session.use_only_cookies] = on php_admin_value[max_execution_time] = 60 php_admin_value[max_input_time] = 60 php_admin_value[post_max_size] = 30M php_admin_value[upload_max_filesize] = 30M |
One thought on “nginx + php-fpm on CentOS 7”