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
 [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 06:01:30 2024 UTC