Skip to content

Instantly share code, notes, and snippets.

  • Star 87 You must be signed in to star a gist
  • Fork 18 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save raphaelstolt/2721719 to your computer and use it in GitHub Desktop.
Installing PHP 5.4 and 5.3 side by side on Max OSX via MacPorts

##Given Apache 2 and MySQL are already installed.

#Update MacPorts sudo port selfupdate;sudo port -u upgrade outdated

#Install PHP 5.4.* sudo port install php54 php54-apache2handler ##Activate Apache Module cd /opt/local/apache2/modules sudo /opt/local/apache2/bin/apxs -a -e -n php5 mod_php54.so ##Install your needed extensions sudo port install php54-curl php54-ftp php54-iconv php54-mbstring php54-mcrypt php54-mysql php54-openssl php54-soap php54-sqlite php54-xsl php54-zip php54-xdebug php54-mongo #Install PHP 5.3.* sudo port install php53 php53-apache2handler ##Install your needed extensions sudo port install php53-curl php53-ftp php53-iconv php53-mbstring php53-mcrypt php53-mysql php53-openssl php53-soap php53-sqlite php53-xsl php53-zip php53-xdebug php53-mongo #Activate PHP 5.4.* sudo port select php php54 #Fall back to PHP 5.3.* when required sudo port select php php53 The current php_select doesn't change the LoadModule directive in your http.conf so you might have to change the version by hand (and restart your Apache). #Install PEAR cd # curl http://pear.php.net/go-pear.phar -o go-pear.phar sudo php go-pear.phar Modify the PEAR install process to your needs; mine were the following:

1. Installation base ($prefix) : /opt/local/lib/php54
...
4. Binaries directory          : /opt/local/bin
...

##Check the PEAR installation, cleanup and install your favourite packages

pear info pear && rm go-pear.phar
sudo pear config-set auto_discover 1; sudo pear install pear.phpunit.de/PHPUnit
...
@robsonpeixoto
Copy link

If the PHP was compiled with suhosin, you will need to add

suhosin.executor.include.whitelist="phar"

on php.ini

@Devric
Copy link

Devric commented Jul 15, 2012

i have a issue with php.ini,

for some reason it is not loaded. Im using php5.3 before (the default mac snow leopard),
than i did the above as suggested.
and did a phpinfo();

it points to 5.4.4 which is correct;

but no matter what i do in /etc/php.ini and restart apache
it does not take effect, anyone know what is wrong with this?

--------------- update --------------
if i use php -i in commandline, everything is fine, it seems like the php.ini is working
I tested if PDO or mongo driver is loaded, it shows fine in the commandline,

BUT if look through browser, it dosent; i browsed localhost/test.php << with << <? phpinfo();
changes in php.ini doesnt show up, and it seems like using the original for php5.3 but the version is point correctly to 5.4.4
i realise the configure ini path is pointing differently

how do i set this path?

——————————————————
i realise that using the web sharing option sharing will trigger the default apache setting, need to start apache2 manually

@robsonpeixoto
Copy link

The ports php54-pear and php53-pear add /opt/local/lib/php/pear to include_path.

I think is better configure like that:

  1. Installation base ($prefix) : /opt/local/lib/php/pear

@jrschumacher
Copy link

is there a way to use htaccess files to choose 53 for a project?

@TravelingTechGuy
Copy link

Thanks for taking the time to put this together.
Is there an easy way to find out which php extensions do I have installed currently? I'd like to have the same list for 5.4.
I tried port list | grep php53- but got way too many...
Thanks.

@markhalliwell
Copy link

To get the list of installed ports matching a type of string you should use:
port installed php* (for both php53 and php54)
port installed php53*
port installed php54*

@arm1n
Copy link

arm1n commented Feb 2, 2013

Hi guys, have found your gist yesterday when searching for a possibility to have two php versions with macports. Thanks for the helping instructions. Indeed, the builtin sudo port select php php5x doesn't work as expected, therefore I've written a little shell which changes the httpd.conf file with sed. Hope this helps anybody else: https://gist.github.com/4697397

Copy link

ghost commented Mar 1, 2013

hi,
I installed this successfully & php -v showing it right.
But from my code, if I do phpinfo(), it's showing me PHP Version 5.3.15.
Any idea how can I fix it?

Thanks

@someonewhoisme
Copy link

You can try going into /private/etc/apache2 and changing the httpd.conf file that's there so it has the line "LoadModule php5_module /opt/local/apache2/modules/mod_php54.so" somewhere in the list of LoadModule statements.

@brandont
Copy link

Thank you! This worked for me.

@SWW13
Copy link

SWW13 commented Nov 26, 2013

thx works great, even with php 5.5 just replace php54 with php55

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment