php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #52507 5.3.3 php-fpm start failed
Submitted: 2010-07-31 19:17 UTC Modified: 2010-07-31 20:20 UTC
From: lys0212 at qq dot com Assigned:
Status: Not a bug Package: *General Issues
PHP Version: 5.3.3 OS: linux 5.5
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: lys0212 at qq dot com
New email:
PHP Version: OS:

 

 [2010-07-31 19:17 UTC] lys0212 at qq dot com
Description:
------------
[root@localhost conf]# /web/software/php/bin/php-fpm
Aug 01 01:09:30.803610 [ERROR] [/web/software/php/etc/php-fpm.conf:1] unknown entry '<?xml version'
Aug 01 01:09:30.803669 [ERROR] failed to load configuration file '/web/software/php/etc/php-fpm.conf'
=============================================
the follows show how i install php
tar zxvf php-5.3.3.tar.gz 
cd  php-5.3.3
CC=gcc CHOST="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O6 -pipe" CXXFLAGS="${CFLAGS}"  ./configure --prefix=/web/software/php 
--with-mysql=mysqlnd --with-mysqli=mysqlnd 
--with-pdo-mysql=mysqlnd   
--with-jpeg-dir=/web/software/jpeg6 
--with-gd=/web/software/gd2 
--with-png-dir=/web/software/libpng2 
--with-freetype-dir=/web/software/freetype2 
--with-curl=/web/software/curl 
--with-zlib-dir=/web/software/zlib 
--disable-ipv6 --enable-sockets --disable-debug 
--with-mcrypt=/web/software/libmcrypt 
--enable-fpm 
--with-libevent-dir=/web/software/libevent-1.4.13/ 
--with-config-file-path=/web/software/php/lib 
--enable-xml --disable-rpath 
--enable-safe-mode --enable-bcmath --enable-shmop 
--enable-sysvsem --enable-inline-optimization --with-curl 
--with-curlwrappers --enable-mbregex 
--enable-mbstring  
--enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl 
--with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --without-pear 

make -j8 && make install || sleep 5 
\cp sapi/fpm/php-fpm /web/software/php/bin/php-fpm 
\cp /web/software/php/etc/php-fpm.conf.default /web/software/php/etc/php-fpm.conf
cd ..
\cp /web/software/php/bin/php /usr/bin/php

========================
php-fpm.conf is good for php5.3.2
cat php-fpm.conf

