note 87046 deleted from install.pecl by philip
| From: | philip@php.net | Date: | Sat, 29 Nov 2008 16:49:04 +0000 |
| Subject: | note 87046 deleted from install.pecl by philip | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-147420@lists.php.net to get a copy of this message | ||
Note Submitter: tom dot herlihy at NOSPAM dot dot dot gov
----
Tips for getting the pecl_http extension running on a Macintosh OS X 10.5.x Leopard 64-bit intel
machine.
For starters, you need to follow the instructions in the subsequent pages here to install the
PEAR/PECL manager because it is no longer in the standard OS X setup.
(1) To compile the extension, you have to install the Developers XTools from your system disks
because they are not installed by default. This is a simple step.
(2) it's not made clear that you need to install an older version of pecl_http than the
latest stable version (1.6.1 as of this writing) because the 1.6.1 needs PHP6. I used version 1.5.6
successfully. So, your Terminal command has to be --
sudo pecl install pecl_http-1.5.6
(3) There is apparently a libcurl dependency in the case of pecl_http (although no dependencies
are listed at the extension site), but it came with the excellent entropy.ch PHP installation I
substituted for the standard PHP installation that comes with the operating system. I needed the
entropy.ch version because it has the PDO_MYSQL extension and driver I need for the Zend Framework.
Note that using the entropy.ch substitute can confuse the PECL install manager (it may place the
compiled extension in the wrong place for the substitute) -- it's easy enough to move (mv) it
after it's successfully compiled.
(5) Once compiled and located properly, you may need to chmod the rights for the extension. I
had to to make it comparable to the others in the extensions directory -- not sure this was strictly
necessary, but I thought it would help to have them similarly owned and permitted.
(6) As is made clear elsewhere, you need to add the following to your php.ini where all other
extensions to load are listed:
extension=http.so
I did not comment out the "extension_dir="./" line as some suggest, and I got no
problems.
(7) Last and perhaps most important, I had to change the underlying apache startup plist file so
that it comes up in 32-bit mode --it never worked under the standard 64-bit mode.
Here's the file to change:
/System/Library/LaunchDaemons/org.apache.httpd.plist
I've no idea if this is a so-called "bug" or just something I should have recognized
on my own. Anyway, here's a link to what the substituted contents should be (found about
two-thirds of the way down the page):
http://www.entropy.ch/phpbb2/viewtopic.php?p=11260#11260
Also, here's the needed substitute file contents:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.apache.httpd</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>arch</string>
<string>-arch</string>
<string>i386</string>
<string>/usr/sbin/httpd</string>
<string>-D</string>
<string>FOREGROUND</string>
</array>
<key>SHAuthorizationRight</key>
<string>system.preferences</string>
</dict>
</plist>
That's it, and good luck