How to enable cURL in PHP?

Often, web applications require HTTP based UserID and Password authentication, cookies, and form uploads. Even, user authentication with Google or Facebook sign-in is done via HTTP. In these types of cases, we need to request a particular service server(Like Google’s) for user validation and authentication token on our server. The entire process takes place through the service server’s APIs. The cURL helps our web applications to interact/communicate with those APIs on the HTTP level.

cURL: It is a library created by Daniel Stenberg. The cURL stands for client URL. It allows us to connect with other URLs and use their responses in our code. The cURL is a way that can hit a URL from our code to get an html response from it. The cURL is also used in command lines or scripts for data transfer. cURL with respect to PHP is a library that lets us make HTTP requests in PHP. It’s easier to do GET/POST requests with curl_exec to receive responses from other servers for JSON format data response and to download files.

Required to “enable” cURL: The cURL, by default, is not enabled in Apache. If we try to run CURL programs without enabling CURL in Apache, the browser will throw an error.

Fatal error: Call to undefined function curl_init()

.
To avoid this, we need to enable the CURL extension in the Apache server with the following methods in different environments.

Enable CURL in Apache: Enabling CURL in Apache by configuring php.ini file.



  • Step 1: Locate PHP.ini file, it is mostly in the server’s root folder or public_html then open the PHP.ini in a text editor
  • Step 2: Search or find the ;extension=php_curl.dll with Ctrl+F and remove the semi-colon ‘;’ before it to activate it.
  • Step 3: Save and Close PHP.ini with Ctrl+S and restart Apache from terminal/CMD

Enabling cURL in WAMP: WAMP is a software stack available for Windows that bundle Apache, MySQL, and PHP together. It’s an installation pack for installing the three web technologies on the Windows environment together in a hassle-free GUI guided fashion.

  • Step 1: Left-click on the WAMP server icon in the bottom right of the screen.
  • Step 2: PHP -> PHP Extensions -> curl.

Enabling CURL in Ubuntu: Run the following command:

  • This command installs the PHP CURL.
    sudo apt-get install php5-curl
  • This command starts with the Apache server.
    sudo service apache2 restart

Check if CURL is enabled or not: If we try to run a cURL PHP program without cURL being enabled, the browser will throw the following error.

  • Example:
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    <?php
            // Create curl resource
            $ch = curl_init();
      
            // set url
            curl_setopt($ch, CURLOPT_URL, "https://www.geeksforgeeks.org/");
      
            // Return the transfer as a string
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      
            // $output contains the output string
            $output = curl_exec($ch);
      
            echo $output;
      
            // Close curl resource to free up system resources
            curl_close($ch);     
    ?>

    chevron_right

    
    

  • Output: This page of GeekforGeeks is now rendered on my localhost running the Apache server. The HTML content is “echoed” as the output.
My Personal Notes arrow_drop_up

Always a learner

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.