質問 > 管理機能 > open_basedir, is not within the allowed path(s) |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
dab |
投稿日時: 2009/3/30 21:45
対応状況: −−−
|
半人前 登録日: 2009/1/31 居住地: 京都 投稿: 13 |
open_basedir, is not within the allowed path(s) open_basedirの
File(/tmp/aaaaaaa) is not within the allowed path(s) エラーにより、商品の画像ファイルをアップロードする事が出来ないのですが、 一時ディレクトリをEC-Cubeをインストールしたディレクトリ以下に変更する事はできないのでしょうか。 または、上記エラーの別の対策方法はありますか? PHP4.3.2、CGI、セーフモード。 サーバーの管理者権限はありません。 open_basedirに /home/username が設定されています。 php.ini、.htaccessは使用できないのか、 php.iniに open_basedir none open_basedir "/home/username:/tmp" open_basedir "/home/username:/tmp/" などを書いても、/tmp/にファイルを保存できないようです。 .htaccessは php_admin_value open_basedir none と書いても、Internal Server Errorになりました。 |
tao_s |
投稿日時: 2009/3/30 22:37
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 804 |
Re: open_basedir, is not within the allowed path(s) OS、どこのレンタルサーバーのどういう契約なのか、などの情報が無いと何とも答えられないと思います。
一番手っ取り早いのはホスティング業者に問い合わせる事の様な気もします。 |
seasoft |
投稿日時: 2009/3/30 22:50
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7369 |
Re: open_basedir, is not within the allowed path(s) そうですね。ポイントは十分に絞り込めているようですので、サーバサポートに照会するのが筋だと思います。
ちなみに、セーフモードの時点でマズいような気がします。
|
dab |
投稿日時: 2009/3/31 0:00
対応状況: −−−
|
半人前 登録日: 2009/1/31 居住地: 京都 投稿: 13 |
Re: open_basedir, is not within the allowed path(s) サーバーはJ-Web ( http://aiosl.com/j-web/service.html ) です。
設置依頼を受けての設置ですので、依頼者様がどのようなサービスで契約されているのかは不明ですが、 たぶんメールアドレスの個数とウイルスチェックの有無の違いしかないと思います。 phpinfo()によると、 OSはLinuxとだけ出ていて、ディストリビューションやバージョンなどは不明です。 すみませんが、何が有用な情報なのかわかりませんので、 phpinfo()の中で、有用な情報などがあれば補足します。 調べてみたところ、 data/class/SC_UploadFile.php 83行目以降、function makeTempFile() 102行目
となっていますので、 PHPのmove_uploaded_file()を使って/tmpディレクトリからEC-Cubeをインストールしたディレクトリに移動させるなどすれば対策できるのではないかと思ったのですが、
としてみたところ、
やはりセーフモードとopen_basedirの制限に引っかかったようで、
サムネイルを生成する関数でも、ファイルがないというメッセージが表示され、アップロードが中断されました。 参考 http://jp.php.net/manual/ja/reserved.variables.files.php http://jp.php.net/manual/ja/function.move-uploaded-file.php |
dab |
投稿日時: 2009/3/31 1:04
対応状況: −−−
|
半人前 登録日: 2009/1/31 居住地: 京都 投稿: 13 |
Re: open_basedir, is not within the allowed path(s) 一時ディレクトリをopen_basedirで指定されたディレクトリ内に新しくディレクトリを作り、
アクセス属性を755にすることで、 詳しい動作検証は今からですが、とりあえずアップロードできるようになりました。 IMAGE_TEMP_URLのアクセス属性が、move_upload_file()のチェックに引っかかったものと思います。 長くなりますが、data/class/SC_UploadFile.php 81行目のmakeTempFile関数を全文載せておきます。 追加したのは"$dab_tmp_file"以降の3行です。 "is not within the allowed path" に関するエラーが表示された場合の対策になると思います。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |