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에서 컬, mbstring, gd, openssl 모듈을 열고 php -S <host>를 사용하여 웹 서비스를 제공하는 것을 확인할 수 있습니다. 모듈이 로드되었습니다.
그러나 Apache를 사용하여 웹 서비스를 제공하는 경우 phpinfo는 이러한 모듈이 로드되었음을 표시하지 않습니다.
다음 코드를 사용하여 테스트하세요. Apache는 "No 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에서 확장 디렉터리가 올바르게 구성되지 않았습니다. 기본 확장자를 절대 경로로 변경해야 합니다. 그렇지 않으면 Apache는 로딩에 실패했다고 보고합니다.