我已经使用 ISPConfig 3 设置了一个 LAMP 服务器用于管理。PHP 在 Fast-CGI 上运行。
我有多个域名,例如 my_site.com、my_site.net 和 my_site.org,但它们都指向同一个应用程序/网站。每个域名都有自己的 web-root-folder,并在自己的用户下运行。应用程序本身位于另一个用户拥有的公共目录中,如下所示:
# path to my_application (owned by web1)
/var/www/clients/client1/web1/web/my_application/
# sym-link to my_application from my_site.com-web-root (owned by web5)
/var/www/my_site.com/web -> /var/www/clients/client1/web1/web/
# sym-link to my_application from my_site.net (owned by web4)
/var/www/my_site.net/web -> /var/www/clients/client1/web1/web/
使用这样的设置,我在使用 PHP 执行文件系统操作时遇到了一些与权限有关的问题。例如,如果通过 my_site.com 调用应用程序,则用户web5
试图向应用程序文件夹写入某些内容。但应用程序文件夹归用户所有web1
,因此web5
不允许在那里写入。
据我所知,这就是 Fast-CGI 的工作方式。
经过一番研究和询问一些人后,解决方案似乎是将所有内容分解为一个域(例如 my_site.com),并将其他域(my_site.org、my_site.net)定义为该域的别名。这样,就只有一个用户拥有所有必要的权限。
但是,这意味着我们必须购买多域名 SSL 证书 - 但我们已经为每个域名准备了一个 SSL 证书。我们能够将它们与之前的提供商(托管主机)一起使用,并且我们只有一个 Web 目录和多个域名。
因此,如果这是可能的,我想知道:在这种情况下,将所有域名放在一个 v-host 中,一个主域名和几个别名域名是否是正确的方法?或者我可能误解了什么?
答案1
将我的评论转化为答案。
我的目标是一Apache 进程以以下身份运行一系统用户但服务一些对应的 IP 地址一些域名,每个域名都有自己的 SSL 证书。除非另有明确配置(例如使用执行指令或者-user
选择FastCgiServer
),Apache 将以与自己访问数据相同的用户身份启动所有子进程,独立于虚拟主机请求属于哪个进程。有多少个进程取决于服务器配置,多层印刷机特别是,只要所有进程都属于同一个用户,你就不必担心这个问题。使用基于 IP 的虚拟主机在 apache 配置中,基于名称SSL 证书选择需要信噪比但仍然没有得到所有客户端的支持。
我不知道您的管理工具是否可以处理这个问题。一旦您知道,请随时编辑此答案并提供详细信息。