First, you will need to install PEAR via apt-get to get the necessary package and distribution system that both PEAR and PECL use. From a shell prompt enter:
sudo apt-get install php-pear
You will be prompted to confirm the install. Just press “y” and enter. If all goes well you should see it download and install the php-pear package.
Now you will need to install the php5-dev package to get the necessary PHP5 source files to compile additional modules. Enter the following from a shell prompt:
sudo apt-get install php5-dev
If you do not install the php5-dev package and try to install a PECL extension using “pear install”, you will get the following error:
sh: phpize: not found
ERROR: `phpize’ failed
The PECL_HTTP extension requires an additional dependency package to be installed. You can probably skip this for other extensions:
sudo apt-get install libcurl3-openssl-dev
Now we are finally ready to actually install the extension. From a shell prompt enter following but substitute “pecl_http” with the PECL extension name you are installing:
sudo pecl install pecl_http
The installer may ask you about some specific options for the extension you are installing. You can probably just hit enter one or more times to accept all the defaults unless you want to set specific options for your implementation. If all goes well, the module should download, build, and install.
Once the install is complete, it will probably ask you to add a “extension=” line to your php.ini file. Open up the php.ini file in your favorite text editor and add the line under the section labeled “Dynamic Extensions”. On Ubuntu the php.ini file seems to be located in the /etc/php5/apache2 folder:
sudo nano /etc/php5/apache2/php.ini
In this example, the pecl_http extension install asked me to add “extension=http.so”.
Now that the php.ini file has been updated, Apache will need to be restarted so the new extension will be loaded:
sudo /etc/init.d/apache2 restart