Best way to install PHP 5.3 alongside MacPorts PHP 5.2
Michael J. I. Jackson
mjijackson at gmail.com
Tue Feb 5 17:23:23 PST 2008
Thanks for this. I modified the instructions below (just slightly)
and it worked like a charm. In case anybody else is interested in
making this work, and they want explicit details, I wrote up the
entire procedure on my blog.
http://mjijackson.com/2008/02/04/how-to-install-php-53-alongside-52-
on-lighttpd-using-macports/
Michael
On Dec 13, 2007, at 4:12 PM, Ryan Schmidt wrote:
> On Dec 13, 2007, at 16:08, Michael J. I. Jackson wrote:
>
>> Can anybody tell me the best way to install PHP 5.3 (currently in
>> development) alongside a MacPorts install of PHP 5.2 on Apache?
>
> There is a php5-devel port which is currently at an earlier version
> (5.2.5RC2) than the php5 port (5.2.5) but it could possibly be
> updated to 5.3. I'm not sure if you can install php5-devel
> simultaneously with the php5 port, but if not, we could look into
> making it possible... But Jyrki may want to keep it for PHP 5.2.x
> release candidates. In which case, you may have to keep manually
> compiling as below.
>
>> I'm having two problems in particular.
>>
>> 1) I tried downloading and installing the PHP 5.3 snapshot to /usr/
>> local using the following ./configure:
>>
>> ./configure --prefix=/usr/local --enable-calendar --with-iconv=/
>> opt/local --enable-exif --enable-ftp --enable-wddx --with-zlib=/
>> opt/local --with-libxml-dir=/opt/local --with-gettext=/opt/local --
>> with-xml --with-expat-dir=/opt/local --with-xmlrpc --enable-soap --
>> enable-filepro --enable-bcmath --enable-trans-sid --enable-
>> mbstring --enable-dbx --enable-dba --with-openssl=/opt/local --
>> with-mhash=/opt/local --with-mcrypt=/opt/local --with-xsl=/opt/
>> local --with-curl=/opt/local --with-pcre-regex=/opt/local --with-
>> gd --with-jpeg-dir=/opt/local --with-png-dir=/opt/local --enable-
>> gd-native-ttf --without-pear --with-freetype-dir=/opt/local --with-
>> ldap=/usr --with-kerberos=/usr --with-iodbc=/usr --with-apxs2=/opt/
>> local/apache2/bin/apxs --with-mysql=/opt/local/var/macports/build/
>> _opt_local_var_macports_sources_rsync.macports.org_release_ports_www_
>> php5/work/mysql5 --with-pdo-mysql=/opt/local/bin/mysql_config5 --
>> with-mysql-sock=/opt/local/var/run/mysql5/mysqld.sock --with-
>> mysqli=/opt/local/bin/mysql_config5 --with-sqlite --with-pdo-
>> sqlite=/opt/local --enable-sqlite-utf8
>>
>> This is basically the same ./configure my MacPorts install uses,
>> but with a different prefix. However, I get the following error
>> during configure:
>>
>> checking for specified location of the MySQL UNIX socket... /opt/
>> local/var/run/mysql5/mysqld.sock
>> checking for MySQL UNIX socket location... /opt/local/var/run/
>> mysql5/mysqld.sock
>> configure: error: Cannot find MySQL header files under /opt/local/
>> var/macports/build/
>> _opt_local_var_macports_sources_rsync.macports.org_release_ports_www_
>> php5/work/mysql5.
>> Note that the MySQL client library is not bundled anymore!
>>
>> So when I take out --with-mysql, it compiles and installs fine,
>> but I don't have the MySQL library.
>
> Read the post-extract section of the mysql5 variant of the php5
> portfile to see how it copes with this. You just have to make a
> couple symlinks to make the layout match what php expects. You could:
>
> cd /tmp
> mkdir php5mysql5
> ln -s /opt/local/lib/mysql5 php5mysql5/lib
> ln -s /opt/local/include/mysql5 php5mysql5/include
>
> Then use --with-mysql=/tmp/php5mysql5 in your php configure line
> instead. Then delete /tmp/php5mysql5 when you're done.
>
>
>> 2) Using the above method, the new Apache module overwrites the
>> old module (/opt/local/apache2/modules/libphp5.so). This is just
>> fine for running just 5.3, but I don't want to use it all the
>> time! I only want 5.3 as a development version. Any help? Is there
>> any way that I can install 5.3 so that I can just put a different
>> extension on files that I'd like to use it for? .php53 maybe?
>
> Apache cannot support multiple php modules simultaneously. But you
> may want to look into using the lighttpd web server with php
> accessed through fastcgi instead. I have in the past successfully
> had php4 and php5 running simultaneously under lighttpd. Assuming
> the php5 and php5-devel ports can be installed simultaneously
> (which again I'm not sure of) -- or if you build php 5.3 manually
> -- you should be able to get php 5.2 and 5.3 side by side as well.
> Here's an example from my lighttpd configuration file, which says
> to use php5 for all .php files, except if the URL contains "/php4/"
> in which case use php4 for all .php files. You could easily have it
> react to a different filename extension instead if you prefer. As
> you see lighttpd's configuration is quite different from Apache's
> and allows for some very interesting things, like this.
>
>
> fastcgi.server = (".php" =>
> ("localhost" =>
> (
> "socket" => "/tmp/lighttpd-" + var.datetime + "-php5-" + var.PID,
> "bin-path" => "/opt/local/bin/php-cgi",
> "broken-scriptfilename" => "enable",
> "allow-x-send-file" => "enable",
> "min-procs" => 2,
> "max-procs" => 2,
> "bin-environment" => (
> "PHP_FCGI_CHILDREN" => "4",
> "PHP_FCGI_MAX_REQUESTS" => "500"
> )
> )
> )
> )
>
> $HTTP["url"] =~ "/php4/" {
> fastcgi.server = (".php" =>
> ("localhost" =>
> (
> "socket" => "/tmp/lighttpd-" + var.datetime + "-php4-" + var.PID,
> "bin-path" => "/opt/local/bin/php4-cgi",
> "broken-scriptfilename" => "enable",
> "allow-x-send-file" => "enable",
> "min-procs" => 2,
> "max-procs" => 2,
> "bin-environment" => (
> "PHP_FCGI_CHILDREN" => "4",
> "PHP_FCGI_MAX_REQUESTS" => "500"
> )
> )
> )
> )
> }
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-users/attachments/20080205/20cca1ea/attachment-0001.html
More information about the macports-users
mailing list