メンバーメニュー

ようこそ、ゲストさん

トップ > カテゴリ一覧 > スタードメイン > open_basedirのエラーが出る

質問

  • open_basedirのエラーが出る
  • 本文:

    https://secure.netowl.jp/bbs/detail.cgi?td=713
    と同じ質問なのですが、Warningが出てしまい困っています。
    皆さんrequire_onceを使用されている方は、どのように設定すればWarningが解消されるか、教えて頂けないでしょうか。

  • 緊急度:通常投稿者:aoitoriさん投稿時間:2013/08/30 00:56
質問に対する回答は締め切られました

回答 No.2053

  • 本文:

    ・下層フォルダへの相対パス指定
    ・絶対パス

    なら、ワーニングが出ないと思いますが、どうでしょうか?

    まずは、絶対パス指定での読み込みを試してみては?

  • 投稿者:k-tanさん 投稿時間:2013/08/30 01:56
質問者からのコメント

ありがとうございます。

現在、public_htmlの下にSmartyを入れて運用しており、require_onceを使ってSmarty本体の読み込みをしています。(/homeからの絶対指定で読み込んでいます。)

が、プログラムを走らせると

Warning: include() [function.include]: open_basedir restriction in effect. File() is not within the allowed path(s): (/home/アカウント/ドメイン名/:/usr/share/pear53/) in /home/アカウント/ドメイン名/public_html/Smarty/libs/sysplugins/smarty_internal_templatebase.php on line 161

のようなWarningが出ます。
メッセージから、include_pathが足りないのかと思い、php.iniのinclude_pathに、Smarty/libsフォルダへの絶対パスを設定してみましたが同様のWarningになってしまいます。

(なぜか改行が効かず、読みにくくなり申し訳ありません。)

回答 No.2055

  • 本文:

    引き続きいろいろ試しています。
    今回、スターサーバープラスに移転を行い、
    移転前のサーバで正常動作していたスクリプトを、require_onceに指定していたファイルパスだけを変更して、スターサーバープラスに置いています。

    ファイル/フォルダパーミッションの見直しや、
    最新のSmartyではなく、移転前のサーバでうまく動いていた時のSmartyのファイルを持ってきて置き直したり
    試していますが、うまくいきません。

    プログラムの内容はメールフォームですが、
    フォームの内容をセッションから消去する処理の時にWarningが出て、セッション内容の消去がされない状態です。
    ($_SESSION = array();で消しています)
    このプログラムからアクセスするファイルはすべて自分のpublic_html以下にあるファイルで、それ以外のファイルで思い当たるものは、セッションファイルだけです。

    open_basedirのエラーが出ていることからも、このサーバでpnp.iniにopen_basedirの設定をしていることによるエラーだと思いますが
    ユーザーレベルでの解決方法がわかる方がいらっしゃいましたら、ご教示頂けますでしょうか。

  • 投稿者:aoitoriさん 投稿時間:2013/08/31 10:22

回答 No.2056

  • 本文:

    解決できました。

    open_basedirが設定されていると、$_GETのリクエストパラーメーターが使えないことに起因して、プログラムが動作しなかったようです。

    この部分を修正したところ、Warningは出ますがプログラムの動作的には問題ないようなので、あとは抑止して対応したいと思います。

  • 投稿者:aoitoriさん 投稿時間:2013/08/31 11:53