A little off topic, but I suspect someone here knows this.
I have a Macintosh computer running 10.8. It has PHP 5.1.15. I need to upgrade to at least 5. 2. I have Homebrew installed, but I have not found how to run a formula that upgrades this for command line code. Also, this:
which php
gives me:
/usr/bin/php
which I think is outside the control and paths of Homebrew.
Suggestions?
Dbranes answers:
Have you checked out the Homebrew-PHP:
[[LINK href="https://github.com/josegonzalez/homebrew-php"]]https://github.com/josegonzalez/homebrew-php[[/LINK]]
DHRUBA BHOWMIK answers:
Here are the step-by step instructions that I followed to get PHP installed from source on Mac OS X Mountain Lion:
Step 1: Follow the Yellow Brick Road
Follow Upgrading the Native PHP Installation on OS X Mountain Lion (tutorial 1). Ideally, this link would be the only article you have to go through to setup PHP 5.4 on OS X Mountain Lion. In my case, it wasn’t. So we move to step 2, where I encountered the first error during ./configure part of PHP installation. The rest of this walkthrough assumes that you have followed the walkthrough from the original tutorial up till the ICU installation section, right before the “Installing” heading.
Step 2: Install libpng to tackle: configure: error: png.h not found.
Upon executing the following:
$ ./configure \
--prefix=/usr \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--sysconfdir=/private/etc \
--with-apxs2=/usr/sbin/apxs \
--enable-cli \
--with-config-file-path=/etc \
--with-libxml-dir=/usr \
--with-openssl=/usr \
--with-kerberos=/usr \
--with-zlib=/usr \
--enable-bcmath \
--with-bz2=/usr \
--enable-calendar \
--with-curl=/usr \
--enable-dba \
--enable-exif \
--enable-ftp \
--with-gd \
--enable-gd-native-ttf \
--with-icu-dir=/usr \
--with-iodbc=/usr \
--with-ldap=/usr \
--with-ldap-sasl=/usr \
--with-libedit=/usr \
--enable-mbstring \
--enable-mbregex \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--without-pear \
--with-pdo-mysql=mysqlnd \
--with-mysql-sock=/var/mysql/mysql.sock \
--with-readline=/usr \
--enable-shmop \
--with-snmp=/usr \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-tidy \
--enable-wddx \
--with-xmlrpc \
--with-iconv-dir=/usr \
--with-xsl=/usr \
--enable-zip \
--with-imap=/usr/local/imap-2007 \
--with-kerberos \
--with-imap-ssl \
--enable-intl \
--with-pcre-regex \
--with-pgsql=/usr \
--with-pdo-pgsql=/usr \
--with-freetype-dir=/usr/X11 \
--with-jpeg-dir=/usr \
--with-png-dir=/usr/X11
It ended with the following lines:
checking for jpeg_read_header in -ljpeg... yes
If configure fails try --with-vpx-dir=<dir>
configure: error: png.h not found.
I tackled this by installing libpng through homebrew (you should have homebrew installed from the earlier step in the original tutorial):
$ brew install libpng
Step 3: Install freetype to tackle: configure: error: freetype.h not found.
Executing ./configure line again ended with another error:
configure: error: freetype.h not found.
Tackled it by installing freetype:
$ brew install freetype
Step 4: Tackling: configure: error: utf8_mime2text() has new signature …
Executing ./configure again, it threw a new error this time:
checking for U8T_DECOMPOSE...
configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.
This took me the longest to solve! I tried the following:
$ brew install openssl
But that didn’t solve the problem. The error turned out to be related to the PHP IMAP extension, for which, as I found out, we require to compile IMAP from source.
Step 4.1: Compiling IMAP from Source on OS X Mountain Lion
I followed Step 1 from Snow Leopard PHP and IMAP Support article to get IMAP compiled on my Mac (no need to follow the rest of the steps), which made the error in step 4 go away, but introduced a new one.
Step 4.2: Helping OS X find libc-client.a
Now the new error that I received when executing ./configure was:
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
For this, I got a little help from PHP IMAP support in Mac OS X Lion without recompiling PHP: I executed the following (while in the /usr/local/imap-2007 folder):
$ sudo cp c-client/c-client.a /usr/local/lib/libc-client.a
This fixed the error.
Step 5: Do you want PHP with International Support?
Yet another error upon executing ./configure. Installing PHP manually on Mac OS X is such a pain!
checking for location of ICU headers and libraries... not found
configure: error: Unable to detect ICU prefix or /usr/bin/icu-config failed. Please verify ICU install prefix and make sure icu-config works.
Turns out that this resulted from a a step I skipped from the original tutorial, which walked through installing ICU for enabling international support. If you are getting this error, make sure you followed that step. However, if you don’t really want international support in PHP on your system, you can remove the –enable-intl option while running ./configure. I did the latter and finally got through the ./configure command!
Milestone Reached: Configured successfully!
If Any problem , please contact me.
Utkarsh Kukreti answers:
Have you installed PHP 5.4 using Homebrew yet?
Try these steps:
brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php
brew update
brew install php54
If `which php` still gives /usr/bin/php, add this line to the end of your ~/.bashrc (or ~/.zshrc if you use ZSH)
export PATH=/usr/local/opt/php54:$PATH
and reopen Terminal.