LINUX.ORG.RU

php-fpm


0

1

связка nginx и php-fpm не работает.
вот конфиг php-fpm: http://pastebin.archlinux.fr/426166
listen пробовал как юникс-сокет, так и ip:port.
nginx тупо выдает ошибку 404.
в логе nginx'а пусто, в логе php-fpm тоже (только говорит, что все хорошо и готов слушать команды).
сразу скажу, что nginx настроен правильно: другую fastcgi-демоняшку на том же порту или сокете кушает с удовольствием.

★★★★★

p.s. в вики арча написано:

Note: You may need to edit /etc/php/php-fpm.conf at first. More details on php-fpm can be found at the php-fpm website

но что именно менять там — так и не нашёл.

snoopcat ★★★★★ ()
Ответ на: комментарий от post-factum

[quote]сразу скажу, что nginx настроен правильно: другую fastcgi-демоняшку на том же порту или сокете кушает с удовольствием.[/quote]
ладно, шут с вами:
[code]
location ~ \.php$ {
root /home/neko/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/neko/www$fastcgi_script_name;
include fastcgi_params;
}
[code]
с этим же конфигом
[code]# /usr/bin/php-cgi -b 127.0.0.1:9000 &[/code]
работает «на ура». только медленно и без настроек.

snoopcat ★★★★★ ()
Ответ на: комментарий от snoopcat

holy shit!

сразу скажу, что nginx настроен правильно: другую fastcgi-демоняшку на том же порту или сокете кушает с удовольствием.

ладно, шут с вами:

location ~ \.php$ {
root /home/neko/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/neko/www$fastcgi_script_name;
include fastcgi_params;
}
с этим же конфигом
# /usr/bin/php-cgi -b 127.0.0.1:9000 &
работает «на ура». только медленно и без настроек.

snoopcat ★★★★★ ()
Ответ на: комментарий от burzumko

так.
php-fpm по-компактнее в памяти (всего в 20 раз, ну :D), по-гибче в настройках и по-быстрее будет.

snoopcat ★★★★★ ()

>nginx тупо выдает ошибку 404

Значит до PHP дело даже не доходит. Разбирайся с nginx.

в логе nginx'а пусто


Может, вообще не он у тебя вызывается? :D

сразу скажу, что nginx настроен правильно


Если даже в логах пусто - то неправильно.

KRoN73 ★★★★★ ()
Ответ на: комментарий от snoopcat

>ну блин, почему с другим php-враппером всё зашибись?

Не знаю. Но разбираться нужно с отсутствия записей в логах и 404-й ошибки.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

в логах таки появляется, я не туда смотрел.
пишет, что open() /home/neko/www/index.php: file not found.
хотя он там есть, инфа 100%.

snoopcat ★★★★★ ()

Вот куски [частично] работающего nginx с php-fpm под моим Gentoo: (частично, так как сейчас идёт неспешное фоновое тестовое переведение виртхостов с lighttpd+php-fcgi на nginx+php-fpm и пока не всё работает так, как я хочу)


user nginx httpd;
worker_processes 3;

error_log /var/log/nginx/error_log info;

events {
    worker_connections 1024;
    use epoll;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    log_format main
        '$remote_addr - $remote_user [$time_local] '
        '"$request" $status $bytes_sent '
        '"$http_referer" "$http_user_agent" '
        '"$gzip_ratio"';

    client_header_timeout 10m;
    client_body_timeout 10m;
    send_timeout 10m;

    connection_pool_size 256;
    client_header_buffer_size 1k;
    large_client_header_buffers 4 2k;
    request_pool_size 4k;

    gzip on;
    gzip_min_length 1100;
    gzip_buffers 4 8k;
    gzip_types text/plain;

    output_buffers 1 32k;
    postpone_output 1460;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    keepalive_timeout 75 20;

    ignore_invalid_headers on;

    index index.html;

    server {
        # config from http://pelletiermaxime.info/2009/03/14/Nginx-Shared-Hosts.html

        if ($host ~* www\.(.*)) {
            set $host_without_www $1;
            rewrite ^(.*)$ http://$host_without_www$1/ permanent;
        }
        
        server_name_in_redirect off; #or folders like /awstats will redirect to _

        listen 8443;

        server_name _;

        if ($host ~* "^(.+)\.(\w+\.\w+)$") {
            set $main_host $2;
            set $sub_host $1;
        }
        
        if ($host ~* "^(\w+\.\w+)$") {
            set $main_host $host;
            set $sub_host "www";
        }
        
        access_log      /var/log/nginx/$main_host/$sub_host-access.log main;
        error_log      /var/log/nginx/$main_host/$sub_host-errors.log info;

        root /var/www/$host/htdocs;

        location / {
            index index.php index.xml index.html index.htm;
        }
        
        location ~ \.php$ {
            fastcgi_pass  unix:/var/www/php-fpm-default.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /var/www/$host/htdocs$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
        }
    }

    include /etc/nginx/vhosts/*.conf;
}

KRoN73 ★★★★★ ()

Вот куски [частично] работающего nginx с php-fpm под моим Gentoo: (частично, так как сейчас идёт неспешное фоновое тестовое переведение виртхостов с lighttpd+php-fcgi на nginx+php-fpm и пока не всё работает так, как я хочу)

user nginx httpd;
worker_processes 3;

error_log /var/log/nginx/error_log info;

events {
    worker_connections 1024;
    use epoll;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    log_format main
        '$remote_addr - $remote_user [$time_local] '
        '"$request" $status $bytes_sent '
        '"$http_referer" "$http_user_agent" '
        '"$gzip_ratio"';

    client_header_timeout 10m;
    client_body_timeout 10m;
    send_timeout 10m;

    connection_pool_size 256;
    client_header_buffer_size 1k;
    large_client_header_buffers 4 2k;
    request_pool_size 4k;

    gzip on;
    gzip_min_length 1100;
    gzip_buffers 4 8k;
    gzip_types text/plain;

    output_buffers 1 32k;
    postpone_output 1460;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    keepalive_timeout 75 20;

    ignore_invalid_headers on;

    index index.html;

    server {
        # config from http://pelletiermaxime.info/2009/03/14/Nginx-Shared-Hosts.html

        if ($host ~* www\.(.*)) {
            set $host_without_www $1;
            rewrite ^(.*)$ http://$host_without_www$1/ permanent;
        }
        
        server_name_in_redirect off; #or folders like /awstats will redirect to _

        listen 8443;

        server_name _;

        if ($host ~* "^(.+)\.(\w+\.\w+)$") {
            set $main_host $2;
            set $sub_host $1;
        }
        
        if ($host ~* "^(\w+\.\w+)$") {
            set $main_host $host;
            set $sub_host "www";
        }
        
        access_log      /var/log/nginx/$main_host/$sub_host-access.log main;
        error_log      /var/log/nginx/$main_host/$sub_host-errors.log info;

        root /var/www/$host/htdocs;

        location / {
            index index.php index.xml index.html index.htm;
        }
        
        location ~ \.php$ {
            fastcgi_pass  unix:/var/www/php-fpm-default.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /var/www/$host/htdocs$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
        }
    }

    include /etc/nginx/vhosts/*.conf;
}

KRoN73 ★★★★★ ()
Ответ на: комментарий от snoopcat

Права доступа?

...

Что-то мне это очень-очень напоминает. Где-то я на это наступал. Как-то просто, но не очевидно решилось.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

бл, точно!
в конфиге php-fpm

user http;

group http;


поменял на

user neko;

group neko;


и всё заработало! спасибо \=

snoopcat ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.