Re: [PHP] PHP-FPM fails to start scripts

[email protected] (John Iliffe)
Newsgroups php.general
Message-ID <[email protected]>
On Tuesday 23 May 2017 02:40:03 Lester Caine wrote:
> On 23/05/17 02:41, John Iliffe wrote:
> > The Apache directive invoking this script is:
> > 	ProxyPassMatch "^/.*\.php(/.*)?$" fcgi://127.0.0.1:9015/httpd/iliffe/
> 
> ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9015/httpd/iliffe/$1
> was your original line, and this should have resulted in the right
> trimming of slashes while I think you are currently getting the double
> slash because of the trailing one in your current string.
> 
Please ignore this following paragraph.  It was an attempt at a minimalist 
ProxyPassMatch that would bypass any regex errors.  It isn't useful in the 
real world so I dropped trying it.  I think you got that info from the 
Apache mailing list.
> ProxyPassMatch ^/info$ fcgi://127.0.0.1:9015/httpd/iliffe/i_phpinfo.php
> and http://localhost/info should work ... but is /httpd REALLY a root
> folder? I'm getting /srv/www/htdocs as the default root, and I switch to
> /srv/website/test.com for each website ...
> 
Some further info: 

Yes, /httpd is the root directory for the web pages.  The production server 
has a lot of named virtual hosts on it and each one has a document root of 
/httpd/<server name>/  and the test server is set up the same way.  The 
test server is www.iliffe.ca and its document root thus becomes /httpd/iliffe 
plus a few subs below that where needed.  In this case, there are no 
additional subs.

When I tried the $1 extension as you suggested it didn't work, see previous 
memo; so I removed the $1 and also the last '/' in the ProxyPassMatch 
directive and now php-fpm has the correct path and file but without the 
double '//'.  So, this is one case where a trailing / on a directory does 
not work/isn't required.  Here is the strace record:

-------------------------------
5254  20:14:55 lstat("/httpd/iliffe/i_phpinfo.php", {st_mode=S_IFREG|0644, 
st_size=213, ...}) = 0
--------------------------------

php-fpm received a 0 from lstat (file exists), is a regular file (S_IFREG) 
and is readable (0644).  So that makes no difference to the result.  php-fpm 
still backs down the directory tree and then tries to stat the wrong file 
name.  Just for completeness, here is the php-fpm log entry:

----------------------------------
[23-May-2017 20:14:55] WARNING: [pool www] child 5254 said into stderr: 
"ERROR: Unable to open primary script: /httpd/iliffe/i_phpinfo.php (No such 
file or directory)"
---------------------------------

I haven't been able to find out yet if the parameter data is picked up when 
the Apache directive is coded this way.   (eg:   i_phpinfo.php?a=b&c=d)  

I seem to be getting a good argument here for backing off to PHP5!

Regards,

John
===============================
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.