人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windowsのmemcacheで質問です。
コマンドラインで、php -mを実行すると、上記が含まれてるのですが、ブラウザでphpinfo()を実行すると含まれてません。
これはどう対応すればよいのでしょうか?

●質問者: makocan
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

質問者から

補足ですが、php.iniに加え、Apacheも再起動してます。


1 ● rouge_2008
●300ポイント ベストアンサー

コマンドライン版とサーバー版のPHPで、読み込んでいる設定ファイル「php.ini」が違うのかもしれません。
コマンドラインで「php --ini」を実行し、「phpinfo()」の結果の「Loaded Configuration File」と比較してみてください。


・PHP: PHP 拡張モジュールの Windows へのインストール - Manual
http://php.net/manual/ja/install.pecl.windows.php

しかし、ウェブサーバーによっては少し迷うことがあるかもしれません。 というのも、php.ini が PHP 実行ファイルとは別の場所にあることもあるからです。 実際に使われている php.ini の場所を見つけるには、 phpinfo() で次のような行を探します。

Configuration File (php.ini) Path C:\WINDOWS

Loaded Configuration File C:\Program Files\PHP\5.2\php.ini




上記がコマンドライン(Cli)版とサーバー版で異なっていた場合、サーバーのPHPがモジュール版PHPの場合はApacheの設定ファイル「httpd.conf」等に「php.ini」の場所を指定する記述を追加します。

PHPIniDir "Cli版のPHPが参照している「php.ini」のディレクトリまでのパス"

※ブロック内ではない場所に記述します。

・php.iniの配置場所の指定(PHPIniDir)
http://www.adminweb.jp/apache/php/index3.html


CGI版のPHPの場合、本体と同じ位置にある「php.ini」を自動的に読み込みますので、そちらの「php.ini」にモジュール読み込みの記述を追加します。
※モジュール版PHPの場合も上記の設定を行わず、「Loaded Configuration File」で確認した「php.ini」に設定し直しても良いと思います。
どちらでも好きな方法を試してみてください。(どちらのPHPも頻繁に利用する場合は、同一の設定ファイルを参照するようにした方がいいと思います。)


【※ 追記 ※】

PHP実行ファイル(「php.exe」等)がCli版とCGI版で違う場所にある場合、Cli版やCGI版ではコンパイル後に設定ファイルの場所を変更指定をする事はできないと思いましたので、「C:\WINDOWS」に「php.ini」をコピー移動(あるいはコピーして元ファイルは名前変更)して、同じ設定ファイルを参照するようにしてみてください。(※Cli版およびCGI版では、PHP実行ファイルと同じディレクトリの「php.ini」が優先されます。)
あるいはWindowsの環境変数を変更して、Cli版のPHPをサーバー版と同じディレクトリにあるPHPを利用するようにしても良いと思います。


【※ 追記 ※】

さらに追記します。
「php.ini」の場所に問題がない場合は、「extension_dir」の設定値を確認してみてください。
「extension_dir = "ext"」のようにフォルダ名だけ指定してある場合、Cli版やCGI版からは正常に使用できても、モジュール版では認識できない事もあるようです。
「extension_dir = "C:\php\ext"」のようにパスを指定すると正常に認識されます。


makocanさんのコメント
間抜けでした。 仰るとおりでした。ありがとうございます!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