From:             
Operating system: ubuntu 9.04
PHP version:      5.2.13
Package:          CGI related
Bug Type:         Bug
Bug description:php -b 127.0.0.1 vs php -y php-fpm.conf -x

Description:
------------
As starting php-cgi in 2 ways, the 2 results were different. 

1./path/to/php-cgi -b 127.0.0.1:9000

2./path/to/php-cgi -y /path/to/php-fpm.conf -x 



The first one was correct.

The second, which said: 'No input file specified'.



As i tracked down the c code, i found out the reason finally, but dunno why
still.





/php/to/phpsrc/TSRM/tsrm_virtual_cwd.c 

CWD_API int virutal_file_ex(cwd_state *state,.....)

around line 1339



the exact code block:



#if !defined(TSRM_WIN32) && !defined(NETWARE)

..........

if (use_realpath == CWD_REALPATH) {

                return 1;

}

        goto no_realpath;



                

It's the above function that keeps the problem presenting.. 

As i tested, while started as the 1st way, this function return 0, and the
tsrm_realpath returns NULL, also tsrm_realpath was called from
init_request_info. I think u must be familiarer with the code.

And the 2cd way was all right.



Here is my nginx(0.6.39) conf block:

 server {

                listen 80;

                server_name pk.local.com;

                index index.php;

                root  /home/zyk/pk_local;

                location / {

                        root /home/zyk/pk_local;

                       fastcgi_pass 127.0.0.1:9000;

                      #  fastcgi_pass
unix:/usr/local/app/php/logs/php.sock;

                        fastcgi_index index.php;

                        fastcgi_intercept_errors on;

                        include fcgi.conf;

                        include fastcgi_params.default;

                        }

                }



}

Dir /home/zyk/pk_local is RW for the php daemon userid. 



Here is my php configure option:



configure --enable-fastcgi --enable-fpm --enable-mbstring
--prefix=/usr/local/app/php



Here is my 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">/usr/local/app/php/logs/php-fpm.pid</value>



                Error log file

                <value 
name="error_log">/usr/local/app/php/logs/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">no</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">nobody</value>

                                <value name="group">nobody</value>

                                <value name="mode">0666</value>

                        </value>



                        Additional php.ini defines, specific to this pool of 
workers.

                        <value name="php_defines">

                <!--            <value name="sendmail_path">/usr/sbin/sendmail 
-t -i</value>            -->

                <!--            <value name="display_errors">0</value>          
                                                -->

                                <value name="SERVER_SOFTWARE">nginx</value>     
                                                        

                        </value>



                        Unix user of processes

                        <value name="user">nobody</value>                       
        



                        Unix group of processes

                        <value name="group">nobody</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">5</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">5</value>



                                        Sets the desired maximum number of idle 
server processes.

                                        Used only when 'apache-like' pm_style 
is selected

                                        <value name="MaxSpareServers">35</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">0s</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">logs/slow.log</value>



                        Set open file desc rlimit

                        <value name="rlimit_files">1024</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>



As i dunno if it's a bug yet, maybe it's configuration problem. But there
is really no easy way to solve this particular stuff.



Any suggestions? 



Thanks in advance. 

Test script:
---------------
no test script 


-- 
Edit bug report at http://bugs.php.net/bug.php?id=52075&edit=1
-- 
Try a snapshot (PHP 5.2):            
http://bugs.php.net/fix.php?id=52075&r=trysnapshot52
Try a snapshot (PHP 5.3):            
http://bugs.php.net/fix.php?id=52075&r=trysnapshot53
Try a snapshot (trunk):              
http://bugs.php.net/fix.php?id=52075&r=trysnapshottrunk
Fixed in SVN:                        
http://bugs.php.net/fix.php?id=52075&r=fixed
Fixed in SVN and need be documented: 
http://bugs.php.net/fix.php?id=52075&r=needdocs
Fixed in release:                    
http://bugs.php.net/fix.php?id=52075&r=alreadyfixed
Need backtrace:                      
http://bugs.php.net/fix.php?id=52075&r=needtrace
Need Reproduce Script:               
http://bugs.php.net/fix.php?id=52075&r=needscript
Try newer version:                   
http://bugs.php.net/fix.php?id=52075&r=oldversion
Not developer issue:                 
http://bugs.php.net/fix.php?id=52075&r=support
Expected behavior:                   
http://bugs.php.net/fix.php?id=52075&r=notwrong
Not enough info:                     
http://bugs.php.net/fix.php?id=52075&r=notenoughinfo
Submitted twice:                     
http://bugs.php.net/fix.php?id=52075&r=submittedtwice
register_globals:                    
http://bugs.php.net/fix.php?id=52075&r=globals
PHP 4 support discontinued:          http://bugs.php.net/fix.php?id=52075&r=php4
Daylight Savings:                    http://bugs.php.net/fix.php?id=52075&r=dst
IIS Stability:                       
http://bugs.php.net/fix.php?id=52075&r=isapi
Install GNU Sed:                     
http://bugs.php.net/fix.php?id=52075&r=gnused
Floating point limitations:          
http://bugs.php.net/fix.php?id=52075&r=float
No Zend Extensions:                  
http://bugs.php.net/fix.php?id=52075&r=nozend
MySQL Configuration Error:           
http://bugs.php.net/fix.php?id=52075&r=mysqlcfg

Reply via email to