<?xml version="1.0" ?>
<configuration>

	All relative paths in this config are relative to php's install prefix

	<section name="global_options">

		Pid file
		<value name="pid_file">/dev/shm/php-fpm.pid</value>

		Error log file
		<value name="error_log">/var/log/php-fpm.log</value>

		Log level
		<value name="log_level">notice</value>

		When this amount of php processes exited with SIGSEGV or SIGBUS ...
		<value name="emergency_restart_threshold">10</value>

		... in a less than this interval of time, a graceful restart will be initiated.
		Useful to work around accidental curruptions in accelerator's shared memory.
		<value name="emergency_restart_interval">1m</value>

		Time limit on waiting child's reaction on signals from master
		<value name="process_control_timeout">5s</value>

		Set to 'no' to debug fpm
		<value name="daemonize">yes</value>

	</section>

	<workers>

		<section name="pool">

			Name of pool. Used in logs and stats.
			<value name="name">default</value>

			Address to accept fastcgi requests on.
			Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'
			<value name="listen_address">127.0.0.1:9000</value>

			<value name="listen_options">

				Set listen(2) backlog
				<value name="backlog">-1</value>

				Set permissions for unix socket, if one used.
				In Linux read/write permissions must be set in order to allow connections from web server.
				Many BSD-derrived systems allow connections regardless of permissions.
				<value name="owner">jobui</value>
				<value name="group">jobui</value>
				<value name="mode">0666</value>
			</value>

			Additional php.ini defines, specific to this pool of workers.
			These settings overwrite the values previously defined in the php.ini.
			<value name="php_defines">
				<!-- <value name="sendmail_path">/usr/sbin/sendmail -t -i</value> -->
				<value name="display_errors">1</value> 
				<value name="error_log">/web/php/tmp/php.err</value> 
        		<value name="log_errors">true</value>
			</value>

			Unix user of processes
			<value name="user">jobui</value>

			Unix group of processes
			<value name="group">jobui</value>

			Process manager settings
			<value name="pm">

				Sets style of controling worker process count.
				Valid values are 'static' and 'apache-like'
				<value name="style">static</value>

				Sets the limit on the number of simultaneous requests that will be served.
				Equivalent to Apache MaxClients directive.
				Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
				Used with any pm_style.
				<value name="max_children">128</value>

				Settings group for 'apache-like' pm style
				<value name="apache_like">

					Sets the number of server processes created on startup.
					Used only when 'apache-like' pm_style is selected
					<value name="StartServers">20</value>

					Sets the desired minimum number of idle server processes.
					Used only when 'apache-like' pm_style is selected
					<value name="MinSpareServers">15</value>

					Sets the desired maximum number of idle server processes.
					Used only when 'apache-like' pm_style is selected
					<value name="MaxSpareServers">30</value>

				</value>

			</value>

			The timeout (in seconds) for serving a single request after which the worker process will be terminated
			Should be used when 'max_execution_time' ini option does not stop script execution for some reason
			'0s' means 'off'
			<value name="request_terminate_timeout">450s</value>

			The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file
			'0s' means 'off'
			<value name="request_slowlog_timeout">0s</value>

			The log file for slow requests
			<value name="slowlog">/var/log/php-fpm.log.slow</value>

			Set open file desc rlimit
			<value name="rlimit_files">65536</value>

			Set max core size rlimit
			<value name="rlimit_core">0</value>

			Chroot to this directory at the start, absolute path
			<value name="chroot"></value>

			Chdir to this directory at the start, absolute path
			<value name="chdir"></value>

			Redirect workers' stdout and stderr into main error log.
			If not set, they will be redirected to /dev/null, according to FastCGI specs
			<value name="catch_workers_output">yes</value>

			How much requests each process should execute before respawn.
			Useful to work around memory leaks in 3rd party libraries.
			For endless request processing please specify 0
			Equivalent to PHP_FCGI_MAX_REQUESTS
			<value name="max_requests">500</value>

			Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.
			Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)
			Makes sense only with AF_INET listening socket.
			<value name="allowed_clients">127.0.0.1</value>

			Pass environment variables like LD_LIBRARY_PATH
			All $VARIABLEs are taken from current environment
			<value name="environment">
				<value name="HOSTNAME">$HOSTNAME</value>
				<value name="PATH">/usr/local/bin:/usr/bin:/bin</value>
				<value name="TMP">/tmp</value>
				<value name="TMPDIR">/tmp</value>
				<value name="TEMP">/tmp</value>
				<value name="OSTYPE">$OSTYPE</value>
				<value name="MACHTYPE">$MACHTYPE</value>
				<value name="MALLOC_CHECK_">2</value>
			</value>

		</section>

	</workers>

</configuration>



Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2010-07-31 19:22 UTC] rasmus@php.net
-Status: Open +Status: Bogus
 [2010-07-31 19:22 UTC] rasmus@php.net
You are using the wrong configuration file format.  PHP's FPM implementation uses 
.ini format like the rest of PHP, not XML.  See 
http://www.php.net/manual/es/install.fpm.configuration.php
And also the sample bundled php-fpm.conf file
 [2010-07-31 19:27 UTC] lys0212 at qq dot com
thank you!
the php-fpm.conf include xml context can use at php5.3.2,but when i update to php5.3.3 ,php-fpm start failed .you means that the php5.3.3 don't support xml format?
 [2010-07-31 19:28 UTC] rasmus@php.net
