Re: mod_fcgid: different instances of the same program
On Mon, Nov 9, 2009 at 5:16 PM, Danny Sadinoff danny.sadin...@gmail.com wrote: 2) Virtual hosts The above item holds true even across virtual hosts. So while it's possible to adjust the FcgidInitialEnv items on a per-vhost basis, this is a recipe for disaster if two vhosts point at the same fcgi executable, because the resulting processes with potentially different Environments will be inserted into the same pool. Once that occurs, we may expect that a server spawned with config defined in vhost A will be parcelled out to vhost B. The first time that i use mod_fcgid, i probe SetEnv instead FcgidInitialEnv because i not readed complete the documentation, but SetEnv and FcgidInitialEnv causes the same effect, the difference is where you put the SetEnv. The FastCGI especification only needs the environment variables that uses (FCGI_SOCKET, FCGI_USER, ALLOWED_ENV, etc.) you could use SetEnv if need more flexibility than FcgidInitialEnv. -- Felipe Alcacibar Buccioni
Re: mod_rewrite and mod_fcgid pass wrong fcgi request
... This is apparently PR 40781: https://issues.apache.org/bugzilla/show_bug.cgi?id=40781 I see that one or two people have suggested work-arounds in that PR, but they don't seem to apply directly to your configuration. Perhaps some mod_rewrite experts on the user list can help solve this, with some adjustment to your mod_rewrite configuration so that in effect PATH_TRANSLATED doesn't get left with redirect:? Effectively, that happens to me, but not in cgi mode (cgid) or with php's libphp5 (apxs module) it happens only with mod_fcgid. FWIW, changing the FcgidWrapper directive temporarily to point to this Perl script is helpful for seeing what mod_fcgid is telling PHP: #!/usr/bin/perl use strict; use CGI::Fast; while (my $q = CGI::Fast-new) { print Content-Type: text/plain\r\n\r\n; foreach my $env (keys %ENV) { print env $env = $ENV{$env}\n; } } (though possibly you don't have CGI::Fast or its FCGI dependency installed) for no errors i take the straces dumps from php-cgi with mod_cgid and mod_fcgid, to know better what it's happens here is the vars that passes to me. REDIRECT_STATUS: 200 SERVER_NAME: servicio.fullplanet.cl DOCUMENT_ROOT: /hosting/http/fullplanet.cl/dom/servicio/www SCRIPT_FILENAME: /hosting/http/fullplanet.cl/dom/servicio/www/index.php REMOTE_PORT: 1734 REDIRECT_URL: /favicon.ico GATEWAY_INTERFACE: CGI/1.1 SERVER_PROTOCOL: HTTP/1.1 REQUEST_URI: /favicon.ico SCRIPT_NAME: /index.php PATH_INFO: /favicon.ico PATH_TRANSLATED: redirect:/index.php/favicon.ico The complete list and the strace dumps have here http://devel.tryer.cl/fcgid_debug/ ... I wasn't very clear with this suggestion ;) My thought was to see what it takes to get it working with CGI first, as more people could potentially help with a CGI issue. Once it works with CGI, it should be straightforward to convert the config to FastCGI. Also, if the config then doesn't work after converting to FastCGI then it is more likely a mod_fcgid bug. at least is a bug, that is great to clear me that dude. but i habe a last dude. The way of the good Open Source Software user is to report the bug, but where is the bug, in the mod_fcgid or in the mod_rewrite?? lot of thanks Jeff -- Felipe Alcacibar Buccioni
Re: mod_rewrite and mod_fcgid pass wrong fcgi request
... When comparing modes of PHP execution: - CGI and FastCGI are directly comparable because the information that Apache needs to pass to PHP is the same. (In fact, mod_cgi[d] and mod_fcgid use the same core Apache code to build almost all of that information.) You should be able to take your CGI configuration and change the handler from cgi-script to fcgid-script and have PHP work as FastCGI. One nuance is that if you're relying on ScriptAlias you'll need to use both Alias and Options +ExecCGI in the FastCGI equivalent. - mod_php and mod_fcgid configurations are not comparable. As you sayed it i made a similar environment (the difference is the FcgidWrapper line) from mod_cgid to mod_fcgid and the result is the same, in the mod_cgid environment all runs good and in the mod_fcgid persisst the problem... rohan counter # cat /etc/apache2/modules.d/70_php5_cgi.conf IfDefine PHP5CGI ScriptAlias /.httpd/cgi-interpreters /var/cgi-interpreters/ Directory /var/cgi-interpreters AllowOverride None Options None Options +ExecCGI Order allow,deny Allow from all /Directory IfDefine FCGID FcgidWrapper /var/cgi-interpreters/php-cgi .php FcgidWrapper /var/cgi-interpreters/php-cgi .php2 FcgidWrapper /var/cgi-interpreters/php-cgi .php3 FcgidWrapper /var/cgi-interpreters/php-cgi .php4 FcgidWrapper /var/cgi-interpreters/php-cgi .php5 FcgidWrapper /var/cgi-interpreters/php-cgi .phtml FcgidInitialEnv PHP_FCGI_CHILDREN 12 FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1 AddHandler fcgid-script .php .php3 .php4 .php5 .php6 .phtml /IfDefine IfDefine !FCGID AddHandler php-script .php .php3 .php4 .php5 .php6 .phtml Action php-script /.httpd/cgi-interpreters/php-cgi /IfDefine FilesMatch \.ph(p[2-6]?|tml)$ Options +ExecCGI /FilesMatch DirectoryIndex index.php index.php3 index.php4 index.php5 index.phtml /IfDefine Any suggestion or step to do??... Thanks Jeff -- Felipe Alcacibar Buccioni
Re: mod_rewrite and mod_fcgid pass wrong fcgi request
Thanks Jeff for the response. I don't know what your rewrite config is, but rewrite isn't required to use path info. Can you post a minimal config that illustrates the problem? my current configuration of the mod_rewrite and mod_fcgid rohan counter # cat /hosting/http/fullplanet.cl/dom/servicio/www/.htaccess RewriteEngine on RewriteCond $1 !^($|index\.php|stock|images|subidas|galerias|css|js|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] rohan counter # cat /hosting/http/fullplanet.cl/dom/servicio/www/.htaccess RewriteEngine on RewriteCond $1 !^($|index\.php|stock|images|subidas|galerias|css|js|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] -- rohan counter # cat /etc/apache2/modules.d/20_mod_fcgid.conf IfDefine FCGID LoadModule fcgid_module modules/mod_fcgid.so FcgidIPCDir /var/run/fcgidsock FcgidProcessTableFile /var/run/fcgid_shm FcgidMaxRequestsPerProcess 8 FcgidMaxProcesses 10240 FcgidMaxProcessesPerClass 1024 FcgidMinProcessesPerClass 1 FcgidFixPathinfo 1 AddHandler fcgid-script .php FcgidWrapper /usr/bin/php-cgi .php FcgidInitialEnv PHP_FCGI_CHILDREN 8 FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1 FilesMatch \.php$ Options +ExecCGI /FilesMatch DirectoryIndex index.php /IfDefine i using a 307 redirect temporally, but that is the configuration that give me this problem. as i told before the file that try to open php-cgi is prefixed with redirect: string. Something to consider when debugging mod_fcgid issues is that the same config should work with mod_cgi[d] simply by changing the handler from fcgid-script to cgi-script. More people on the users@ mailing list are able to help with mod_cgi config issues. i take your advice and now i probe it, thanks :) i take the dessicion to use mod_fcgid because i use mapserver php module, and this module does not have a good memory management, and with mod_fcgid i solve this problems very efficiently. -- cheers, have a nice day. Felipe Alcacibar Buccioni.
Re: mod_rewrite and mod_fcgid pass wrong fcgi request
Thanks Jeff for the response. I don't know what your rewrite config is, but rewrite isn't required to use path info. Can you post a minimal config that illustrates the problem? my current configuration of the mod_rewrite and mod_fcgid rohan counter # cat /hosting/http/fullplanet.cl/dom/servicio/www/.htaccess RewriteEngine on RewriteCond $1 !^($|index\.php|stock|images|subidas|galerias|css|js|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] rohan counter # cat /hosting/http/fullplanet.cl/dom/servicio/www/.htaccess RewriteEngine on RewriteCond $1 !^($|index\.php|stock|images|subidas|galerias|css|js|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] -- rohan counter # cat /etc/apache2/modules.d/20_mod_fcgid.conf IfDefine FCGID LoadModule fcgid_module modules/mod_fcgid.so FcgidIPCDir /var/run/fcgidsock FcgidProcessTableFile /var/run/fcgid_shm FcgidMaxRequestsPerProcess 8 FcgidMaxProcesses 10240 FcgidMaxProcessesPerClass 1024 FcgidMinProcessesPerClass 1 FcgidFixPathinfo 1 AddHandler fcgid-script .php FcgidWrapper /usr/bin/php-cgi .php FcgidInitialEnv PHP_FCGI_CHILDREN 8 FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1 FilesMatch \.php$ Options +ExecCGI /FilesMatch DirectoryIndex index.php /IfDefine i using a 307 redirect temporally, but that is the configuration that give me this problem. as i told before the file that try to open php-cgi is prefixed with redirect: string. Something to consider when debugging mod_fcgid issues is that the same config should work with mod_cgi[d] simply by changing the handler from fcgid-script to cgi-script. More people on the users@ mailing list are able to help with mod_cgi config issues. i take your advice and now i probe it, thanks :) i take the dessicion to use mod_fcgid because i use mapserver php module, and this module does not have a good memory management, and with mod_fcgid i solve this problems very efficiently. -- cheers, have a nice day. Felipe Alcacibar Buccioni.
Re: mod_rewrite and mod_fcgid pass wrong fcgi request
i was commented that in the wrong list? i saw this list in the mod_fcgid's page and for that reason i posted that here, but i don't know if this is a bug or feature or anyelse, or what is the module that may be wrong. someone can tell me if i wrong please? this is a nice list for the comments that i readed, congrats! cheers! -- Felipe Alcacibar Buccioni On Thu, Nov 12, 2009 at 8:25 PM, Felipe Alcacibar falcaci...@gmail.com wrote: Hi, i was friyng my brain the whole day trying to use a mod_rewrite simple rewrite to a php pathinfo running via mod_fcgid. http://domain.tld/path/info/use - http://domain.tld/index.php/path/info/use i trying so much posibilities, but when i take a strace to a php-fcgi application i found the surprise that php treats to open the file redirect:/index.php/path/info/use i cannot know if this behavior is a problem in mod_rewrite or mod_fcgid. someone can guide me with this? -- Felipe Alcacibar Buccioni Desarrollo y asesoria en sistemas y soluciones en tecnologías de la información y comunicación. -- i am using Gentoo Linux, mod_fcgid-2.3.4 (the source unpatched from the offical apache site) apache 2.2.11 rohan www # apache2 -V Server version: Apache/2.2.11 (Unix) Server built: Nov 10 2009 17:59:53 Server's Module Magic Number: 20051115:21 Server loaded: APR 1.3.8, APR-Util 1.3.9 Compiled using: APR 1.3.8, APR-Util 1.3.9 Architecture: 32-bit Server MPM: Worker threaded: yes (fixed thread count) forked: yes (variable process count) Server compiled with -D APACHE_MPM_DIR=server/mpm/worker -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT=/usr -D SUEXEC_BIN=/usr/sbin/suexec -D DEFAULT_SCOREBOARD=logs/apache_runtime_status -D DEFAULT_ERRORLOG=logs/error_log -D AP_TYPES_CONFIG_FILE=/etc/apache2/mime.types -D SERVER_CONFIG_FILE=/etc/apache2/httpd.conf
mod_rewrite and mod_fcgid pass wrong fcgi request
Hi, i was friyng my brain the whole day trying to use a mod_rewrite simple rewrite to a php pathinfo running via mod_fcgid. http://domain.tld/path/info/use - http://domain.tld/index.php/path/info/use i trying so much posibilities, but when i take a strace to a php-fcgi application i found the surprise that php treats to open the file redirect:/index.php/path/info/use i cannot know if this behavior is a problem in mod_rewrite or mod_fcgid. someone can guide me with this? -- Felipe Alcacibar Buccioni Desarrollo y asesoria en sistemas y soluciones en tecnologías de la información y comunicación. -- i am using Gentoo Linux, mod_fcgid-2.3.4 (the source unpatched from the offical apache site) apache 2.2.11 rohan www # apache2 -V Server version: Apache/2.2.11 (Unix) Server built: Nov 10 2009 17:59:53 Server's Module Magic Number: 20051115:21 Server loaded: APR 1.3.8, APR-Util 1.3.9 Compiled using: APR 1.3.8, APR-Util 1.3.9 Architecture: 32-bit Server MPM: Worker threaded: yes (fixed thread count) forked: yes (variable process count) Server compiled with -D APACHE_MPM_DIR=server/mpm/worker -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT=/usr -D SUEXEC_BIN=/usr/sbin/suexec -D DEFAULT_SCOREBOARD=logs/apache_runtime_status -D DEFAULT_ERRORLOG=logs/error_log -D AP_TYPES_CONFIG_FILE=/etc/apache2/mime.types -D SERVER_CONFIG_FILE=/etc/apache2/httpd.conf