知りたいこと
- phpはphp.ini無しで動くのか
- php.iniの読み込みはApacheのPHPINIDirのパスを通せば読み込むようになるか(他に必要な作業はありますか)
- Apacheに自動でphp.iniを検出して読み込む機能はありますか
実現したいこと
Windows OS上でApacheとPHPをインストールし、自分で作成したphp.iniファイルを使ってPHP実行環境を構築したい
前提
- Windows 11
- PHP 8.2.2
- httpd-2.4.55
発生している問題・エラーメッセージ
どのphp.ini
を読み込んでいるかわからない
https://www.javadrive.jp/apache/
https://www.javadrive.jp/php/
上記の記事を参考にApache、PHPをインストールし、PHPを動かすための準備をしていました
ApaheからPHPを利用できるように設定する
の設定を終え、とりあえずphpinfo()
をブラウザで確認できましたが、php.iniファイルの作成と初期設定
で設定した内容が全く反映されていませんでした
該当のソースコード
反映されない具体的な例は
php.ini
の設定元である「Configuration File (php.ini) Path」「Loaded Configuration File」が (none)もしくは no value
- extension_dirが
php.ini
で設定したパスじゃないphp.ini
では"./"
を指定(エラーが発生すると思って変更してみた)
; Directory in which the loadable extensions (modules) reside. ; https://php.net/extension-dir extension_dir = "./" ; On windows: ; extension_dir = "ext" ; [updated] ; extension_dir = "C:/php/ext"
- mbstringの拡張モジュールが有効になっていない
;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; ... ... extension=mbstring
試したこと
php.ini
を削除してもPHPは動く(ブラウザでphpinfo()
の結果が出力される)- Apacheのhttpd.confで
PHPINIDir "C:/php/"
を設定するとブラウザで出力されなくなる- 検証ツールでは200 OKのレスポンスが返ってきており、ネットワーク→レスポンスを見るとソースコードだけが返ってきています(PHPがコンパイされずに実行されていない、ってことでしょうか)
<? phpinfo(); ?>
補足情報(FW/ツールのバージョンなど)
各サービスのパスを記載します
- PHP... C:\php\
- php8apache2_4.dll... C:\php\php8apache2_4.dll
- php.ini... C:\php\php.ini
- Apache... C:\Apache\Apache24
- httpd.conf... C:\Apache\Apache24\conf\httpd.conf
「ここ怪しいんじゃない?」
「これやってないんじゃない?」
みたいなポイントでもいいので指摘いただけると嬉しいです。
よろしくお願いします。

回答2件
あなたの回答
tips
プレビュー