MAJ Jessie : php-fpm ne fonctionne plus

Bonjour,

Je viens de faire la mise à jour de mon serveur de wheezy à jessie et je n’arrive plus à faire fonctionner php-fpm avec nginx.
Les deux services (nginx et php-fpm) sont bien démarrés, mais rien ne s’affiche dans mon navigateur (j’ai une réponse 200 avec un payload http vide).

J’ai essayé en arrêtant php-fpm et là j’obtiens une erreur, donc je présume que le problème viens de php-fpm, mais je n’ai aucune erreur dans ses logs. J’ai passé son niveau de log de notice à “debug” et j’ai quelques messages de log en plus, mais rien de très probant…

J’ai un peu épuisé mes options, le lien entre nginx et php-fpm se fait via un socket unix (c’était déjà le cas avant la mise à jour), je vais essayer de passer à une socket tcp pour pouvoir sniffer la communication entre php et nginx avec tcpdump, mais c’est vraiment en déespoire de cause.

Vous auriez une idée d’où ça peut venir ? J’ajoute en dessous tous les fichiers de conf et les logs qui me semblent pertinents.

La configuration php de mon nginx (c’est un fichier que j’inclue dans les fichiers de description des sites.

location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
                
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}

Le contenus du fichier fastcgi_params :

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

# grep -v '^;' /etc/php5/fpm/php-fpm.conf | grep '..' # pour virer les lignes inutiles (commentaires et lignes vides) [global] pid = /run/php5-fpm.pid error_log = /var/log/php5-fpm.log syslog.ident = php-fpm log_level = debug emergency_restart_threshold = 10 emergency_restart_interval = 1m process_control_timeout = 10 include=/etc/php5/fpm/pool.d/*.conf
Dans [mono]/etc/php5/fpm/pool.d/[/mono] je n’ai que le fichier [mono][code]

grep -v ‘^;’ /etc/php5/fpm/pool.d/www.conf | grep ‘…’

[www]
user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M
[/code]

Enfin le fichier [mono]php.init[/mono]

# grep -v '^;' /etc/php5/fpm/php.ini | grep '..'
[PHP]
engine = On
short_open_tag = Off
asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 17
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
disable_classes =
zend.enable_gc = On
expose_php = Off
max_execution_time = 30
max_input_time = 60
memory_limit = 128M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = On
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
post_max_size = 8M
auto_prepend_file =
auto_append_file =
default_mimetype = "text/html"
default_charset = "UTF-8"
doc_root =
user_dir =
enable_dl = Off
cgi.fix_pathinfo=1
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[CLI Server]
cli_server.color = On
[Date]
[filter]
[iconv]
[intl]
[sqlite]
[sqlite3]
[Pcre]
[Pdo]
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
[Phar]
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"
[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
[OCI8]
[PostgreSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[browscap]
[Session]
session.save_handler = files
session.use_strict_mode = 0
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.referer_check =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatibility_mode = Off
mssql.secure_connection = Off
[Assertion]
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[mcrypt]
[dba]
[opcache]
[curl]
[openssl]

Enfin le fichier de log de php-fpm et celui de l’un de mes sites :

[08-May-2015 13:35:46] NOTICE: Finishing ...
[08-May-2015 13:35:46] NOTICE: exiting, bye-bye!
[08-May-2015 13:58:12] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful

[08-May-2015 13:58:12] NOTICE: fpm is running, pid 24017
[08-May-2015 13:58:12] NOTICE: ready to handle connections
[08-May-2015 13:58:12] NOTICE: systemd monitor interval set to 10000ms
[08-May-2015 13:58:33] NOTICE: Finishing ...
[08-May-2015 13:58:33] NOTICE: exiting, bye-bye!
[08-May-2015 13:58:33] NOTICE: fpm is running, pid 26013
[08-May-2015 13:58:33] NOTICE: ready to handle connections
[08-May-2015 13:58:33] NOTICE: systemd monitor interval set to 10000ms
[08-May-2015 13:58:34] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful
127.0.0.1 - - [09/May/2015:14:35:41 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:14:36:35 +0200] "GET /doku.dlksjlk HTTP/1.1" 404 142 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:14:37:00 +0200] "GET /doku.php HTTP/1.1" 502 172 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:14:40:28 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:17:54:00 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:17:54:02 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:17:56:23 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:17:56:24 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:17:56:24 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:17:56:24 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:17:56:24 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:17:56:25 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:18:08:37 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:22:21:01 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"
127.0.0.1 - - [09/May/2015:22:21:03 +0200] "GET /doku.php HTTP/1.1" 200 31 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0 Iceweasel/36.0.4"

Mon dieu… Je viens de comprendre. La mise à jour à détruit la totalité de mon /opt là où tous mes sites étaient installés…
Je vais voir si testdisk/photorec peuvent m’aider (non je n’ai pas plus de backup que ça), mais je suis assez choqué que ça se produise…

Salut,

Si tu as cinq minutes, tantôt … Chroot NginX et PHP5-FPM, en passant. :033

Mazette, c’est [strike]incroyable[/strike]. Tu n’es certainement pas le dernier à qui cela arrivera, j’en ai bien peur …

Oula non je me suis trompé… (je passe plus des masses de temps sur ce serveur).
C’est dans [mono]/srv[/mono] que j’ai mes fichiers et ils sont toujours là.

Donc je ne sais toujours pas pourquoi mon serveur ne marche plus.

Pour le chroot, tu parle de faire un chroot qui contient à la fois php-fpm et nginx ?