次の構成は 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 これらのモジュールがロードされていることがわかります。
しかし、Web サービスの提供に 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 で extension_dir が正しく設定されていません。デフォルトの ext を絶対パスに変更する必要があります。それ以外の場合、Apache はロードが失敗したことを報告します。