Tuesday, 12 August 2014

Enabling CURL in PHP (PHP.ini, WAMP, XAMPP, Ubuntu)

Enabling php_curl in PHP
In this quick tip tutorial we’re looking at how to enable CURL in PHP. I’ve included a number of different options as it may be different depending on what your running.

What is CURL?

CURL is a library created by Daniel Stenberg that allows you to connect and communicate via a variety of different protocols such as HTTP, HTTPS, FTP, Telnet etc
I personally use cURL as an alternative to file_get_contents(URL) to get web content as it provides better performance and additional functionality and flexibility.

Why doesn’t CURL work on my computer?

By default CURL isn’t enabled in Apache and therefore trying to make a CURL call won’t work until you’ve enabled it.

CURL Error Message

If curl isnt running and your trying to run it In php you’ll more than likely be Seeing an error message like : “Fatal error: Call to undefined function curl_init()”
Right, now we’ve covered that lets get cURL working!

How to enable CURL in Apache

There are a few ways I found to go about enabling CURL in apache. The one you choose will depend on what OS your running and which flavour of Apache you’ve got.
Hopefully one of these should sort you out:

Option 1 : enable CURL via the php.inI

This is the main method on any windows install like WAMP, XAMPP etc
  1. Locate  your PHP.ini file
    (normally located at in the bin folder of your apache install e.g.
  2. Open the PHP.ini in notepad
  3. Search or find the following : ‘;extension=php_curl.dll’
  4. Uncomment this by removing the semi-colon ‘;’ before it
  5. Save and Close PHP.ini
  6. Restart Apache
Location of php.ini - click to enlarge
Location of php.ini - click to enlarge

Option 2: Enabling CURL in WAMP

  1. Left-click on the WAMP server icon in the bottom right of the screen
  2. PHP -> PHP Extensions -> php_curl

Option 3: enable CURL in Ubuntu

Run the following command:
sudo apt-get install php5-curl
sudo service apache2 restart

How to Make sure CURL is enabled and running


phpinfo() output in WAMP
Option 1: Use the phpinfo() command to output PHP’s configuration and look for curl support under the listed environment variable/modules

Option 2: Create and run a simple PHP  script like the following:
// reinitialize curl resource
$ch = curl_init();// set url
curl_setopt($ch, CURLOPT_URL, ”domain.com”);
//return the as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// echo output string
$output = curl_exec($ch);
echo $output;
        // close curl resource to free up system resources
curl_close($ch);
Option 3: On a unix machine type the following command:
php -i | grep curl
That’s it. Your done!

2 comments:

  1. Hi, perfect content.

    1. CakePHP shopping cart and CMS development, and Payment gateway integration.
    2. CakePHP customization, maintenance, integration and upgradation.
    3. CakePHP extendibles and applications for faster E-Commerce growth and profitability.

    Features of CakePHP
    CakePHP Web Development
    CakePHP Portal Development

    ReplyDelete
  2. Excellent article. Very interesting to read. I really love to read such a nice article. Thanks! keep rocking.Ruby on Rails Online Training Bangalore

    ReplyDelete