CentOS Nginx PHP FastCGI быстрый и легкий веб-сервер
Автор: admin Раздел: Как настроить CentOS
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-] |