開発を行っているwindows機で
php5.6と php7.2 を一つのapacheで動かそうと目論んでいます。
どっちもモジュール版のPHPです。
httpd.confをいじくって
http://localhost7で呼び出したときは php7.2
それ以外のホスト名(http://localhost等)で呼び出したときは php5.6で動かす
というのが目標で、PHPのバージョンを分けるところまではできました。
(phpinfo()で確認した)
本題はここからです。
phpの使い分けはできるようになったのですが
php.iniをそれぞれ別のものを読ませたいのにうまくいきません。
http://php.net/manual/ja/configuration.file.php
php.iniのパスなどについては↑を見ました。
・httpd.confのPHPINIDirは削除する
ここに書いた指定が一番強く、5と7両方に適用されると思われるため
・レジストリに手を加える
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\5.6
というキーを作成し文字列 IniFilePath に c:/xampp/php56 といれる
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\7.2
というキーを作成し文字列 IniFilePath に c:/xampp/php72 といれる
php.iniに対する設定としてはこのような事おこないApacheの再起動をしました。
でも、
phpinfo()の結果は 5も7も
Configuration File (php.ini) Path C:\Windows
Loaded Configuration File (none)
となります。
この結果の Configuration File (php.ini) Path を見る限りだと
レジストリキーの設定方法について勘違いをしているような気がしますが
値をディレクトリではなく直接php.iniファイルにしてみたり
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\7.2に直接パスを入れてみたりしましたが
Configuration File (php.ini) Path C:\Windows
Loaded Configuration File (none)
のままです。
また、httpd.confのPHPINIDirに c:/xampp/php といれてみたところ
Configuration File (php.ini) Path C:\Windows
Loaded Configuration File c:/xampp/php/php.ini
となりました。
これも少し違和感があって
php.iniは意図したものを読めているものの
Configuration File (php.ini) Pathが示す結果は意図しないものではないかと思います。
少し質問点がぼやけてしまいましたが
・まず、レジストリキーの設定でバージョンごとにphp.iniを分けたい
・Configuration File (php.ini) Pathの値が変わらないのはなぜか
この2点について教えていただければと思います。
※・Configuration File (php.ini) Path についてはコンパイル時に決定された値が表示されるので、あとからの設定などが表示されることはないとの回答をいただきました。ありがとうございます。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/06 06:49
2017/10/06 07:02
2017/10/06 07:26
2017/10/06 08:35
2017/10/06 10:14