如何在 localhost 上的 nginx 中添加多个站点

如何在 localhost 上的 nginx 中添加多个站点

我使用的是 Ubuntu 18.04,我刚刚在本地机器上安装完 LEMP。我不知道如何在 nginx 上托管多个网站。例如,我有一个名为“test”的网站,它位于/var/www/test-> index.php。但是当我在以下位置运行服务器时:localhost/test/index.php它给了我一个 404 错误 Not Found。

我已将文件添加并命名为“test”,同时添加到 sites-available 和 sites-enabled 中,然后重新启动 nginx,但仍然不起作用。原始文件名为 default,但由于我按照有关如何安装 LEMP 的教程操作,因此将其更改为 example.com。我甚至将 example.com 从 sites-available 和 sites-enabled 移至桌面以避免冲突。

这是我的站点可用的代码:

server {
        listen 80;
        root /var/www/test;
        index index.php index.html index.htm;
        server_name test;

        location / {
            try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        }
}

此外,在安装 LEMP 后,我测试了一个快速脚本,只需回显即可,phpinfo();而且它有效,所以我知道 PHP 可以工作。我也有 PHPmyadmin,它也可以工作。我认为我在这里出错是路径问题。很明显,我是 Ubuntu 的初学者,这就是我来这里的原因。哈哈

也许我尝试实现的方法不可行?我希望所有网站都采用以下结构:/var/www/sitenamegoeshere

因为根据教程我只看到如下结构:/var/www/sitenamegoeshere/public_html

任何帮助都将不胜感激!如果需要有关我的 LEMP 设置的更多信息,请一定要问我。谢谢

答案1

查看您的配置,您应该能够自己发现问题:

server_name test;

您告诉它只对名称test(所谓的“虚拟主机”) 做出反应,但您却通过名称访问它localhost。这应该如何工作?

对于您的测试设置,请尝试编辑/etc/hosts并包含如下行:

127.0.0.1 test

...重新启动nginxservice nginx restart例如root)...然后尝试以该名称再次访问它http://test/index.php...应该可以工作,除非您忘记提及其他相关细节。

相关内容