ГлавнаяРегистрацияВходВ закладки

Главная » Статьи » CentOS » Как настроить CentOS
CentOS Nginx PHP FastCGI быстрый и легкий веб-сервер
CentOS + Nginx + PHP FastCGI = быстрый и легкий веб-сервер

Я собираюсь с тем, ,что эта связка, я буду устанавливать операционную систему для запуска на CentOS 5.3 и, кроме того, это руководство для операционной системы и Fedora \ RedHat. Это связка, мне хотелось бы, ,чтобы установить на свой веб-сервер предварительно наигравшись с Lighttpd. Кстати, пока у меня есть несколько Nginx + FCGI как более Lighttpd + FCGI.

В этом руководстве я не буду описывать подробные сведения о конфигурации Nginx и MySQL.

Установка:

[-hide-]1. Подключаем необходимый нам репозиторий Centalt (там находится самый свежий Nginx)

# rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm

или для 64 битной ОС:

# rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm

2. Устанавливаем Nginx:

# yum install nginx

Конфигурационный файлик: /etc/nginx/nginx.conf
Конфигурационный файлик виртуальных хостов: /etc/nginx/conf.d/virtual.conf
Рутовая папка: /usr/share/nginx/html

# chkconfig –level 35 nginx on

3. Установи MySQL

# yum install mysql mysql-server

# chkconfig –level 35 mysqld on

3. Устанавливаем PHP и его модули:

# yum install php php-pear php-common php-gd php-devel php-mbstring php-pear-Mail php-cli php-imap php-snmp php-pdo php-xml php-ldap php-pear-Net-SMTP php-mysql

4. Устанавливаем spawn-fcgi. Почему именно spawn-fcgi, а не php-fpm? Во первых с ним не надо патчить php, а во вторых бытует мнение ,что он быстрее php-fpm.

# yum install spawn-fcgi

5. Создадим в init.d стартовый скрипт модуля fcgi

# vi /etc/init.d/php_cgi

Добавим следующии строчки:

#!/bin/sh

. /etc/rc.d/init.d/functions

. /etc/sysconfig/network

[ "$NETWORKING" = "no" ] && exit 0

spawnfcgi="/usr/bin/spawn-fcgi"
php_cgi="/usr/bin/php-cgi"
prog=$(basename $php_cgi)
server_ip=127.0.0.1
server_port=9000
server_user=nginx
server_group=nginx
server_childs=5
pidfile="/var/run/php_cgi.pid"

[ -f /etc/sysconfig/phpfastcgi ] && . /etc/sysconfig/phpfastcgi

start() {
[ -x $php_cgi ] || exit 1
[ -x $spawnfcgi ] || exit 2
echo -n $"Starting $prog: "
daemon $spawnfcgi -a ${server_ip} -p ${server_port} -u ${server_user} -g ${server_group} -P ${pidfile} -C ${server_childs} -f ${php_cgi}
retval=$?
echo
return $retval
}

stop() {
echo -n $"Stopping $prog: "
killproc -p ${pidfile} $prog -QUIT
retval=$?
echo
[ -f ${pidfile} ] && /bin/rm -f ${pidfile}
return $retval
}

restart(){
stop
sleep 2
start
}

rh_status(){
status -p ${pidfile} $prog
}

case "$1" in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
rh_status;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 3
esac

6. Добавим нашему скрипту право на запуск и добавим в автозагрузку

# chmod a+x /etc/init.d/php_cgi

# chkconfig –level 35 php_cgi on

7. Стартуем и проверяем работу fcgi

# service php_cgi start

Проверим работоспособность

# netstat -tlnp | grep :9000

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 13772/php-fcgi

8. Теперь отредактируем конфигурационный файлик Nginx

# vi /etc/nginx/nginx.conf

Опишим наш домен www.corp.ru

server {

listen 80;
server_name corp.ru www.corp.ru;

location / {

#access_log logs/host.access.log main;

root /usr/share/nginx/html;
index index.php;
}

location ~* ^.+\.(bmp|gif|jpg|jpeg|ico|png|swf|tiff|css|js|xml)$ {

root /usr/share/nginx/html;
expires 7d;

Находим и расскоментируем следующии строчки

location ~ \.php$ {
root 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;
}

9. Стартуем Nginx

# service nginx start

10. Проверим работу PHP

Разместим php файлик в root директории Nginx

# vi /usr/share/nginx/html/info.php

С таким содержанием:

phpinfo();
?>

11. Открываем в любимом браузере адрес нашего веб-сайта

http://www.corp.ru/info.php

и должны увидить информационную таблицу PHP.

На этом все.[-hide-]
Просмотров: 5270
Дата: 2011-07-16 00:28:11
Комментариев: 0
Источник: