Re: HOWTO run PHP4 and PHP5 on Apache/Linux
| From: | AJL | Date: | Sun, 08 Aug 2004 20:29:18 +0000 |
| Subject: | Re: HOWTO run PHP4 and PHP5 on Apache/Linux | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-193141@lists.php.net to get a copy of this message | ||
On Tue, Aug 03, 2004 at 10:04:11PM -0500, AJL wrote:
>
> I ran into so many problems trying to set this up that I thought I'd
> post my notes to hopefully save others some trouble.
>
> I found most of the information I needed at:
> http://rayh.co.uk/archives/13_PHP5__PHP4_side_by_side.html
> but the link doesn't seem to be working anymore, so here are my notes.
>
> Versions:
> PHP4.x module (already compiled and installed, this was
> straightforward in docs at www.php.net)
> PHP5.0.0 cgi
> RedHat linux 6.x
> Apache 1.3.22
>
> PHP5 configure command:
> ./configure \
> --prefix=/usr/local/php/php5.0.0 \
> --with-config-file-path=/usr/local/php/php5.0.0/ \
> --with-config-file=/usr/local/php/php5.0.0/php.ini \
> --enable-force-cgi-redirect \
> --disable-path-info-check \
> --enable-safe-mode \
> --disable-short-tags \
> --with-regex=system \
> --with-mysql \
> --enable-debug \
> --with-mcrypt \
> --enable-versioning \
> --disable-libxml
>
> NOTE: when I enabled '--enable-discard-path', pages would load blank.
> Don't use this unless you know what you are doing. I don't understand
> exactly what this does.
>
> NOTE: The options '--with-apxs' and '--with-apache' tell configure to
> build apache module and CLI. The absence of these tells it to build
> the CGI version. So DO NOT USE them if you want the CGI version.
>
> make
> make test
> make install
>
>
> Add the following to httpd.conf (must be in the generic server
> settings, NOT in a virtual host):
> ScriptAlias /cgi-php5/ "/usr/local/php/php5.0.0/bin/"
> <Directory "/usr/local/php/php5.0.0/bin/">
> Options +ExecCGI
> Allow From All
> </Directory>
>
>
> Foreach virtual host you want to use php5 on:
> Create a directory named 'cgi-php5' one level above the document root.
> This will most likely be in the same directory that has the cgi-bin
> directory in it.
>
>
> Foreach directory that you want to us php5 for:
> Add the following to .htaccess file (or virtual host inside a
> Directory container):
> Action php5-script /cgi-php5/php
> AddHandler php5-script .php
> Options +ExecCGI
>
> This is an excellent solution because:
> - You only have to restart apache once. After that, you can add
> .htaccess files to enable php5 interpretation whereever you want.
> - You can upgrade/downgrade php5 without touching apache.
> - You don't have clunky file extensions like .php5 or anything else
> that will be difficult to change later on down the road.
>
> PROBLEMS: So far, I cannot figure out why $_POST is empty when an html
> form is sent with method=post. GET works fine. In all my searching,
> I think it has something to do with how apache is setup; not with how
> php is configured. I've tried the default php-dist ini file, I've tried
> many different variations of php configure commands. None of them do
> the trick. PHP bug list has some posts from people with the same problem
> and then they said they found a problem in apache setup that fixed it.
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
PROBLEM RESOLUTION:
I finally found the problem: It was the mod_bandwidth module in
Apache. I was tipped off to this from bug report:
http://bugs.php.net/bug.php?id=16595
I disabled the module (commented the LoadModule and AddModule lines in
httpd.conf) and $_POST is populated as expected now.
The faq for mod_bandwidth at:
http://www.cohprog.com/v3/bandwidth/faq-en.html
indicates that if configured incorrectly, CGI may stop working.
--
Andy