【问题标题】:PHP cURL not loading correctly in Apache on WindowsPHP cURL 无法在 Windows 上的 Apache 中正确加载
【发布时间】:2016-11-14 19:50:33
【问题描述】:

我最近从头开始设置了 apache+php+mysql,除了 PHP 的 cURL、imap 和 interbase 扩展之外,一切似乎都运行良好

ext 目录包含所有必要的 dll,包括 php_curl.dll 和其他提到的扩展,但是,在错误日志中,以下内容将出现

PHP Warning:  PHP Startup: Unable to load dynamic library 'B:/XServ/host/php/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 'B:/XServ/host/php/ext\\php_intl.dll' - The specified module could not be found.\r\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'B:/XServ/host/php/ext\\php_interbase.dll' - The specified module could not be found.\r\n in Unknown on line 0
[Tue Jul 12 19:16:07.025738 2016] [mpm_winnt:notice] [pid 2100:tid 344] AH00354: Child: Starting 64 worker threads.

您可能已经注意到,后面有两个反斜杠,而不是一个正斜杠。

另外,这是我的 php.ini 的 sn-p

extension_dir = "B:/XServ/host/php/ext"

extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.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_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

所有其他扩展都可以正常工作。

我在 Windows 8.1、Apache 2.4.23、PHP 7.0.8 上

有什么解决办法吗?

【问题讨论】:

  • 尝试在资源管理器地址栏输入B:/XServ/host/php/ext,可以访问吗?
  • 是的,我可以访问它。

标签: php apache curl


【解决方案1】:

您可能想先测试PHP

您是否尝试在控制台上运行php -v?即使extension_dir具有正确的路径,它也会返回为什么它无法加载指定模块的确切错误。

libCurl 需要文件libssh2.dll。因此,要解决它,请尝试以下操作:

libssh2.dll 文件从 PHP 目录复制到 Apache 的 BIN 目录(与 httpd.exe 相同的位置)

在您的 httpd.conf 文件中,添加此 `LoadFile B:/XServ/host/php/libssh2.dll

【讨论】:

  • 您可能还需要替换 apache 的 bin 目录中的 nghttp2.dll,就像 PHP 7.2.2 一样
【解决方案2】:

cURL 和 Windows 从来都不是幸福的一对,你需要一个扩展,去

http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/

并在“Fixed curl extensions”下下载与您的 PHP 版本相对应的 cURL 版本,然后替换 ext 文件夹中的 php_curl.dll

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-26
    • 2013-02-06
    • 2016-11-11
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    相关资源
    最近更新 更多