4

I just upgraded my MBP to Snow Leopard (OS X 10.6), which took PHP to 5.3

This is great, except I use my MBP as my development machine and I use a lot of PHP libs and frameworks (namely CakePHP 1.2) which are not compatible at the moment with PHP 5.3. CakePHP in particular does not have a stable version for PHP 5.3 so its not a matter of upgrading the framework (and the production servers are under PHP 5.2 anyway.)

Is there a way to install PHP 5.2.9 alongside PHP 5.3 and then using httpd.conf or .htaccess tell Apache which version of PHP to use for a particular directory?

Alternatively is there a way to do this with MacPorts?

Thanks!

Darren Newton
  • 1,266
  • 2
  • 19
  • 27

6 Answers6

9

Mark Story has written a great article on how to achieve this. He is a CakePHP core developer, and uses this setup for work and cakephp development.

http://mark-story.com/posts/view/maintaining-two-versions-of-php-with-macports

Predominant
  • 206
  • 1
  • 2
  • 1
    Yes he did! I had a small back and forth with Mark about this and have adapted his shell script to do switching between just PHP 5.3 and PHP 5.2.10. Using MacPorts' built in ability to activate/deactivate the environments makes this a snap, and its done in a 'mac' way. – Darren Newton Sep 09 '09 at 11:41
  • 1
    Originally I was going to try and do this using FastCGI following this (rather good) article: http://cuadradevelopment.com/blog/26/multiple-php-versions-with-apache-using-fastcgi-on-os-x/ Unfortunately I couldn't get PHP 5.3 to compile and running FastCGI under suexec (which I am not familiar with) made me a little nervous, so Mark Story's solution above felt more comfortable. – Darren Newton Sep 09 '09 at 11:44
1

I suggest downloading the PHP distribution you would like as source, and then set ./configure parameter options (see ./configure --help) so the software is installed either in a unique location or with the version number appended to the name. This way when you run make install the PHP 5.3 install is not overwritten. Finally setup a separate suffix mapping in Apache which routes to version you'd like, or override the default PHP mapping for the VirtualHost or Directory stanza where your scripts are located.

Nathan
  • 196
  • 5
1

I am maintaining some build scripts as part of the Homebrew project that will let you do just that (at least the installation part) very easily. I blogged about it - http://boztek.net/blog/2009/10/07/install-lamp-stack-source-mac-os-x-106-snow-leopard-using-homebrew

0

This is my own write up from many months back:

http://ireallylikesushi.com/blog/2009/12/21/installing-both-zend-server-ce-php-5-2-php-5-3-on-snow-leopard/

Very easy and clean solution. Hope that helps.

Duo
  • 1
0

One option would be to install different version of something like MAMP and then tinker with each install individually.

Garry
  • 457
  • 2
  • 5
0

Here is another suggestion: http://cuadradevelopment.com/blog/26/multiple-php-versions-with-apache-using-fastcgi-on-os-x