Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg

PHP : Installation and Configuration : Installation on Mac OS X

Chapter3.Installation on Mac OS X

This section contains notes and hints specific to installing PHP on Mac OS X. There are two slightly different versions of Mac OS X, Client and Server, our manual deals with installing PHP on both systems. Note that PHP is not available for MacOS 9 and earlier versions.

Using Packages

There are a few pre-packaged and pre-compiled versions of PHP for Mac OS X. This can help in setting up a standard configuration, but if you need to have a different set of features (such as a secure server, or a different database driver), you may need to build PHP and/or your web server yourself. If you are unfamiliar with building and compiling your own software, it's worth checking whether somebody has already built a packaged version of PHP with the features you need.

The following resources offer easy to install packages and precompiled binaries for PHP on Mac OS:

Code Examples / Notes » install.macosx


under MacOS 10.3 if your compile fails
vi Makefile
find the dns.c entry
add the switch -DBIND_8_COMPAT
run make again


To build on MacOS X 10.3.5 set the environment variable CFLAGS in the following way (depending on your shell)
Then launch configure with the options:
./configure --prefix=/usr --mandir=/usr/share/man  ....
The -DBIND_8_COMPAT=1 gets you over a problem in the DNS files because MacOS X has definitions for Bind9 and PHP expects Bind8 definitions. -DEAPI is needed if you build it for Apache 1.3.31. -O3 enables the gcc optimizer.
You can also add one of the following lines to your CFLAGS depending on the CPU you use to further improve speed:
-mcpu=G3 -mtune=G3
-mcpu=G4 -mtune=G4
-mcpu=G5 -mtune=G5

jack dash pinette

PHP 4.3.0 can easily be build on Mac OS X client; you don't need to download a binary.  The process is quite fast and painless.
for details.

dan black

My httpd.conf had some of the lines, but not all of them -- mine was missing the LoadModule and AddModule lines for php.  I'm not sure why -- I don't delete any of those; I just comment them out if I'm not using them.  Plus, the note above put a space in "LoadModule"; it has no space.  I didn't know about the "apachectl graceful" trick, though -- since "httpd -k restart" stopped working (probably around 10.2), I had just been doing it manually -- find the process, kill it, and hit httpd again -- thanks for the tip!
So for those who are missing any of the lines, here are the full lines.
In the section with all the other LoadModules:
 LoadModule php4_module        libexec/httpd/</div>
Directly below that section should be the AddModules; you need:
 AddModule mod_php4.c
And then the AddType lines should be right after the language priorities (so after the AddCharset lines and after the LanguagePriority bit):
 AddType application/x-httpd-php .php
 AddType application/x-httpd-php-source .phps
Then restart apache/httpd as described above, and hopefully you should be good.
BTW, the actual module should be at:
So if things fail, you can check to see if that's there.
Thanks to others who posted here; it definitely helped and got me on the right track.  I just had to find the module manually to write my own LoadModule line.

jeff hayden

Just a note. The darwinports software is now macports and you can get it at:
If you use macports, be sure to change any refernces you may have in your calling scripts to macports as the file macports now gets installed.


If you've got Mac OS X pre-installed on your Mac, you've also got php4 pre-installed. You don't need to download or compile anything. You just need to edit the /etc/httpd/httpd.conf file. Use the "sudo open -a TextEdit..." command line, above. Search for "php", and make sure you've un-commented _all_ the relevant lines: the two AddType lines above, and also the AddModule and LoadModule lines. (but not the AddType lines for php3, since you'll be using php4.) Save and restart Apache with "sudo apachectl graceful", and you are done.


Getting PHP running on 10.1 is simple.
1. su to root
2. Edit /etc/httpd/httpd.conf
3. Uncomment "Load Module php4_module" line.
4. Uncomment "AddModule mod_php4.c" line.
5. Uncomment "AddType application/x-httpd-php .php" line.
6. Uncomment "AddType application/x-httpd-php-source .phps" line.
7. Find "<Directory /home/*/Sites>" block and uncomment the entire Directory directive block.
This will allow PHP to execute from ~/Sites directory.


for using PHP on MacOSX, see article #106485 of the Apple knowledge base


For the latest on Mac OS X PHP installs (as of 10.0.4 on 9.24.01) check out
This page also has some info on MySQL installs.


10.1 with fink installed into /sw ,mysql installed from fink.
finally :
Apache/1.3.24 (Darwin) DAV/1.0.3 PHP/4.2.1 mod_ssl/2.8.8 OpenSSL/0.9.6c configured
initial apache config:
./configure --prefix=/sw --enable-shared=max --enable-module=most --target=apache --with-layout=GNU
--enable-suexec --suexec-caller=www-data
then php config:
./configure --prefix=/sw --with-xml --with-apache=../apache_1.3.24 --with-curl=/sw --with-pdflib=/sw
--enable-exif --with-mysq=/sw
then mod-ssl config:
./configure --with-apache=../apache_1.3.24 --with-ssl=/sw --enable-rule=SSL_SDBM
final apache config:
./configure --prefix=/sw --enable-shared=max --enable-module=most --target=apache --with-layout=GNU
--enable-suexec --suexec-caller=www-data --activate-module=src/modules/php4/libphp4.a --enable-module=ssl
on final make of apache there was error in src/modules/ssl. i had to rm -ldbm and -lgcc and run gcc line by hand. then was able to finish make.
i dont know what effect that may have on the build and i am interested to know, this was the only problem spot finally after many hours of hacking at it.
testing so far:
phpinfo() via http and https works.

Change Language

Follow Navioo On Twitter
General Installation Considerations
Installation on Unix systems
Installation on Mac OS X
Installation on Windows systems
Installation of PECL extensions
Runtime Configuration
eXTReMe Tracker