Windowsのmemcacheで質問です。

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

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/02/14 01:12:21
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
id:makocan

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

ベストアンサー

id:rouge_2008 No.1

回答回数595ベストアンサー獲得回数351

ポイント300pt

コマンドライン版とサーバー版の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"」のようにパスを指定すると正常に認識されます。

id:makocan

間抜けでした。
仰るとおりでした。ありがとうございます!

2015/02/14 01:12:16

その他の回答0件)

id:rouge_2008 No.1

回答回数595ベストアンサー獲得回数351ここでベストアンサー

ポイント300pt

コマンドライン版とサーバー版の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"」のようにパスを指定すると正常に認識されます。

id:makocan

間抜けでした。
仰るとおりでした。ありがとうございます!

2015/02/14 01:12:16

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません