PHP.iniファイルのinclude_pathの設定で質問があります。

OSはMac OSX10.4でXAMPPを使用しています。

include_pathを以下のように設定しました。
include_path=".:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear:/Applications/XAMPP/xamppfiles/lib/php/smarty/libs"
しかし、3つ目のpathが認識されていないようです。
phpinfoで確認しても、2つ目までしか認識していませんでした。

apacheを再起動したのですが、それでも反映されません。
この場合、どのように対処したらよいのでしょうか?

ご教授、よろしくお願い致します。

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

ベストアンサー

id:deflation No.1

回答回数1036ベストアンサー獲得回数126

ポイント23pt

下記のように、末尾をコロン : で締めくくってみてください。

include_path=".:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear:/Applications/XAMPP/xamppfiles/lib/php/smarty/libs:"
id:pmvct

早速のお返事有り難うございます。

末尾にコロンをつけてみましたが、ダメでした・・・。

Apacheも再起動したのですが。

なぜなんでしょうか・・・。

2011/01/22 16:07:41

その他の回答3件)

id:deflation No.1

回答回数1036ベストアンサー獲得回数126ここでベストアンサー

ポイント23pt

下記のように、末尾をコロン : で締めくくってみてください。

include_path=".:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear:/Applications/XAMPP/xamppfiles/lib/php/smarty/libs:"
id:pmvct

早速のお返事有り難うございます。

末尾にコロンをつけてみましたが、ダメでした・・・。

Apacheも再起動したのですが。

なぜなんでしょうか・・・。

2011/01/22 16:07:41
id:deflation No.2

回答回数1036ベストアンサー獲得回数126

ポイント23pt

"/Applications/XAMPP/etc/php.ini" を編集しましたか?

ご確認ください。


Apacheをどのような手順で再起動したか分かりませんが、場合によっては MacOS X にデフォルトでインストールされているPHPの設定ファイルである "/etc/php.ini" を読みに行っているかもしれません。

id:pmvct

お返事有り難うございます。

php.iniに関しては"/Applications/XAMPP/etc/php.ini"を編集しました。

phpinfo()を見ても、php.iniのパスに問題は見られません。

Apacheの再起動に関しては、XAMPPごとの再起動と

Apache単体での再起動(apachectl -k stop)、

さらにOSの再起動まで念のためにしましたが、反映されませんでした。

2011/01/22 21:10:26
id:okaki1 No.3

回答回数2ベストアンサー獲得回数1

ポイント22pt

httpd.conf、.htaccessにinclude_pathを設定してないでしょうか?

httpd.conf、.htaccessにinclude_pathの設定がある場合、php.iniのinclude_pathの設定は効かず、http.conf、.htaccessのinclude_pathが効くようです。


※下記補足

私の環境(Mac OSX10.6でXAMPP)では下記をphp.iniに設定してApache再起動の作業で3つ目のパスが認識されました。

include_path=".:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear:/Applications/XAMPP/xamppfiles/lib/php/smarty/libs"

id:pmvct

お返事有り難うございます。こちらの返事が遅れてしまい、申し訳ありません。

通知のメールがなぜか届いていませんでした。

httpd.conf、.htaccessともにinclude_pathは設定していません。

なぜうまくいかないのか、参ってます…。

2011/01/23 19:18:32
id:deflation No.4

回答回数1036ベストアンサー獲得回数126

ポイント22pt

もしセーフモードがONになっているようでしたら

safe_mode = Off

にしてみてください。

id:pmvct

お返事有り難うございます。

phpinfo()で確認したところ、セーフモードはOFFでした。

