1

学習課題として PHP で CMS を開発していますが、「open_basedir 制限」と呼ばれる壁にぶつかりました。小さな JPG ファイルをアップロードしようとしています。できるだけ簡潔に情報を提供しようとしましたが、何か忘れていたら教えてください。

毎回c:/windows/temp/ フォルダーにヒットすることがわかります。そのため、 move_uploaded_file操作を実行しようとしたときにのみフォールオーバーします。

多くの調査の後、私はこれが何であるかを知っており、理論的には次のような多くのページをオンラインで読んで修正する方法を知っています:

http://forum.parallels.com/showthread.php?258036-Plesk-Windows-open_basedir-restriction-in-effect

マイコード

$uiq = uniqid();
$image_folder = "/img/articles/original/";
$uploaded = false;

if(isset($_POST['upload_image'])){ 
    if($_FILES['userImage']['error'] == 0 ){
        $up = move_uploaded_file($_FILES['userImage']['tmp_name'],  $image_folder.$_FILES['userImage']['name']);
        if($up){
        $uploaded = true;   
        }
    }
}

私のPHPINFO

私の PhpInfo の結果は、私の Web ホスティング スペースのルートが許可されたフォルダーのリストにあることを示しています。

open_basedir: F:\PLESK\WWW\mydomain.com\httpdocs\

エラー

PHP 警告: move_uploaded_file(): open_basedir 制限が有効です。ファイル (/img/articles/original/test.jpg) は許可されたパス内にありません: (F:\PLESK\WWW\mydomain.com\httpdocs) in F:\PLESK\WWW\mydomain.com\httpdocs \sparklyphp\cms\modules\articles\edit\photos\index.php 行 40

その他のエラー

進路を変えたら

$image_folder = "/img/articles/original/";

$image_folder = "img/articles/original/";

追加のエラーが発生します:

PHP Warning:  move_uploaded_file(): open_basedir restriction in effect. File(C:\Windows\Temp\php393F.tmp) is not within the allowed path(s): (F:\PLESK\WWW\mydomain.com\httpdocs\) in F:\PLESK\WWW\mydomain.com\httpdocs\sparklyphp\cms\modules\articles\edit\photos\index.php on line 40
PHP Warning:  move_uploaded_file(): open_basedir restriction in effect. File(C:\Windows\Temp\php393F.tmp) is not within the allowed path(s): (F:\PLESK\WWW\mydomain.com\httpdocs\) in F:\PLESK\WWW\mydomain.com\httpdocs\sparklyphp\cms\modules\articles\edit\photos\index.php on line 40
PHP Warning:  move_uploaded_file(C:\Windows\Temp\php393F.tmp): failed to open stream: Operation not permitted in F:\PLESK\WWW\mydomain.com\httpdocs\sparklyphp\cms\modules\articles\edit\photos\index.php on line 40
PHP Warning:  move_uploaded_file(): Unable to move 'C:\Windows\Temp\php393F.tmp' to 'img/articles/original/test.jpg' in F:\PLESK\WWW\mydomain.com\httpdocs\sparklyphp\cms\modules\articles\edit\photos\index.php on line 40

** ホスティング環境 ** PHP 5.4.16 を FastCGI モードで実行する Plesk 11.5 (最新バージョン/アップデート) を搭載した Windows 2008 R2 ボックスのウェブサイト ホスティング環境。サーバー全体への完全な管理者アクセス権があります。

ここで最もイライラするのは、ファイルが一時フォルダーにアップロードされていることです。そこから取得できません!

どんな助けでも大歓迎です!

ボブ

4

3 に答える 3

1

これ:

PHP Warning:  move_uploaded_file(): open_basedir restriction in effect.
File(C:\Windows\Temp\php393F.tmp) is not within the allowed path(s):
(F:\PLESK\WWW\mydomain.com\httpdocs\) in
F:\PLESK\WWW\mydomain.com\httpdocs\sparklyphp\cms\modules\articles\edit\photos\index.php on line 40

基本的に、一時フォルダーでさえ許可されていないと言っています。私の知る限り、これは明らかに設定ミスであり、ホスティングに連絡して修正する必要があります。または、あなたが言うように完全な管理者アクセス権を持っている場合は、open_basedir 制限を適切なものに変更してください。このページには、open_basedir 設定の変更/削除に関する指示が含まれているようです。

于 2013-08-23T16:29:18.627 に答える