How to fix PHP Warning: PHP Startup: Unable to load dynamic library 'ext\\php_curl.dll'?

131,988

Solution 1

As Darren commented, Apache don't understand php.ini relative paths in Windows.

To fix it, change the relative paths in your php.ini to absolute paths.

extension_dir="C:\full\path\to\php\ext\dir"

Solution 2

Use absolute path:

extension_dir="C:\full\path\here"

Solution 3

If you are using laragon open the php.ini

In the interface of laragon menu-> php-> php.ini

when you open the file look for ; extension_dir = "./"

create another one without **; ** with the path of your php version to the folder ** ext ** for example

extension_dir = "C: \ laragon \ bin \ php \ php-7.3.11-Win32-VC15-x64 \ ext"

change it save it

Solution 4

  1. Check if compatible Mysql for your PHP version is correctly installed. (eg. mysql-installer-community-5.5.40.1.msi for PHP 5.2.10, apache 2.2 and phpMyAdmin 3.5.2)
  2. In your php\php.ini set your loadable php extensions path (eg. extension_dir = "C:\php\ext") (https://drive.google.com/open?id=1DDZd06SLHSmoFrdmWkmZuXt4DMOPIi_A)
  3. (In your php\php.ini) check if extension=php_mysqli.dll is uncommented (https://drive.google.com/open?id=17DUt1oECwOdol8K5GaW3tdPWlVRSYfQ9)
  4. Set your php folder (eg."C:\php") and php\ext folder (eg."C:\php\ext") as your runtime environment variable path (https://drive.google.com/open?id=1zCRRjh1Jem_LymGsgMmYxFc8Z9dUamKK)
  5. Restart apache service (https://drive.google.com/open?id=1kJF5kxPSrj3LdKWJcJTos9ecKFx0ORAW)

Solution 5

maybe useful for somebody, I got next problem on windows 8, apache 2.4, php 7+.

php.ini conf>

extension_dir="C:/Server/PHP7/ext"

php on apache works ok but on cli problem with libs loading, as a result, I changed to

extension_dir="C:/server/PHP7/ext"
Share:
131,988
Jaylen
Author by

Jaylen

Updated on July 10, 2022

Comments

  • Jaylen
    Jaylen almost 2 years

    I currently have PHP 5.5.12 and Apache 2.4 installed on Windows Server 2008 R2. Everything is running perfectly with no issue/warnings.

    What I have done is copied the same Apache file/configuration to another server. I copied the C:\PHP directory and then the C:\Apache24 directory and pasted them into the new server.

    Then I installed the Apache with one change (ie httpd -k install.) I changed the port number from 80 to 8877. The Apache is working with no issue and it is running on the 8877 port. I can also open the default page by going to SERVER_IP_ADDRESS:8877 and it works.

    But, PHP is not working as it should. In the error.log file from the Apache server I get the warning listed below

    PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\\php_curl.dll' - The specified module could not be found.\r\n in Unknown on line 0
    PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\\php_ldap.dll' - The specified module could not be found.\r\n in Unknown on line 0
    PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\\php_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0
    PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\\php_mysqli.dll' - The specified module could not be found.\r\n in Unknown on line 0
    PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\\php_openssl.dll' - The specified module could not be found.\r\n in Unknown on line 0
    PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\\php_pdo_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0
    PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\\php_sqlsrv_55_ts.dll' - The specified module could not be found.\r\n in Unknown on line 0
    PHP Warning:  PHP Startup: Unable to load dynamic library 'ext\\php_pdo_sqlsrv_55_ts.dll' - The specified module could not be found.\r\n in Unknown on line 0
    

    I can't seem to figure out why I get this error? All the .dll files that the warning is stating "The specified module could not be found" do exists in the C:\PHP\ext directoryphp

    The PHP extensions are located in

    C:\php\ext
    

    Inside the file php.ini I have this variable

    extension_dir = "ext"
    

    here is a directory listing of the ext folder

     Volume in drive C is OS
     Volume Serial Number is C63C-1D75
    
     Directory of C:\php\ext
    
    07/29/2014  06:42 PM    <DIR>          .
    07/29/2014  06:42 PM    <DIR>          ..
    04/30/2014  02:46 PM            66,560 php_bz2.dll
    04/30/2014  02:46 PM            72,704 php_com_dotnet.dll
    04/30/2014  02:46 PM           507,392 php_curl.dll
    04/30/2014  02:46 PM            18,944 php_enchant.dll
    04/30/2014  02:46 PM            43,008 php_exif.dll
    04/30/2014  02:46 PM         2,679,808 php_fileinfo.dll
    04/30/2014  02:46 PM         1,358,848 php_gd2.dll
    04/30/2014  02:46 PM            40,960 php_gettext.dll
    04/30/2014  02:46 PM           240,128 php_gmp.dll
    04/30/2014  02:46 PM           831,488 php_imap.dll
    04/30/2014  02:46 PM            65,024 php_interbase.dll
    04/30/2014  02:46 PM           261,632 php_intl.dll
    04/30/2014  02:46 PM           179,200 php_ldap.dll
    04/30/2014  02:46 PM         1,239,552 php_mbstring.dll
    04/30/2014  02:46 PM            36,864 php_mysql.dll
    04/30/2014  02:46 PM            88,576 php_mysqli.dll
    04/30/2014  02:46 PM           141,824 php_oci8.dll
    04/30/2014  02:46 PM           142,336 php_oci8_11g.dll
    04/30/2014  02:46 PM           120,320 php_opcache.dll
    04/30/2014  02:46 PM            72,704 php_openssl.dll
    04/30/2014  02:46 PM            21,504 php_pdo_firebird.dll
    04/30/2014  02:46 PM            24,576 php_pdo_mysql.dll
    04/30/2014  02:46 PM            23,040 php_pdo_oci.dll
    04/30/2014  02:46 PM            20,480 php_pdo_odbc.dll
    04/30/2014  02:46 PM            27,648 php_pdo_pgsql.dll
    04/30/2014  02:46 PM           465,408 php_pdo_sqlite.dll
    08/28/2012  04:15 PM           186,520 php_pdo_sqlsrv_54_ts.dll
    06/26/2013  03:22 PM           166,400 php_pdo_sqlsrv_55_ts.dll
    04/30/2014  02:46 PM            90,112 php_pgsql.dll
    04/30/2014  02:46 PM            12,288 php_shmop.dll
    04/30/2014  02:46 PM           385,536 php_snmp.dll
    04/30/2014  02:46 PM           236,544 php_soap.dll
    04/30/2014  02:46 PM            54,784 php_sockets.dll
    04/30/2014  02:46 PM           617,472 php_sqlite3.dll
    08/28/2012  04:15 PM           204,952 php_sqlsrv_54_ts.dll
    06/26/2013  03:22 PM           183,296 php_sqlsrv_55_ts.dll
    04/30/2014  02:46 PM            31,744 php_sybase_ct.dll
    04/30/2014  02:46 PM           236,544 php_tidy.dll
    04/30/2014  02:46 PM            51,712 php_xmlrpc.dll
    04/30/2014  02:46 PM           231,936 php_xsl.dll
                  40 File(s)     11,480,368 bytes
                   2 Dir(s)  83,103,895,552 bytes free
    

    When I try to access the website I get this error

    Fatal error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

    which is because the extensions are not loaded.

    I am assuming that the configuration are correct since the same configuration are working on a different server.

    How can I fix this PHP Startup issue?