While this project helped us and lots of other people with an up-to-date PHP on their macs in recent years, time has moved on and alternatives, too. We don't have the energy and motivation anymore to further support and maintain this project.
We recommend using a homebrew based setup, if you need an up-to-date PHP locally. New versions are available very quickly. And Grav has a very good introduction on how to get it running with apache and all
Another alternative is of course to switch to a docker based setup, there's lots of docs and images about that out there.
We keep the binaries and infrastructure all up with no plans to shut it down. Don't worry, if you still depend on them, just don't expect updates for new PHP or MacOS versions (or even the Apple Silicon CPU)
We hope, we made your life a little bit easier and you enjoyed this little project. To many more years of PHP on Macs and thanks for all the fish.
This package installs the (usually) latest PHP 7.3/7.2/7.1/7.0/5.6/5.5/5.4/5.3 on OS X 10.6 (aka Snow Leopard), OS X 10.7 (aka Lion) and OS X 10.8 (aka Mountain Lion) and OS X 10.9 (aka Mavericks) and OS X 10.10 (aka Yosemite) and OS X 10.11 (aka El Capitan) and macOS 10.12 (aka Sierra) and macOS 10.13 (aka High Sierra) in /usr/local/php5. It installs many useful extensions (see below) and ini-settings and is what we at Liip use for our development. It's especially suited for Symfony 2 development. It also provides a decent php.ini with all settings configured according to "Best Practices".
It doesn't install Apache, MySQL or any other external programs. It uses the Apache installation, which comes with OS X and for installing MySQL you can for example use Homebrew. The package is based on entropy's php package .
All you need to do to install the whole thing is opening up a Shell and execute the following line:
curl -s https://php-osx.liip.ch/install.sh | bash -s 7.3
curl -s https://php-osx.liip.ch/install.sh | bash -s 7.2
curl -s https://php-osx.liip.ch/install.sh | bash -s 7.1
curl -s https://php-osx.liip.ch/install.sh | bash -s 7.0
curl -s https://php-osx.liip.ch/install.sh | bash -s 5.6
curl -s https://php-osx.liip.ch/install.sh | bash -s 5.5
curl -s https://php-osx.liip.ch/install.sh | bash -s 5.4
curl -s https://php-osx.liip.ch/install.sh | bash -s 5.3
It will ask you for your password. We install the packager in /usr/local/packer and PHP into /usr/local/php5 and for this, we need your password. We don't do anything bad with it.
php-osx doesn't overwrite the php binaries installed by Apple, but installs everything in /usr/local/php5. The new php binary is therefore in /usr/local/php5/bin/php.
You can also adjust your PATH do include that directory, eg. write into your ~/.profile file the following
export PATH=/usr/local/php5/bin:$PATH
Because we are based in Zurich (and Fribourg and Lausanne). Change the file in /usr/local/php5/php.d/99-liip-developer.ini to adjust that.
We introduced our own ini file to be able to easily overwrite the standard values with our recommended values. You can find it in /usr/local/php5/php.d/99-liip-developer.ini
As this is read last, it will overwrite values defined in other files. You can also just delete the file.
If you download the native binary from mysql.com, that server uses /tmp/mysql.sock as its socket location (see this). Therefore we choose that value as default.
You can change that value in /usr/local/php5/php.d/99-liip-developer.ini
sudo /usr/local/php5/bin/pecl install pecl_http
We started not including the memcached daemon anymore. But you can install it by hand with
sudo /usr/local/packager/packager.py install tools-memcached
This project is hosted on github here https://github.com/liip/build-entropy-php/. The website itself and install.sh is hosted on https://github.com/liip/php-osx/. It's all Open Source, so feel free to fork it and send Pull Requests, if you want to change/fix something.
You have basically three options:
It only works on a 64-bit-capable system. This means not on very old hardware with Intel Core Duo and Intel Core Solo processors (see http://support.apple.com/kb/ht3696 for the overview). If anyone wants to make it work on those systems too, please tell us how (We tried, but didn't came up with anything running in a decent amount of time)
The php.ini is located in /usr/local/php5/lib/php.ini, additional config files are located in /usr/local/php5/php.d/. The php.ini is based on php.ini-development
The Liip php.ini for development is located in /usr/local/php5/php.d/99-liip-developer.ini.
All installed files go in a new directory with every update, you have to manually maintain/merge your changes from the old directory! (like pear installs)
apc, twig and xslcache need to be enabled manually in /usr/local/php5/php.d/50-extension-$name.ini.
xdebug settings needs to be configured (idekey etc) manually in /usr/local/php5/php.d/50-extension-xdebug.ini.
If you are seeing "/usr/sbin/apachectl: line 82: ulimit: open files: cannot modify limit: Invalid argument" when loading apache, here is a fix
See this blog post for even more background info.
If you don't trust us, here's the code of install.sh, which you can run by yourself (instead of the one-liner above):
curl -s -o /tmp/packager.tgz https://php-osx.liip.ch/packager/packager.tgz sudo tar -C /usr/local -xzf /tmp/packager.tgz sudo /usr/local/packager/packager.py install 5.4-frontenddev
If you already have installed the packager and just want to update the PHP package, you can do it with the following line.
sudo /usr/local/packager/packager.py install tools-frontenddev
bcmath bz2 calendar Core ctype curl date dom dtrace ereg exif fileinfo filter ftp gd gettext hash iconv imap intl json ldap libxml mbstring mcrypt memcache memcached mhash mongodb odbc mysql mysqli mysqlnd OAuth odbc openssl pcntl pcre PDO pdo_dblib pdo_mysql pdo_pgsql pdo_sqlite pgsql Phar posix Reflection session shmop SimpleXML soap sockets solr SPL SQLite sqlite3 standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xdebug xhprof xml xmlreader xmlrpc xmlwriter xsl zip zlib Xdebug
available but disabled by default: apc, xslcache, twig, uploadprogress
See this output of phpinfo() for more info.
Change in /etc/apache2/httpd.conf
LoadModule php5_module /usr/local/php5/libphp5.so
to
LoadModule php5_module libexec/apache2/libphp5.so
also delete the file +php-osx.conf and +entropy-php.conf in /etc/apache2/other
and optionally remove /usr/local/php5-*
To reinstall an already installed package, it's version has to be removed from the file /usr/local/packager/registry.log.
sudo $EDITOR /usr/local/packager/registry.log
To forget all installed packages simply remove the file:
sudo rm -rf /usr/local/packager/registry.log
Thanks to Local.ch, which made all the groundwork for this. And thanks to Liip (and especially Patrick) for everything else.
We can't provide support for this, but Pull Requests are always welcome. And use the github issues page for filing bug reports.
PHP 7.3.8 for OS X 10.10-10.13 uploaded at 2019-08-11 PHP 7.2.21 for OS X 10.10-10.13 uploaded at 2019-08-11 PHP 7.1.31 for OS X 10.10-10.13 uploaded at 2019-08-11 PHP 7.0.31 for OS X 10.10-10.13 uploaded at 2018-09-03 PHP 5.6.36 for OS X 10.10-10.13 uploaded at 2018-07-03 PHP 5.6.36 for OS X 10.8 /10.9 uploaded at 2018-06-23 PHP 5.5.38 for OS X 10.10-10.13 uploaded at 2016-08-31 PHP 5.5.38 for OS X 10.8 /10.9 uploaded at 2016-08-31 PHP 5.5.38 for OS X 10.6 /10.7 uploaded at 2016-08-31 PHP 5.4.45 for OS X 10.10-10.13 uploaded at 2016-03-10 PHP 5.4.45 for OS X 10.8 /10.9 uploaded at 2016-03-10 PHP 5.4.45 for OS X 10.6 /10.7 uploaded at 2015-12-26 PHP 5.3.29 for OS X 10.10-10.13 uploaded at 2014-10-19 PHP 5.3.29 for OS X 10.8 /10.9 uploaded at 2014-08-18 PHP 5.3.29 for OS X 10.6 /10.7 uploaded at 2014-08-14