Установка php-fpm 5.4 в связке с nginx на CentOS 6.3

Маленькое руководство по установке nginx, php 5.4 с FPM на CentOS (6.3).

Для начала добавляем репозитории REMI, чтобы спокойно устанавливать пакеты через yum.

REMI пакеты для CentOS 6+ 64-бит версии:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm

REMI пакеты для CentOS 6+ 32-бит версии:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm

Дополнительный репозиторий для CentOS 6

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

REMI пакеты для CentOS 5 64-бит версии

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

REMI пакеты для  CentOS 5 32-бит версии

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

Дополнительный репозиторий для CentOS 5

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

Для актуальной работы с nginx оптимальнее всего подключить репозиторий nginx. Для этого в каталоге /etc/yum.repos.d/nginx.repo создаем файл с именем nginx.repo и вносим следующие:

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=0

enabled=1

На этом система готова к установке всего необходимого через yum.

Устанавливаем Nginx, PHP 5.4.9 и PHP-FPM PHP с модулями:

yum --enablerepo=remi,remi-test install nginx php php-fpm php-common

yum --enablerepo=remi,remi-test install php-pear php-pdo php-mysql 

yum --enablerepo=remi,remi-test install php-pgsql php-pecl-memcache 

yum --enablerepo=remi,remi-test install php-gd php-mbstring php-mcrypt php-xml

Список PHP модулей:

php-fpm - менеджер управления процессами PHP

php-common - общие библиотеки, необходимые процессору php

php-pear - библиотека подключающая репозитории с компонентами

php-pdo - модуль для доступа к базам данных

php-mysql - модуль для работы с СУБД MySQL

php-pgsql - модуль для работы с СУБД PostgreSQL

php-pecl-memcache - расширения работы с кэш-данными

php-gd - расширения для работы с графическими данными

php-mbstring - модуль, необходимый для работы с UTF-8 и другими стандартами строк

php-mcrypt - стандартный модуль для работы с алгоритмами шифрования

php-xml - модуль для процессинга XML

Теперь приступим к настройке конфигурации свежеустановленного nginx. Файл расположен по адресу /etc/nginx/nginx.conf.

# sudo vi /etc/nginx/nginx.conf.

user  nginx;
worker_processes  1;
 
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
 
events {
    worker_connections  1024;
}
 
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                                    '$status $body_bytes_sent "$http_referer" '
                                    '"$http_user_agent" "$http_x_forwarded_for"';
 
   access_log  /var/log/nginx/access.log  main;
 
   ## Proxy
   proxy_redirect off;
   proxy_set_header Host  $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   client_max_body_size 10m;
   client_body_buffer_size 128k;
   proxy_connect_timeout  90;
   proxy_send_timeout 90;
   proxy_read_timeout   90;
   proxy_buffers 8 16k;
   proxy_buffer_size 32k;
 
  ## Compression
  gzip on;
  gzip_types text/plain text/css application/x-javascript 
                       text/xml application/xml 
                       application/xml+rss text/javascript;
  gzip_disable "MSIE [1-6].(?!.*SV1)";
 
  ### TCP options
  tcp_nodelay on;
  tcp_nopush on;
  keepalive_timeout 10;
  sendfile on;
 
   # include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
Создаем каталог, где будут храниться веб-проекты, например: /var/web и меняем владельца данной папки:
# cd /var
# mkdir web
Устанавливаем владельца nginx
# sudo chown -R  nginx:nginx /var/web
Пример конфигурации виртуального хоста:
 
Создаем виртуальный хост
# sudo vi /etc/nginx/sites-available/site.com
 
server {
    listen 80;
 
    server_name site.com;
    root /var/web;
    access_log /var/log/nginx/$host-access.log;
    error_log  /var/log/nginx/dev-error.log error;
 
  location = /favicon.ico {
        log_not_found off;
        access_log off;
  }
 
  location = /robots.txt  { access_log off; log_not_found off; }
  location ~ /.          { access_log off; log_not_found off; deny all; }
  location ~ ~$           { access_log off; log_not_found off; deny all; }
 
  location ~* .(js|css|png|jpg|jpeg|gif|ico|xml|swf|flv|eot|ttf|woff|pdf|xls|htc)$ {
  add_header Pragma "public";
  add_header Cache-Control "public, must-revalidate, proxy-revalidate";
     access_log off;
        log_not_found off;
      expires   360d;
  }
 
  location ~ /.ht {
        deny all;
        access_log off;
         log_not_found off;
  }
 
  location ~ ^/(index|frontend_dev|admin|staging).php($|/) {
        #rewrite ^/(.*)/$ /$1 permanent;
        fastcgi_split_path_info ^(.+.php)(.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_pass   127.0.0.1:9000;
        include        fastcgi_params;
  }
 
  location / {
    index index.php;
    try_files $uri /index.php?$args;
  }
}
Добавляем ссылку настройки виртуального хоста в каталог include сервера nginx
sudo ln -s /etc/nginx/sites-available/site.com /etc/nginx/sites-enabled/site.com
Редактируем конфигурацию php-fpm, меняем пул www:
[www]
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
 
user = nginx
group = nginx
 
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
 
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
Меняем владельца каталога of php-fpm:
# sudo chown -R nginx:nginx /var/log/php-fpm
Торжественный момент! Запускаем ...nginx и php-fpm:
service nginx start
service php-fpm start
... и конечно добавляем и nginx и php-fpm в автозапуск:
chkconfig --add nginx
chkconfig --levels 235 nginx on
chkconfig --add php-fpm
chkconfig --levels 235 php-fpm on
 

4.4
Ваш рейтинг:
Всего оценок: 31
Алексей Логвинов

опубликовано: 28.11.12 в 18:30

Обсуждение

загранпаспорт - 13.12.14 в 03:12

Подписался на RSS, буду следить =)

Дублик - 02.11.14 в 19:55

динамично все это и очень позитивно

gfe4men - 28.10.14 в 23:47

Хотелось бы видеть надпись - to be continied

goldendolls - 27.10.14 в 21:27

Хм... Финиш... Наверное пора бы расслабиться и отдохнуть

5starse - 27.10.14 в 16:36

Ух ты, мне понравилось!

stars-models - 26.10.14 в 20:44

Взяла себе тоже-пригодится

avtoman - 16.10.14 в 18:19

А Вы не задумывались о том, чтобы параллельно завести еще один блог

vanya - 05.06.14 в 05:22

интересные посты - это ваш стиль безусловно!

необычный человек - 22.05.14 в 13:06

Классно написано и читать легко! ТС - золото!

tiopom - 14.04.14 в 02:27

The lunch was spectacular and served by full-time

Страницы
1 2
Показать
10 25