Метка: apache

  • apache выдаёт ошибку

    [crit] (28)No space left on device: mod_rewrite: could not create rewrite_log_lockCode language: Bash (bash)

    На что помогла уличная консольная магия

    ipcs -s | grep www | perl -e 'while (<STDIN>) { @a=split(/\s+/);
    print `ipcrm sem $a[1]`}'Code language: Bash (bash)

    Где www это имя пользователя от которого работает Apache
    У меня это www-data

  • Переезжаем на 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

    и так поехали

    apt-get install php-fpmCode language: Bash (bash)

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

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

    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;
    }
    
    }Code language: Bash (bash)

    Сохраняем, проверяем nginx на ошибки синтаксиса.

    nginx -tCode language: Bash (bash)

    Если скажет, что ошибок нет, идём дальше — запускаем php5-fpm

     /etc/init.d/php5-fpm startCode language: Bash (bash)

    Теперь можно перезапустить nginx и пробовать зайти на свой сайт.
    я столкнулся с ошибками, пол шаблона wordpress была свёрстана с вот такими тегами
    Когда должно быть
    Поправил нужные места, потом пошёл отредактировал новый php.ini который находится вот тут

    /etc/php5/fpmCode language: Bash (bash)

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

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