1

我有一个带有多个用 PHP 编写的站点的 Web 服务器(Debian、Nginx)。出于安全原因,我通过在 Nginx 配置中open_basedir指定它来限制每个站点:fastcgi_param

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_index  index.php;
    fastcgi_pass   unix:/var/run/php5-fpm.sock;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
    fastcgi_param  PHP_VALUE "open_basedir=$document_root";
}

然而,这确实使从前端上传文件变得复杂,因为默认的临时目录 ( upload_tmp_dir) 在open_basedir. 最佳解决方案是将其添加为另一个fastcgi_param

fastcgi_param PHP_VALUE "upload_tmp_dir=$document_root/wp-content/tmp";

但是,这不起作用,因为它似乎upload_tmp_dir必须在 php.ini 中设置 - 这不适用于我的多个站点。

我怎样才能解决这个问题并仍然保持open_basedir

4

0 回答 0