Установка Nginx с PHP5 и MySQL в CentOS 5.6

Содержание материала

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Установка PHP5

Мы можем запустить в работу PHP5 в Nginx через FastCGI. Там нет автономного FastCGI пакета демона для CentOS, поэтому мы используем FastCGI пакет Lighttpd (Lighttpd, FastCGI) и установить его вместе с PHP-CLI и некоторые PHP5 модули, такие как PHP-MySQL которой вам нужно, если Вы хотите использовать MySQL с вашего PHP скрипта:

  • yum install lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy

Затем откройте /etc/php.ini и добавьте строку cgi.fix_pathinfo = 1 в самом конце этого файла:

  • nano /etc/php.ini
[...]
cgi.fix_pathinfo = 1

Lighttpd FastCGI - пакет поставляется с исполняемым /usr/bin/spawn-fcgi которыqй мы можем использовать для запуска FastCGI процессов. Посмотрм на:

  • spawn-fcgi --help

... чтобы узнать больше об этом.

Для запуска демона PHP FastCGI прослушиваем порт 9000 на localhost и запустим в качестве пользователя и группы Nginx, выполним следующую команду:

  • /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid

Конечно, Вы не хотите вводить эту команду каждый раз вручную, при запуске системы, поэтому, чтобы система выполняла команду автоматически во время загрузки, откройте /etc/rc.local ...

  • nano /etc/rc.local
[...]
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid

Настройка Nginx

Конфигурации Nginx в /etc/nginx/nginx.conf который мы открываем сейчас:

  • nano /etc/nginx/nginx.conf

Конфигурация легко понять (Вы можете узнать больше об этом здесь: http://wiki.codemongers.com/NginxFullExample и здесь: http://wiki.codemongers.com/NginxFullExample2)

Первая (это не обязательно), вы можете увеличить количество рабочих процессов и установить keepalive_timeout до разумного значения:

[...]
worker_processes  5;
[...]
    keepalive_timeout  2;
[...]

Виртуальные хосты определяются server {} контейнерах. Давайте изменим умолчанию виртуальный хост следующим образом:

[...]
    server {
        listen       80;
        server_name  _;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /usr/share/nginx/html;
            index  index.php index.html index.htm;
        }

        error_page  404              /404.html;
        location = /404.html {
            root   /usr/share/nginx/html;
        }

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /usr/share/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
            deny  all;
        }
    }
[...]

server_name _; делает этот виртуальный хост по умолчанию всеохватывающий (конечно, Вы можете также указать имя хоста здесь, как www.example.com ).

В location / части, я добавил index.php на index строки. root /usr/share/nginx/html, означает, что корневая директория файлов /usr/share/nginx/html.

Важной частью для PHP это location ~ \.php$ {} строфы. Уберите это, чтобы включить его. Изменение корневой строки dosument корень веб-сайта (например, root /usr/share/nginx/html; ). Пожалуйста, убедитесь, что Вы изменили fastcgi_param строки SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; поскольку в противном случае PHP интерпретатор не найдет PHP скрипт, который Вы вызываете в Вашем браузере.

Теперь сохраните файл и перезагрузите Nginx:

  • /etc/init.d/nginx restart

Теперь создайте следующий файл PHP в корневой документ /usr/share/nginx/html ...

  • nano /usr/share/nginx/html/info.php
<?php
phpinfo();
?>

Теперь мы вызываем этот файл в браузере (например, http://192.168.2.222/info.php ):

Установка Nginx с PHP5 и MySQL в CentOS 5.6

Как видите, PHP5 работает, и он работает через FastCGI, как показано в Server API строке. Если Вы прокрутите дальше вниз, Вы увидите все модули, которые уже включены в PHP5, включая модуль MySQL:

Установка Nginx с PHP5 и MySQL в CentOS 5.6

На данный урок имеется виртуальный образ готового сервера, ознакомиться с которым подробней и скачать его можно на форуме Nginx с PHP5 и MySQL в CentOS 5.6 + скачать.


Обмениваться, хранить, передавать Ваши файлы стало просто как никогда.
yandex-disk
Читать подробнее: для чего Yandex-Диск проекту Mini-Server. Практика установки, настройки и использования сетевого хранилища на Ubuntu server LTS 12.04 в статье Резервное копирование сервера Ubuntu на Яндекс Диск.

>> Ubuntu 12.04 + Nginx Скачать сервер
>> Fedora 15 Скачать сервер
>> Простой Debian 6.0.6 Скачать сервер
>> CentOS 6.0 и
+ (5.6) другой
Скачать сервер
>> OpenSUSE 11.4
MAX
Скачать сервер

Вход на сайт

ВНИМАНИЕ!

Регистрация на сайте только по согласованию с администратором ресурса. Обращаться через форму обратной связи.