Die folgenden Konfigurationen wurden in httpd.conf vorgenommen
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"
Öffnen Sie die Module „curl“, „mbstring“, „gd“ und „openssl“ in php.ini und verwenden Sie php -S <host>. Sie können in phpinfo sehen, dass diese Module sind geladen.
Aber wenn Apache zur Bereitstellung von Webdiensten verwendet wird, zeigt phpinfo nicht an, dass diese Module geladen sind.
Verwenden Sie zum Testen den folgenden Code. Apache zeigt „No gd“ an, was bedeutet, dass die gd-Funktion nicht geladen ist.
function checkRequirements() { if (extension_loaded('gd')) { $gdInfo = gd_info(); if (!empty($gdInfo['FreeType Support'])) { echo "gd成功"; return 'gd'; } }else{ echo "没有gd"; } } checkRequirements();
Die Situation ist die gleiche, wenn PHP8 durch PHP7.4 ersetzt wird.
Was bringt es, um Hilfe zu bitten?
找到原因了,是php.ini里没有正确配置extension_dir,要把默认的ext改为绝对路径。否则Apache会报加载不成功。