win10 Apache24+PHP8.0,Apache不能正常加載php.ini。
問題描述
httpd.conf中已進行以下配置
LoadModule php_module "D:phpphp8apache2_4.dll"<ifModule php_module>AddType application/x-httpd-php .phpAddType 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情況是一樣的。
求助是什么回事?
問題解答
回答1:找到原因了,是php.ini里沒有正確配置extension_dir,要把默認的ext改為絕對路徑。否則Apache會報加載不成功。
