在nginx中为PHP设置root

时间:2018-03-31 20:06:02

标签: php nginx

如何在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)是否是一种好的做法?

1 个答案:

答案 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=/