如何在nginx(1.12.2)上为php设置绝对docroot?
<?php
die(print_r(getcwd(), TRUE));
?>
给了我/var/www/mydomain.com
我想将mydomain.com设置为docroot,然后才能使用&#39; /&#39;离。
include '/css/style.css';
现在我必须使用
include '/var/www/mydomain.com/css/style.css';
我的nginx conf
server {
listen 80;
server_name mydomain.com;
root /var/www/mydomain.com/;
index index.php index.html index.htm;
error_page 404 /404.html;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME /var/www/mydomain.com$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location / {
try_files $uri $uri/ =404;
}
}
将所有站点文件设置为public或html文件夹(/var/www/mydomain.com/public)是否是一种好的做法?
答案 0 :(得分:1)
由于您正在运行php-fpm
,因此您可以在配置中设置chroot
并将其限制在某个目录中。有关详细信息,请参阅以下主题
https://serverfault.com/questions/344538/php-fpms-chroot-and-chdir-directory
chroot string
在开始时Chroot到此目录。必须将此值定义为绝对路径。如果未设置此值,则不使用chroot。
chdir string
Chdir在这个目录的开头。该值必须是绝对路径。默认值:当前目录或/当chroot。
https://secure.php.net/manual/en/install.fpm.configuration.php
因此,您将以下内容添加到您的php-fpm配置
chroot=/var/www/mydomain.com
chdir=/