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