我遇到了一个非常困难的情况,最新的php5-fpm(来自debphp)和Ubtuntu 12.04LTS上的nginx 1.4.3。
总之,我无法启动php5-fp ,我在syslog中一直收到这个错误:
kernel: [1213013.564441] init: php5-fpm main process (7357) terminated with status 78 kernel: [1213013.564496] init: php5-fpm main process ended, respawning ..... (repeated several times) kernel: [1213014.143911] init: php5-fpm respawning too fast, stopped
我的/var/log/php5-fpm.log根本没有被填充。 在/run (或/var/run )中没有php5-fpm.sock和php5-fpm.pid 。
我的/etc/php5/fpm/php-fpm.conf如下:(这个文件似乎不是现在加载,因为我试图把一些伪造的信息,但没有造成任何改变)
;;;;;;;;;;;;;;;;;;;;; ; FPM Configuration ; ;;;;;;;;;;;;;;;;;;;;; include=/etc/php5/fpm/*.conf ;;;;;;;;;;;;;;;;;; ; Global Options ; ;;;;;;;;;;;;;;;;;; [global] ; Pid file ; Note: the default prefix is /var ; Default Value: none pid = /run/php5-fpm.pid catch_workers_output = yes ; Log level ; Possible Values: alert, error, warning, notice, debug ; Default Value: notice log_level = debug ; To configure the pools it is recommended to have one .conf file per ; pool in the following directory: include=/etc/php5/fpm/pool.d/*.conf include=/var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf
许可检查:
ls -l /etc/php5/fpm/php-fpm.conf -rwxrwxrwx 1 root root 4641 Nov 6 01:37 /etc/php5/fpm/php-fpm.conf
我的include=/var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf (这个文件似乎不再被加载)
[www.mysite.com] listen = /run/php5-fpm.sock # listen = 127.0.0.1:9000 listen.backlog = -1 listen.allowed_clients = 127.0.0.1 listen.owner = www.mysite.com listen.group = mysite.com listen.mode = 0666 user = www.mysite.com group = mysite.com pm = dynamic pm.max_requests = 0 pm.max_children = 15 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 pm.status_path = /php_pool_wwww.mysite.com_status ping.path = /www.mysite.com_ping ping.response = www.mysite.com_pong request_terminate_timeout = 30 request_slowlog_timeout = 20 slowlog = /var/www/vhosts/mysite.com/w/w/w/www/logs/php-slow.log rlimit_files = 131072 rlimit_core = unlimited chroot = /var/www/vhosts/mysite.com/w/w/w/www/ ; Chdir to this directory at the start. This value must be an absolute path. ; Default Value: current directory or / when chroot ; chdir = /htdocs catch_workers_output = yes env[HOSTNAME] = $HOSTNAME env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp security.limit_extension = .php ; php_value/php_flag - you can set classic ini defines which can ; be overwritten from PHP call 'ini_set'. ; php_admin_value/php_admin_flag - these directives won't be overwritten by ; PHP call 'ini_set' php_flag[display_errors] = on php_admin_value[error_log] = /logs/php_err.log php_admin_flag[log_errors] = on php_admin_value[memory_limit] = 100M php_value[max_execution_time] = 300
许可检查:
ls -l /var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf -rwxr-xr-x 1 www.mysite.com mysite.com 1830 Nov 6 01:05 var/www/vhosts/mysite.com/w/w/w/www/config/fpm-pool.conf
用户/组权限检查:
groups www.mysite.com www.mysite.com : www.mysite.com www-data mysite.com
我不认为这与nginx有什么关系,因为php5-fpm本身现在无论如何都无法启动,但为了让所有的信息:nginx也被设置为使用相同的用户/组
新贵观看的过程已经结束,但泳池工作人员仍在奔跑。 要修复它,运行:
sudo killall php-fpm sudo start php5-fpm
php5-fpm作业将会以状态78重复退出,直到所有旧的工作线程都死掉。 请注意,服务器通常在此状态下正常工作,尽pipe新贵并不pipe理服务。 当它最终死亡,但它不会自动重生,所以它应尽快修复。 简单的重新启动也将解决问题,但会导致停机。
我最近遇到了同样的问题。 事实certificate,另一个进程已经在同一个端口上监听。 要发现哪个进程正在运行,我运行了以下命令:
sudo netstat -nltp
原来hhvm已经在9000端口上了。
tcp6 0 0 :::9000 :::* LISTEN 17765/hhvm
一旦我停止hhvm守护进程,php5-fpm成功启动。