0

我在服务器上使用文件上传脚本时遇到问题 - 得出的结论是,这是因为 PHP 正在 Apache 模块上运行,因此重新配置 PHP 以作为 FastCGI 运行。

不幸的是,现在当我尝试通过 uploadify 上传文件时出现错误

警告:move_uploaded_file()[function.move-uploaded-file] open_base_dir 限制生效。文件(/var/www/vhosts/domain.com/uploads/filename.txt)不在允许的路径内:(/var/www/vhosts/domain.com/httpdocs:/tmp)... ..

然后它让我参考我的脚本的第 32 行,内容如下:

move_uploaded_file($tempFile,$targetFile);

$tempFile 如下:

$tempFile = str_replace(" ","",$_FILES['Filedata']['tmp_name']);

我已经尝试以多种方式更改我的 vhost.conf 文件但没有成功 - 它目前处于

<Directory /var/www/vhosts/domain.com/httpdocs>
    <IfModule sapi_apache2.c>
            php_admin_flag engine off
            php_admin_flag safe_mode on
            php_admin_value open_basedir none
    <IfModule mod_php5.c>
            php_admin_flag engine on
            php_admin_flag safe_mode off
            php_admin_value open_basedir none
   </IfModule>
</Directory>

我似乎在兜圈子 - 似乎找不到 tmp 目录

4

1 回答 1

1

如果它是您的服务器并且您实际上可以搞乱配置,您可以关闭open_basedir您的 php.ini 中的,重新加载 PHP 并尝试它是否有效。safe_mode默认情况下应在 PHP 中关闭,因为此选项只会导致问题。

或者您可以尝试以下操作:

<Directory /var/www/vhosts/domain.com/httpdocs>
    php_admin_value open_basedir "/var/www/vhosts/domain.com/httpdocs/:/tmp/:/var/www/vhosts/domain.com/uploads/"
</Directory>

如果您决定在那里设置配置,同样可以申请 php.ini。

于 2012-12-12T11:56:33.257 回答