4

I have set up local server in my laptop (Windows 10 Home Single Language 64 bit Version 1803).

I have downloaded and manually installed apache24, php7, MySQL, phpMyAdmin and wordpress by following this tutorial.

I am trying to enable cURL and so in the php.ini file i have changed

;extension=curl

to

extension=curl

I have restarted the apache server. After that I run the following code at localhost/curl_enable.php to check whether cURL is enabled.

<?php
 echo 'Curl: ', function_exists('curl_version') ? 'Enabled' . "\xA" : 'Disabled' . "\xA";
 ?>

But it still shows

Curl: Disabled

So have I missed any step. How to enable cURL in my system?

Aniruddh
  • 188
  • 5
  • 24

2 Answers2

4

Here is the steps to enable curl on Windows :

...
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "C:\PathToMyPhp\ext"

...

extension=php_curl.dll

...

[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = C:\PathToMyFile\cacert.pem

1 - Make sure your extension_dir point to the php extension directory.

2 - uncomment or add the extension .dll name .

Here is the right syntax by convention for php extensions : php_nameOfTheExtension.dll

The .dll are placed in the extension directory of php or you must place it here in case of 3rd party download.

3 - cacert.pem is optional and is used for SSL transactions.

Download here : https://curl.haxx.se/docs/caextract.html

4 - Check with phpinfo() if curl is in the list and check the configuration.

5 - In case of error, check the error.log and access.log of Apache

Edit 1 :

6 - I forgot : add the paths of your php directory to the Windows Environment PATH Variable for .dll dependencies.

Question/Response here : Enable CURL on Windows For PHP5.6.4

Edit 2 : Here is the path for the files :

Depending on MySQL installation & version

C:\Program Files\MySQL\MySQL Server 8.0\bin\libeay32.dll

C:\Program Files\MySQL\MySQL Server 8.0\bin\ssleay32.dll

Depending on your php directory

C:\php7\libssh2.dll

Edit 3 :

Example of extensions configuration with the right syntax taken from PHP5 but working also for PHP7 :

; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
; extension folders as well as the separate PECL DLL download (PHP 5+).
; Be sure to appropriately set the extension_dir directive.
;
;extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
;extension=php_ftp.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
;extension=php_odbc.dll
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll

; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=php_snmp.dll

;extension=php_soap.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
extension=php_xsl.dll

zend_extension="C:\php-7.1.22\ext\php_opcache.dll"
zend_extension="C:\php-7.1.22\ext\php_xdebug-2.6.1-7.1-vc14-x86_64.dll"

Hope this will help.

Shim-Sao
  • 2,026
  • 2
  • 18
  • 23
  • this is the path to my extentions C:\apache\php\ext it does contain a file php_curl.dll but as i mentioned in the question I have downloaded php7 and in the php.ini file it contains only exension=curl and I have already added the path to windows environment. I am not generating any error but only thing I am getting is curl is disabled. – Aniruddh Nov 09 '18 at 06:34
  • Ok. I see the problem. It's a complete error of the php.ini delivered files for Windows. I use the same .ini for each my php installation since few years and I never see that all extensions are now written like this "exension=curl" and not like this "exension=php_curl.dll". So I don't know if it's work like this but apparently not. Override your "extention= name" by "extension=php_curl.php" and all extensions must work. I use that since few years and all its fine for me PHP5/PHP7 all versions. I also edit my post to find the 3 external required dll. – Shim-Sao Nov 09 '18 at 11:59
  • Sorry "extension=php_curl.dll" :) – Shim-Sao Nov 09 '18 at 12:04
  • thanks it worked after adding libssh2.dll to the path thanks for the help – Aniruddh Nov 09 '18 at 13:01
0

I had the same problem with wamp 3.1.9, php 7.3.7

The solution was to replace the php_curl.dll in ext folder with a file from a previous PHP 7.3.1 version.

Mulli
  • 1,598
  • 2
  • 22
  • 39