Установка PHP 5.4 на OS X Mountain Lion

OS X Mountain Lion 25 июля вышла новая версия OS X — Mountain Lion. Для каждой версии я описываю процесс установки последнего PHP. Этот раз не будет исключением.

Как обычно для дополнительных пакетов будем использовать Homebrew. Чтобы с ним работать нам нужно установить Command Line Tools. Это можно сделать двумя способами. Первый, скачать Command Line Tools в разделе Downloads for Apple Developers или с моего Яндекс.Диска и установить. Второй, установить бесплатный Xcode через App Store. Зайти в настройки программы, в раздел Downloads и установить Command Line Tools оттуда.

Установка Command Line Tools в Xcode 4.6.1

Как только Command Line Tools будут установлены, запускаем терминал и начинаем установку Homebrew.

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

Установка Homebrew на OS X Mountain Lion

После, настраиваем права к Homebrew и устанавливаем необходимые пакеты.

brew install git
brew update
brew install wget

Приступаем к установке пакетов необходимых для PHP. Первым делом устанавливаем MySQL (если он вам не нужен, пропускайте). На данный момент в Homebrew находится 5.6.10 версия, её и будем ставить.

brew install mysql

Выполняем настройку MySQL, инструкция будет в терминале. Вот главные моменты.

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
 
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Теперь установим оставшиеся пакеты.

brew install re2c
brew install gmp
brew install gettext
brew install libmcrypt
brew install libjpeg
brew install openssl
brew install libxml2
brew install icu4c

Обратите внимание, что libxml2 нам нужен не больше 2.8.0 версии, а icu4c не больше 49.1.2 версии. Для этого нужно откатить пакеты на предыдущие версии.

cd /usr/local/
 
brew uninstall libxml2
git checkout 763d946 /usr/local/Library/Formula/libxml2.rb
brew install libxml2
 
brew uninstall icu4c
git checkout c25fd2f /usr/local/Library/Formula/icu4c.rb
brew install icu4c

Для того чтобы PHP работало с графикой (--with-gd, --with-jpeg-dir, --with-png-dir, --with-xpm-dir, --with-freetype-dir и так далее) нужен доступ к X11. Однако начиная с OS X Mountain Lion, X11 не входит в систему по умолчанию, поэтому нужно будет установить его отдельно. Если этого не сделать, то вы получите примерно такую ошибку во время конфигурации PHP.

configure: error: png.h not found.

Чтобы поставить X11 я использую XQuartz. На данный момент доступна 2.7.4 версия. После её установки вам может понадобиться перезагрузка, однако у меня заработало и без этого.

Теперь, когда всё необходимое установлено, можно ставить PHP 5.4.15.

cd ~/Downloads/
wget http://ru2.php.net/get/php-5.4.15.tar.bz2/from/ru2.php.net/mirror
mv mirror php-5.4.15.tar.bz2
bunzip2 php-5.4.15.tar.bz2 && tar xvf php-5.4.15.tar
cd php-5.4.15

Конфигурация и установка. Не забудьте проверить пути и версии в конфиге, они могут измениться.

env EXTRA_LIBS="-lstdc++" ./configure \
 --prefix=/usr/local/php \
 --with-apxs2=/usr/sbin/apxs \
 --with-layout=GNU \
 --enable-calendar \
 --enable-ftp \
 --enable-bcmath \
 --enable-mbstring \
 --with-icu-dir=/usr/local/Cellar/icu4c/49.1.2 \
 --enable-intl \
 --enable-sockets \
 --enable-soap \
 --with-gettext=/usr/local/Cellar/gettext/0.18.2 \
 --with-bz2 \
 --with-zlib \
 --enable-zip \
 --with-gd \
 --with-jpeg-dir \
 --with-png-dir=/usr/X11 \
 --with-xpm-dir \
 --with-freetype-dir=/usr/X11 \
 --enable-exif \
 --with-gmp \
 --with-mcrypt \
 --with-mysql=mysqlnd \
 --with-mysqli=mysqlnd \
 --with-pdo-mysql=mysqlnd \
 --with-mysql-sock=/usr/local/var/mysql/mysqld.sock \
 --with-curl \
 --with-openssl=/usr \
 --with-libxml-dir=/usr/local/Cellar/libxml2/2.8.0 \
 --with-xsl=/usr \
 --with-xmlrpc \
 --enable-shmop \
 --enable-pcntl \
 --enable-sysvmsg \
 --enable-sysvsem \
 --enable-sysvshm
 
make && sudo make install

Отлично, теперь у вас стоит PHP 5.4.15 для OS X Mountain Lion, но не стоит забывать что осталась старая версия. Я предлагаю её переименовать, чтобы она не мешала.

sudo mv /usr/bin/php /usr/bin/osx-php
sudo mv /usr/bin/phar /usr/bin/osx-phar
sudo mv /usr/bin/php-config /usr/bin/osx-php-config
sudo mv /usr/bin/phpize /usr/bin/osx-phpize 

А для новой версии создаём ссылки в /usr/local/bin папку.

ln -s /usr/local/php/bin/php /usr/local/bin/php
ln -s /usr/local/php/bin/pear /usr/local/bin/pear
ln -s /usr/local/php/bin/pecl /usr/local/bin/pecl
ln -s /usr/local/php/bin/phar.phar /usr/local/bin/phar
ln -s /usr/local/php/bin/php-config /usr/local/bin/php-config
ln -s /usr/local/php/bin/phpize /usr/local/bin/phpize 

Остается перезапустить Apache — sudo apachectl restart и любоваться результатом phpinfo().

PHP 5.4.15 на OS X Mountain Lion

Если вы захотите установить APC или Xdebug вы можете столкнуться со следующей проблемой.

Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

Всё потому, что autoconf теперь тоже нет в Mountain Lion, и его придется устанавливать самостоятельно. С помощью Homebrew это делается легко.

brew install autoconf

Теперь проблем с установкой расширений PECL быть не должно.

Что ещё почитать?

← Зачем нужен личный сайт?Чем SVG лучше PNG →