我在我的localhost上托管了一个PHP系统,我在index.php
创建了/var/www/html
,如下所示:
// /var/www/html/index.php
<?php
phpinfo();
当我访问localhost:80
时,它会显示我的PHP配置信息。
但是当我将/etc/nginx/sites-available/default
克隆到/etc/nginx/sites-available/superstore
并更改server_name
时,它sudo service nginx restart
之后无法正常工作,即使sudo service nginx status
正在恢复成功。< / p>
我的nginx配置(/etc/nginx/sites-available/superstore
)是这样的:
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name superstore.dev;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
我将此虚拟主机添加到我的/etc/hosts
,如下所示:
127.0.0.1 superstore.dev
但是当我尝试访问superstore.dev
时,它会将此错误返回给我:
我通过在Ubuntu 16上执行以下命令安装了PHP和Nginx:
sudo apt install nginx php7.0-fpm -y
我确定我已将符号链接的superstore
配置文件添加到sites-enabled
文件夹。
为什么我的虚拟主机无法正常工作?
答案 0 :(得分:0)
与Apache配置方案类似,文件夹sites-available
应该包含您的所有配置文件,即使是您不想运行的配置文件。
还有第二个文件夹sites-enabled
,其中包含要运行的配置文件的符号链接。
创建符号链接运行ln -s /etc/nginx/sites-available/superstore /etc/nginx/sites-enabled/
然后service nginx reload
有关详情,请参阅回答https://serverfault.com/a/424456/240702