さて、私はすべてを試しました、これは見た目がはるかに良い場所です、私はここでドキュメントルートを作りたいですhttpdocs/[folder]/html
そして私はルートの上に行きたいが(require '../[folder]/file.php']
それ以上アクセスできないファイルをphpに含めています/var/www/vhosts/example.com/httpdocs
。open_basedir
値がまだ残っているためhttpdocs/[folder]/html
に制限されていることはわかっていますがphpinfo()
、私の人生の間、そのローカル値を変更することはできません!
これは私がこれまでに試したことです:私はこれを見ました-ドキュメントルートの外にファイルをインクルードする方法は?-そして、confディレクトリにある「vhost.conf」を作成し、ファイルを再構成し、apacheを再起動しました...何もありません。良い投稿ですが、少し古くなっているようです。
php.ini自体を編集してopen_basedir = '/var/www/vhosts/example.com/httpdocs
、元の場所にアップロードし、再構成し、再起動しました-何もありません
'httpd.conf'を取り出して、他のconfファイル(vhost.conf)から同じ行を追加して編集し、元に戻しました-何もしませんでした。次に、godaddyがここで言うことを実行しようとしました-http ://help。 godaddy.com/article/1616と行を追加しましたphp_admin_value open_basedir none' to 'httpd.conf
-どちらも運がありません。
今は0435で、ほとんど目を開けていません。このサイトは明日2000年に立ち上げられる予定です。読んだり助けたりする意欲のある/できる人に事前に感謝します。
更新:迅速な対応に感謝します。これが私があなたに与えることができる最良の答えです:
エラーが発生しますか?
はい、サーバーエラーが発生し、サーバーエラーログを介して、具体的には次のようになります。
PHP警告:require()[function.require]:open_basedir制限が有効です。ファイル(/var/www/vhosts/[example.com]/httpdocs/[folder]/[安全なphpファイルが存在するフォルダー]/ [file.php])が許可されたパス内にありません:
したがって、open_basedirの制限により、99.99%の確信があります。
Webサーバーがvhosts/の所有者として設定されていることを確認しますか?
私はかなり確信しています、私はサーバーの制御に少し慣れていません、そしてそれが正確に何を意味するのか本当にわかりませんが、Parallels Plesk v10.3.1を実行しているGodaddyを介して仮想専用サーバーを持っています、私は上記のファイルを移動しましたシェルSSH。
Pleskでは、「ドキュメントルート」を以下/var/www/vhosts/example.com
の任意の値に変更でき、Pleskは「open_basedir」を設定した値に変更します。たとえば、Pleskでドキュメントルートを「httpdocs」に設定すると、「open_basedir」が同じフォルダに変更され、すべてが正常に機能します。問題は、私がすべてのものにパブリックアクセスしたくないということです/httpdocs/[folder]
私の目標は、「documentroot」を/httpdocs/[folder]/html
「open_basedir 」に変更したいのですが、何らかの理由/httpdocs
でそのローカル値を変更できません。open_basedir
セキュリティの目的でこれを実行して、重要でないphpファイルにのみ直接アクセスできるようにしますが、php自体はフォルダーへのアクセスを増やしたいと考えています。
相対パスまたは絶対パスの使用を含めようとしていますか?
'documentroot'より上のファイルにインクルード/リクワイアしようとしているphpファイルのパスは次の形式とまったく同じです。
require '../[folder where secure php files exist]/file.php';
私があなたを正しく理解しているなら、私はサーバーのパス全体を使用していません。