Поднимаем сервер на nginx + php-fastcgi + mysql

776px-Nginx-battleship.svg

Давно хотел написать подробную инструкцию по поднятию условно-боевого сервера на nginx без Apache. Почему условно-боевого? Да все просто – доводить это все до боевого состояния надо не один день, т.к. требуется и тюнинг MySQL, и доустановка необходимых модулей PHP, и его же тонкая конфигурация. В общем это основа, а дальше сами… 😉

Предположим, что у нас уже имеется сервер с Ubuntu Server на борту. С чего нам необходимо начать?

Конечно же с обновления:

$ sudo apt-get update && sudo apt-get upgrade

NginX

Сборка и установка NginX

Для комфорта и сборки ставим следующие пакеты:

$ sudo apt-get install build-essential mc mysql-server php5-cgi php5-gd php5-mysql imagemagick php5-mcrypt libpcre3-dev libssl-dev libssl-dev libgd2-xpm-dev libgcrypt11-dev libperl-dev

Теперь качаем nginx:

$ cd /tmp && wget https://sysoev.ru/nginx/nginx-1.0.3.tar.gz && tar xvfz ./nginx-1.0.3.tar.gz && cd ./nginx-1.0.3

Собираем и устанавливаем nginx:

$ ./configure --prefix=/usr/local/nginx --with-pcre --with-ipv6 --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_perl_module --with-http_image_filter_module --with-http_stub_status_module

$ make && sudo make install

Для любителей всего в одном месте создадим ссылку в /etc:

$ sudo ln -s /usr/local/nginx/conf /etc/nginx

Запуск NginX

В /etc/init.d кладем этот стартовый скрипт nginx и выставляем права на запуск:

$ sudo chmod 755 /ec/init.d/nginx

Устанавливаем запуск nginx при старте:

$ sudo update-rc.d nginx defaults

На данном этапе у нас nginx готов к старту при загрузке и работе. Осталось только настроить ротацию логов.

Ротация логов NginX

Для ротации логов нам понадобится всего один файлик с конфигурацией logrotate.d.

$ sudo wget https://silverghost.org.ua/uploads/linux/nginx_logrotate -O /etc/logrotate.d/nginx

Теперь логин будут сворачиваться ежедневно и не заполнять собой весь винт.

С установкой nginx закончили. Кому нужно, тот внесет свои правки в конфигурацию NginX. О своих настройках NginX я расскажу в отдельной статье, т.к. ковыряться в них можно ооочень долго. 😉

PHP-Fastcgi

Установка и настройка

Основа PHP-CGI у нас уже установлена и нам нужно это дело только демонизировать и корректно настроить. Демоном мы поставим spawn-fcgi:

$ sudo apt-get install spawn-fcgi

Теперь настроим запуск демона php5-cgi. Я уже написал стартовый скрипт для его запуска. Так что Вам необходимо только выполнить команду:

$ sudo wget https://silverghost.org.ua/uploads/linux/php-fastcgi -O /etc/init.d/php-fastcgi && chmod 755 /etc/init.d/php-fastcgi

Добавляем его в автозапуск:

$ sudo update-rc.d php-fastcgi defaults

Прямо в этом скрипте Вы можете подправить необходимые параметры. Я привык использовать соккеты, поэтому по умолчанию все соединения должны быть настроены на /tmp/phpfcgi.socket. Но предусмотрено и сетевое соединение. Если Вы привыкли к нему, то просто измените USE_SOCKET на 0.

Стартуем:

$ sudo /etc/init.d/nginx start
$ sudo /etc/init.d/php-fastcgi start

Собственно говоря все. :)


Вам нужна регистрация торговой марки в Украине?
Любая помощь по представлению в бти Киева.

Вы можете оставить комментарий, или поставить трэкбек со своего сайта.

8 комментариев(я)

(Обязательно)
(Обязательно, не публикуется)

Админ не заснул, он перегружается!
beget