2011/01/25 01:48:43
  • id:rouge_2008
    OS X付属のApacheもあるようですが、間違いなくXAMPP付属のApacheを再起動しましたか?
    http://q.hatena.ne.jp/1295616677

    OS X付属のApacheが起動している状態で、「/Applications/XAMPP/xamppfiles/xampp start」を実行しても、Apacheは起動に失敗するはずです。(※MySQL等はそのまま起動します。)
    もしOS X付属のApacheが起動している場合は、先に「apachectl -k stop」で停止させてから、「/Applications/XAMPP/xamppfiles/xampp start」を実行してみてください。
    ※XAMPP付属のApacheを停止・起動する場合は、「/Applications/XAMPP/xamppfiles/xampp stopapache」および「/Applications/XAMPP/xamppfiles/xampp startapache」です。
    http://www.apachefriends.org/jp/xampp-macosx.html#2704
  • id:pmvct
    お返事有り難うございます。
    OSX付属のApacheは切ってありますので、
    こちらのApacheではないと思われます。
    現状、XAMPPのApache起動/停止も毎回成功しています。
    編集したphp.iniもphpinfo()のconfigurationで
    表示されているディレクトリのphp.iniです。
    実際、include_path以外の変更点は反映されているようなので、
    include_pathの設定の仕方に問題があるのでは、
    と思っているのですが・・・。
  • id:rouge_2008
    実際に Smartyを呼び出した場合はどうなりますか?
    ※エラーになる場合、どのようなエラーが表示されるのかも・・・

    require('Smarty.class.php');


    > include_path以外の変更点は反映

    include_pathと同時に変更したのでしょうか?
    もし違うタイミングで変更したのでしたら、ブラウザのキャッシュ(※一時ファイル)を削除してから、再度アクセスしてみてください。(あるいは、ブラウザがオフラインに設定されていないかも一応確認してみてください。)

    上記が問題ない場合は、include_pathに指定する順番を変更して確認してみてください。

    include_path = ".:/Applications/XAMPP/xamppfiles/lib/php/smarty/libs:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear"


    php.iniでの変更が反映されない場合、スクリプトで直接指定した場合にどうなるのかも確認してみてください。

    $path = "/Applications/XAMPP/xamppfiles/lib/php/smarty/libs";
    set_include_path($path . PATH_SEPARATOR . get_include_path());

    echo get_include_path() ."<br>\n";

    http://www.php.net/manual/ja/function.set-include-path.php
  • id:pmvct
    詳しい助言、有り難うございます。

    >実際に Smartyを呼び出した場合はどうなりますか?

    以下のWarningとFatal Errorが表示されました。
    ちなみに、MySmartyはSmaryのサブクラスです。

    Warning: require_once(Smarty.class.php) [function.require-once]: failed to open stream: No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/toi/MySmarty.class.php on line 4

    Fatal error: require_once() [function.require]: Failed opening required 'Smarty.class.php' (include_path='.:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear') in /Applications/XAMPP/xamppfiles/htdocs/toi/MySmarty.class.php on line 4

    >include_pathと同時に変更したのでしょうか?

    変更のタイミングは違ったのですが、ブラウザのキャッシュを削除しても同じでした。
    異なるブラウザで確認しても同様でした。
    (ちなみにphp.iniに行った変更ですが、Deprecatedエラー対策のために
    error_reportingに‾E_DEPRECATEDを以下のように追加しました。
    この変更は反映されたようで、Deprecatedエラーは出なくなりました。
    error_reporting = E_ALL & ‾E_NOTICE & ‾E_DEPRECATED)

    >include_pathに指定する順番を変更して確認してみてください。

    これも試したのですが、phpinfo()には全く反映されませんでした。
    Apacheも再起動しましたが、駄目でした。

    >スクリプトで直接指定した場合にどうなるのかも確認してみてください。

    /Applications/XAMPP/xamppfiles/lib/php/smarty/libs:.:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear
    とechoで表示されました。
    結果として以下のようなWarningも表示されましたが、
    include_pathに〜smarty/libsがちゃんと追加されて、動いているようです。

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /Applications/XAMPP/xamppfiles/htdocs/toi/MySmarty.class.php:6) in /Applications/XAMPP/xamppfiles/htdocs/toi/MyAuth.php on line 23

  • id:rouge_2008
    スクリプトで指定した場合は大丈夫なんですね・・・
    もしかしてphp.iniの「include_path」の設定の前にセミコロン「;」が残っていないでしょうか?

    ;include_path = ".:/Applications/XAMPP/xamppfiles/lib~"

    上記のように「;」が残っていると設定は無効になります。
    もし残っていたら削除してください。
    ご存知だったらすみませんが、他に理由が思いつかないので・・・

    あとは、XAMPPをもう一つインストールして確認してみてください。(※現在のXAMPPはバックアップのため事前にリネーム)
    設定が反映されるようでしたら、php.iniやhttpd.conf等の設定を比較してみてください。
  • id:pmvct
    お返事有り難うございます。
    こちらの返事が遅れてしまい、申し訳ございません。
    頭にセミコロンは付いてません。
    XAMPPの再インストールは、是非試させて頂きます。
    そして、php.ini等のファイルを比較したいと思います。
    リネームしてもう一つインストールというのは初体験です。
    何度も丁寧に助言を下さり、大変感謝しています。m(_ _)m

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

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

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

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