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会报加载不成功。