我有一个带有多个用 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
?