Windows7 x64 で php.ini が読み込まれない

Windows7 x64 で php.ini が読み込まれない

これまでは問題なく PHP を手動で構成していました。現在、Windows 7 x64 上で PHP 5.3.1 を使用して開発環境をセットアップしようとしていますが、php.ini ファイルが読み込まれません。

私は Win7 と 64 ビット OS の両方を初めて使用するので、何か見落としているものがあるかもしれません。ああ...これは VM (VMWare Player) でも実行されていますが、それがどのような違いをもたらすかはわかりません。

PHPRC 環境変数を "c:\php\" を指すように設定し、IniFilePath レジストリ キー (HKLM/Software/PHP と HKLM/Software/Wow6432Node/PHP の両方) を "c:\php" に設定し、php.ini を c:\windows にコピーしましたが、"php -info" では次のように表示されます。

Configuration File (php.ini) Path => C:\Windows
Loaded Configuration File => (none)

c:\Windows\php.ini の「Everyone」の読み取りアクセスを設定してみましたが、効果はありませんでした。

誰かこれを理解するのを手伝ってくれませんか? よろしくお願いします! 以下は「php -info」からの最初の出力です...

phpinfo()
PHP Version => 5.3.1

System => Windows NT DEV 6.1 build 7600 ((null)) i586
Build Date => Nov 19 2009 09:48:59
Compiler => MSVC9 (Visual C++ 2008)
Architecture => x86
Configure Command => cscript /nologo configure.js  "--enable-snapshot-build" "--
enable-debug-pack" "--disable-zts" "--disable-isapi" "--disable-nsapi" "--with-p
do-oci=D:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=D:\php-sdk\ora
cle\instantclient10\sdk,shared" "--with-oci8-11g=D:\php-sdk\oracle\instantclient
11\sdk,shared" "--with-enchant=shared" "--enable-object-out-dir=../obj/"
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => C:\Windows
Loaded Configuration File => (none)
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)
PHP API => 20090626
PHP Extension => 20090626
Zend Extension => 220090626
Zend Extension Build => API220090626,NTS,VC9
PHP Extension Build => API20090626,NTS,VC9
Debug Build => no
Thread Safety => disabled
Zend Memory Manager => enabled
Zend Multibyte Support => disabled
IPv6 Support => enabled
Registered PHP Streams => php, file, glob, data, http, ftp, zip, compress.zlib,
phar
Registered Stream Socket Transports => tcp, udp
Registered Stream Filters => convert.iconv.*, string.rot13, string.toupper, stri
ng.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.*

答え1

Windows 7では、設定ファイルをc:\windowsの下に置くのはよくありません。

PHP.INIをPHPインストールディレクトリに置き、ガイドライン(http://www.iis-aid.com/articles/how_to_guides/where_php_ini_is_loaded_from)を使用して、PHP.EXEにPHP.INIの場所を指示します。

答え2

何度も試行錯誤した結果、私はついにいくつかのことを理解しました。

  1. ロードされなかった主な理由は、ハンドラー マッピング リクエスト制限を間違えて、リクエストがフォルダーにマップされた場合にのみハンドラーを呼び出すように誤って設定していたことです。これにより、HTTP リクエストに応答して PHP がまったく実行されなくなりました。これを修正したので、phpinfo() は c:\php フォルダーから php.ini をロードしていることを返します。

  2. コマンドラインから「php.exe -info」を実行すると「Loaded Configuration File => (none)」と表示される理由がまだわかりません。正しい INI ファイルをロードするために考えられるすべての方法を試しましたが、何も機能しませんでした。

答え3

読み込まれた構成ファイルが表示 (なし) されていることがわかりました。権限により、ユーザーがアクセスできないようになっています...

権限を変更してみてください...

関連情報