我已经build立了一个使用ISPConfig 3进行pipe理的LAMP服务器。 PHP运行在Fast-CGI上。
我有几个域,如my_site.com,my_site.net和my_site.org,但他们都指向相同的应用程序/网站。 每个域都有自己的Web根文件夹,并在其自己的用户下运行。 应用程序本身位于另一个用户拥有的通用目录中,如下所示:
# 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的工作原理。
经过一些研究并询问了一些人,解决scheme似乎是将其全部分解到一个域(例如my_site.com),并将其他域(my_site.org,my_site.net)定义为这个域的别名。 这样,只有一个用户具有所有必要的权限。
但是,这意味着我们不得不购买多域名SSL证书 – 但是我们已经为每个域名拥有SSL证书。 我们能够使用他们与我们以前的供应商(pipe理托pipe),在那里,我们也只有一个networking目录和多个域名。
所以,如果这是可能的,我想知道:在这种情况下,把所有的域合并到一个主域名和几个别名域是否是正确的? 或者我可能误解了一些东西?
把我的评论变成一个答案。
我将瞄准一个作为一个系统用户运行的Apache进程,但是服务几个对应于几个域名的IP地址,每个域名都有自己的SSL证书。 除非另有明确的configuration(例如,使用suEXEC或FastCgiServer的-user选项),Apache将独立于请求所属的虚拟主机 ,以与其用于访问数据的相同用户的身份启动所有subprocess。 有多less进程取决于服务器configuration,特别是MPM ,但只要所有进程属于同一个用户,就不必在意这个问题了。 在apacheconfiguration中使用基于IP的虚拟主机 ,因为基于名称的 SSL证书select需要所有客户端都不支持的SNI 。
我不知道你的pipe理工具是否可以处理这个问题。 随时编辑这个答案,并提供详细信息,一旦你知道。