httpd.conf中已進行以下設定
LoadModule php_module "D:\php\php8apache2_4.dll" <ifModule php_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps </ifModule> PHPIniDir "D:/php"
在php.ini中開啟curl、mbstring、gd、openssl模組,用php -S <host> 來提供web服務的話,在phpinfo中可以看到這些模組被載入。
但用Apache來提供web服務的話,phpinfo沒有顯示這些模組被載入。
用下面程式碼來測試,Apache下會顯示「沒有gd“,即表示沒有載入gd功能。
function checkRequirements() { if (extension_loaded('gd')) { $gdInfo = gd_info(); if (!empty($gdInfo['FreeType Support'])) { echo "gd成功"; return 'gd'; } }else{ echo "没有gd"; } } checkRequirements();
把php8換成php7.4情況是一樣的。
求助是什麼?
找到原因了,是php.ini裡面沒有正確配置extension_dir,要把預設的ext改為絕對路徑。否則Apache會報載入不成功。