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:


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?


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.

  • 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

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.