Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I just installed PHP 5.4.19 on my os X 10.6.8 Mac using homebrew. I was previously using PHP 5.3.26 probably installed with MacPorts.

If I type php -v in terminal, I get PHP 5.4.19. If I load a phpinfo() file through my localhost I get PHP 5.3.26. How do instruct Apache to load my new installation of PHP?

If I run php --ini, I get:

Configuration File (php.ini) Path: /usr/local/etc/php/5.4
Loaded Configuration File:         /usr/local/etc/php/5.4/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.4/conf.d
Additional .ini files parsed:      /usr/local/etc/php/5.4/conf.d/ext-mcrypt.ini

My /etc/apache2/httpd.conf file has this setting:

LoadModule php5_module        libexec/apache2/libphp5.so
#LoadModule fastcgi_module     libexec/apache2/mod_fastcgi.so

I have tried changing the LoadModule in my httpd.conf file to:

/usr/local/Cellar/php54/5.4.19/libexec/apache2/libphp5.so,

but I get an error which reads:

httpd: Syntax error on line 118 of /private/etc/apache2/httpd.conf: Cannot load /usr/local/Cellar/php54/5.4.19/libexec/apache2/libphp5.so into server: dlopen(/usr/local/Cellar/php54/5.4.19/libexec/apache2/libphp5.so, 10): Library not loaded: /usr/local/opt/curl/lib/libcurl.4.dylib\n Referenced from: /usr/local/Cellar/php54/5.4.19/libexec/apache2/libphp5.so\n Reason: Incompatible library version: libphp5.so requires version 8.0.0 or later, but libcurl.4.dylib provides version 6.0.0

Any suggestions?

share|improve this question
up vote 1 down vote accepted

First open your Apache2 config file in terminal:

sudo nano /private/etc/apache2/httpd-conf

End hit ctrl + w to search libphp5.so. After found its line, put # beginnig of the line to make it disable. So, here is the last view:

#LoadModule php5_module libexec/apache2/libphp5.so

After restart your apache by running sudo apachectl graceful, localhost will recognize PHP 5.4 as default version.

share|improve this answer
    
your solution actually worked in a round-about way! I commented out "#LoadModule php5_module libexec/apache2/libphp5.so" then restarted. This turned off php - (if I loaded a php file in my browser, it just printed out as code). I then went back to my httpd.conf file and uncommented the full path to the homebrew libphp5.so file (as I tried before in the above question) and restarted. This time, it worked! I'm not sure why! – docMojoman Oct 2 '13 at 19:58

My PHP version running in terminal was 5.3 and localhost shows 5.4. But after I tried the failed way from the first post, I was able to sync the php version on both environments.

Just simply reload the php5_module

LoadModule php5_module /usr/local/Cellar/php53/5.3.28/libexec/apache2/libphp5.so
share|improve this answer

I am not sure how well brew and ports play together, but perhaps you should be using brew install of both apache2 and PHP.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .