I recently reinstalled the operating system on my Macbook and this time around I decided to use homebrew to manage packages. Since
php comes pre-installed with OS X and homebrew encourages using the pre-installed binaries, I have been using the built-in install of
php, and so far so good.
But today I tried to install php’s OAuth extension, which comes as a
pecl package, and I run into some errors
Before I started I updated the default
pecl channel and upgraded
pecl extensions already installed:
$ sudo pecl channel-update pecl.php.net $ sudo pecl upgrade
At this point everything looked good, so I went ahead trying to install the OAuth extension but run into the following error:
$ sudo pecl install oauth downloading oauth-1.1.0.tgz ... Starting to download oauth-1.1.0.tgz (44,731 bytes) ............done: 44,731 bytes 6 source files, building running: phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 building in /var/tmp/pear-build-root/oauth-1.1.0 running: /private/var/tmp/apache_mod_php/apache_mod_php-53~1/Build/tmp/pear/temp/oauth/configure checking for grep that handles long lines and -e... /usr/bin/grep ... In file included from /private/var/tmp/apache_mod_php/apache_mod_php-53~1/Build/tmp/pear/temp/oauth/php_oauth.h:47, from /private/var/tmp/apache_mod_php/apache_mod_php-53~1/Build/tmp/pear/temp/oauth/oauth.c:14: /usr/include/php/ext/pcre/php_pcre.h:37: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token /usr/include/php/ext/pcre/php_pcre.h:38: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token /usr/include/php/ext/pcre/php_pcre.h:44: error: expected specifier-qualifier-list before ‘pcre’ make: *** [oauth.lo] Error 1 ERROR: `make' failed
Hmmm. So something was wrong with the built-in PCRE package. After “googling” the problem and reading many contradicting solutions the only thing that was clear is that I needed a newer version of PCRE. So I installed PCRE using homebrew with the following command (this should also work using any other method – macports, compile from source, …):
$ brew install pcre
This worked fine. So now I tried to install the OAuth extension once again using the same comand as before:
$ sudo pecl install oauth
And this time the extension was insatlled ok, yay!!
The only thing I needed to do after that was adding the extension in my php.ini fie (by default it is in
/etc/php.ini). Before the end of the php.ini file add
extension=oauth.so. Finally we can check if the extension is getting loaded:
$ php -i | grep -i oauth OAuth OAuth support => enabled source version => $Id: oauth.c 308061 2011-02-06 17:15:34Z jawed $
Note that you will need to restart the apache web server in order for the extension to be loaded in the web server.