簡體   English   中英

Apache 未加載 PHP 擴展

[英]Apache isn't loading PHP extensions

我安裝(手動)Apache 和 PHP。 我從 php.ini 激活了 curl 擴展,它在 PHP-CLI 中運行良好,但是當我在 Apache 的幫助下通過瀏覽器訪問 PHP 時,curl(和任何其他)擴展給了我“{extension_function} 未定義”的錯誤

PHP 7.2-64bit

阿帕奇2.4

// php.ini
extension_dir = "/server/php/ext"
...
extension=bz2
extension=curl
extension=fileinfo
;extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=interbase
;extension=ldap
;extension=mbstring
;extension=exif      ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
;extension=odbc
extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=shmop

// httpd.conf    
LoadModule php7_module "/server/php/php7apache2_4.dll"
<IfModule php7_module>
    AddHandler application/x-httpd-php .php
    AddType application/x-httpd-php .php .html
    PHPIniDir "/server/php"
</IfModule>

更新

我正在測試使用這個var_dump(function_exists('curl_init')); 代碼行...當我從 php-cli 運行這一行時,它返回 true。 當我使用瀏覽器從 php 文件運行這一行時,它返回 false。

來自 PHP-CLI

從瀏覽器

PHP文件

錯誤

解決了

  1. 我到處都使用絕對路徑(沒有相對路徑)(使用正斜杠)
  2. 將 PHP 添加到環境變量中。 我不知道為什么,但沒有這個擴展就無法加載。 我認為 Apache 的 php7 模塊在環境中需要 php。
  3. 重新啟動計算機(Apache 重新啟動不起作用)

我希望有人會發現這很有幫助。

感謝您的幫助。

我有同樣的問題 - 在 Windows 上。 將擴展目錄的路徑更改為絕對路徑后,它起作用了。

正如默認的 php.ini 中所建議的(不工作):

extension_dir = "ext"

變成絕對路徑(工作)

extension_dir = "c:\amp\php\ext"

奇怪的是,這個問題只出現在某些機器/版本上。 無法確定。 這里列出了一個官方錯誤:

https://bugs.php.net/bug.php?id=74866

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM