Блог Синявского
  • Разделы
  • Метки
  • Все статьи

Переезд phpfpm сайта c nginx на lighttpd

1

Я не очень люблю PHP, к тому же есть миллион статей как прикрутить phpfpm к lighttpd. Но так уж получилось, что волею судеб мне пришлось настраивать сервер со старым пиэйчпи сайтом. Просмотрел кучу блогов, рекомендаций, статей, и в итоге у меня получился более ли менее рабочий вариант.

Подготовка php-fpm

На всякий случай опишу процесс настройки php-fpm.

Установка php-fpm:

$ sudo apt-get install php5-fpm -y

Раскомментировать #cgi.fix_pathinfo=1:

$ sudo nano /etc/php5/fpm/php.ini

cgi.fix_pathinfo=1

Старые настройки nginx

phpfpm общается с lighttpd через unix сокет /var/run/php5-fpm.sock, файл который должен быть открыт на запись и на чтение одновременно. Необходимо проверить чтобы были права для пользователей, под которыми работают frontend и backend

server {
        listen       80;
        server_name  www.somedomain.com;

        access_log  /web/<project_name>/logs/access.log;
        error_log /web/<project_name>/logs/error.log info;

        root /web/<project_name>/project;

        index index.php;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php$ {
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_script_name;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/www/nginx-dist;
        }
}

Настройки lighttpd

server.modules += ("mod_fastcgi", "mod_accesslog")

$SERVER["socket"] == ":80" {
    $HTTP["host"] == "www.somedomain.com" {
        accesslog.filename = "/web/<project_name>/logs/access.log"

        url.redirect = (
           "/index.(htm|html|php)$" => "/"
        )
        url.redirect-code = 301

        server.document-root = "/web/<project_name>/project/"
        index-file.names += ( "index.php" )

        fastcgi.server = (".php" =>
            ((
                "socket" => "/var/run/php5-fpm.sock",
                "bin-copy-environment" => ( "HOSTNAME", "PATH", "TMP", "TMPDIR", "TEMP", "OSTYPE", "MACHTYPE", "MALLOC_CHECK_" ),
                "broken-scriptfilename" => "enable",
                "fix-root-scriptname" => "enable"
            ))
        )

        alias.url = (
            "/static/" => "/web/<project_name>/project/static/",
            "/favicon.ico" => "/web/<project_name>/project/favicon.ico"
        )
    }
}

Надейюсь данная заметка окажется полезной.



  • ← сюда
  • туда →

comments powered by Disqus

Опубликовано

02.10.2014

Обновление

05.05.2022

Категории

lighttpd

Тэги

  • lighttpd 7
  • php 1

Всегда на связи

  • Блог Синявского - Ничего не переносить на завтра, это тоже проблема с прокастинацией?
  • © Алексей Синявский, по лицензии CC BY-SA если не указано иное.
  • С использованием Pelican. Тема: Elegant от Talha Mansoor