There was no FPM sapi in PHP-5.3.2 so I don't know what code you are running, but 
it didn't come from us.
 [2010-07-31 19:33 UTC] lys0212 at qq dot com
the follows show how i install 5.3.2,it can use php-fpm.conf to start:
it support xml format ,5.3.3 don't support?
rm -Rf php-5.3.2  fpm.patch   php-fpm-0.6-5.3.1;
tar xvf php-fpm-0.6~5.3.1.tar.gz;
./php-fpm-0.6-5.3.1/generate-fpm-patch ;
#在当前目录下产生fpm.patch文件.
tar xvf php-5.3.2.tar.gz;
cd php-5.3.2;
patch -p1 < ../fpm.patch ;
./buildconf  --force;
mkdir fpm-build 
cd fpm-build
#CC=gcc CHOST="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -O6 -pipe" CXXFLAGS="${CFLAGS}" 
../configure --prefix=/web/software/php \
--with-mysql=mysqlnd --with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd   \
--with-jpeg-dir=/web/software/jpeg6 \
--with-png-dir=/web/software/libpng2 \
--with-freetype-dir=/web/software/freetype2 \
--with-curl=/web/software/curl \
--with-zlib-dir=/web/software/zlib \
--disable-ipv6 --enable-sockets --disable-debug \
--with-mcrypt=/web/software/libmcrypt \
--enable-fastcgi \
--with-fpm \
--with-libevent=/web/software/libevent-1.4.13/ \
--with-config-file-path=/web/software/php/lib \
--enable-xml --disable-rpath --enable-discard-path \
--enable-safe-mode --enable-bcmath --enable-shmop \
--enable-sysvsem --enable-inline-optimization --with-curl \
--with-curlwrappers --enable-mbregex \
--enable-force-cgi-redirect --enable-mbstring --with-gd \
--enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl \
--with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --without-pear \
--with-fpm-conf=/web/software/php/lib/php-fpm.conf

make -j8 && make install || sleep 5
 [2010-07-31 19:39 UTC] rasmus@php.net
Right, php-fpm-0.6-5.3.1/generate-fpm-patch shows that you patched the standard 
default PHP distribution with your own version of php-fpm you got from somewhere 
else.  The PHP version of FPM does not support XML configuration files.
 [2010-07-31 19:46 UTC] lys0212 at qq dot com
oh,i see!
thank you very much!
it means that i must change the php-fpm.conf  like php.ini format .
To do this,it will be a very big project!
 [2010-07-31 20:20 UTC] rasmus@php.net
Big project?  It takes about 2 minutes.  It is much simpler and easier to read 
than the XML version.  Here, I just did it for you:

[global]
pid=/dev/shm/php-fpm.pid
error_log = /var/log/php-fpm.log
log_level = notice
emergency_restart_threshold = 10
emergency_restart_interval  = 1m
process_control_timeout = 5s
daemonize = yes

[default]
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
listen.backlog = -1
listen.owner = jobui
listen.group = jobui
listen.mode  = 0666

php_admin_flag[display_errors] = on
php_admin_flag[log_errors] = on
php_admin_value[error_log] = /web/php/tmp/php.err

user = jobui
group = jobui

pm = dynamic
pm.max_children = 128
pm.start_servers = 20
pm.min_spare_servers = 15
pm.max_spare_servers = 30
pm.max_requests = 500

request_terminate_timeout = 450s
request_slowlog_timeout = 0

slowlog = /var/log/php-fpm.log.slow

rlimit_files = 65536
rlimit_core = 0

catch_workers_output = yes

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP]  = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
env[OSTYPE] = $OSTYPE
env[MACHTYPE] = $MACHTYPE
env[MALLOC_CHECK_] = 2
 [2010-07-31 20:33 UTC] lys0212 at qq dot com
it work!
thank you so much !
thank you for your help!
thank you for php!
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Dec 22 11:01:30 2024 UTC