Переезжаем на php5+fpm

И так, раз выдались выходные, можно поработать для себя и для души, проблема с высокой нагрузкой на мой сервер висит давно надо мною.

Сегодня решил один из своих сайтов перевести со связки nginx – Apache2+mod_php5 на nginx+php5-fpm в надежде, что появятся свободные ресурсы, которые сервер сможет тратить на mysql.

Введя в гугл запрос “ubuntu nginx php-fpm” я начал понимать, что предложенные варианты мне не подходят, т.к. я хотел перевести всего один из пару десятков сайтов, а все остальные продолжали работать на apache2.

Второе условие, что сайт у меня на wordpress и он должен заработать с прежним функционалом.

Я уже ранее писал, что я перешёл на PHP5.3 и вот ещё боялся ставить php-fpm версий меньше чем 5.3 т.к. не знал, а всё ли заработает, но сильно не задумываясь я решил проверить есть ли php-fpm в репозиториях? ну и разумеет оказался, как раз в тех, откуда я ставил PHP 5.3

и так поехали

[cc lang=”bash”]apt-get install php-fpm[/cc]

Он успешно устанавливается, связка nginx+apache2 у меня была настроена по вот этим статьям
Раз – компилируем сам nginx и два связываем всё во едино (пропуская установку из пакета)

Теперь я хочу один из virtualhost’ов заменить.
Делаю резервную копию старого конфига и начинаю собирать новый.
Времени я потратил много.
Основная беда была в том, что повсеместно используется mod_rewrite для Apache, и теперь надо заставить работать правила но уже на nginx. Снова гугл и снова по крупицам воссоздал конфиг, который работает для wordpress
и так привожу конфиг
/etc/nginx/sites-available/mysite

[cc lang=”bash”]
server {
listen 80;
server_name www.mysite.ru mysite.ru;

access_log /var/log/nginx/mysite/access1.log;
error_log /var/log/nginx/mysite/error1.log error;

index index.php;
root /var/www/mysite;
location / {
try_files $uri $uri/ @wordpress;
}

location @wordpress {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_NAME /index.php;
}

location ~ \.php$ {
try_files $uri @wordpress;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

}
[/cc]

Сохраняем, проверяем nginx на ошибки синтаксиса.
[cc lang=”bash”]nginx -t[/cc]
Если скажет, что ошибок нет, идём дальше – запускаем php5-fpm
[cc lang=”bash”] /etc/init.d/php5-fpm start[/cc]
Теперь можно перезапустить nginx и пробовать зайти на свой сайт.
я столкнулся с ошибками, пол шаблона wordpress была свёрстана с вот такими тегами
Когда должно быть
Поправил нужные места, потом пошёл отредактировал новый php.ini который находится вот тут
[cc lang=”bash”]/etc/php5/fpm[/cc]

Собственно вся история, легче или сложнее жить я пока не заметил надо наблюдать, смотреть на графики и т.п.
итог wordpress заработал на php-fpm ^)

Ах чуть не забыл есть ещё плагин для wordpress, который дружит его с nginx
_http://wordpress.org/extend/plugins/nginx-compatibility/
я им воспользовался, но не знаю нужен он был или нет

  1. Я правильно понял, что если с вязке стоит APACHE2+NGINX+PHP5 то не нужно устанавливать PHP5-FPM?

  2. Ага, либо то либо то

  3. Цитата: Поправил нужные места, потом пошёл отредактировал новый php.ini который находится вот тут

    А какие именно – не указано

  4. “я столкнулся с ошибками, пол шаблона wordpress была свёрстана с вот такими тегами
    Когда должно быть”

    Дополните епт. Какими тегами?

  5. там видать картинки были, которых с 10го года не найду

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>