我有一台运行多个网站(主要是 WordPress)的服务器,我想将它们彼此分开,这样我就可以让一个人访问一个网站,而不能访问其他网站,而且每个网站上运行的任何代码都无法访问其他网站。我觉得答案好像是在单独的用户帐户中,但我不确定要搜索什么才能找到教程。
我当前的设置是 - Ubuntu 上的 LEMP Stack。所有站点都在其自己的目录中,其中/var/www/sites/
所有内容均归 www-data 所有。它们都共享一个 mysql 实例,但每个站点都有不同的 mysql 用户。我的服务器只有一个具有 sudo 权限的非 root 用户用户。
答案1
首先,请查看我的网站文件/文件夹在 Linux 网络服务器上应该具有什么权限?- 我不确定当使用 nginx 而不是 Apache 时可能需要做哪些具体的调整,但我认为该帖子和答案将为您提供良好的基础理解。
答案2
我需要的解决方案是:
- 将不同的网站文件放在不同的用户帐户下,即
home/USER/website
而不是全部放在下var/www/
。这些文件应该归该用户所有,而不是 www-data 或类似文件。 - 配置 Nginx 主机以指向每个站点的新位置。
- 配置 PHP 以特定用户身份运行该用户帐户下的站点 -更多信息。
假设您已配置正确的权限,这样可以使每个用户的文件保持分开,并且还允许 php 进行 rwx,因为 php 进程以文件所属的同一用户身份运行。
答案3
我认为您可以listen
在 nginx 中使用来监听不同的端口,以便您可以通过不同的端口访问您的网站。