apache2:在本地服务器的同一域下托管多个站点
Posted
技术标签:
【中文标题】apache2:在本地服务器的同一域下托管多个站点【英文标题】:apache2: host multiple sites under same domain in local server 【发布时间】:2017-03-15 21:34:39 【问题描述】:我有一个带有 LAMP、ubuntu 和 apache2 的本地服务器,并且想安装几个 Web 应用程序(openproject、vtiger、suitecrm、sugar crm...)来测试它们。它们都是基于网络的服务。
我已经在 /var/www 下解压它们并将虚拟主机配置为:
对于 Vtiger 服务:/etc/apache2/sites-available/vtigercrm.conf
<VirtualHost *:80>
#ServerName www.example.com
ServerAdmin angel@usmima.com
DocumentRoot /var/www/vtigercrm
ServerName vtigercrm
ServerAlias vtigercrm.serverMachine.synology.me
Alias /vtigercrm /var/www/vtigercrm
ErrorLog $APACHE_LOG_DIR/vtigercrm-error.log
CustomLog $APACHE_LOG_DIR/vtigercrm-access.log combined
</VirtualHost>
对于 Suite crm 服务:/etc/apache2/sites-available/suitecrm.conf
<VirtualHost *:80>
ServerAdmin angel@usmima.com
DocumentRoot /var/www/suitecrm
ServerName suitecrm
ServerAlias suitecrm.serverMachine.synology.me
ServerAlias localhost
Alias /suitecrm /var/www/suitecrm
ErrorLog $APACHE_LOG_DIR/suitecrm-error.log
CustomLog $APACHE_LOG_DIR/suitecrm-access.log combined
<Directory /var/www/suitecrm/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
对于 openproject:/etc/apache2/sites-available/openproject.conf
Include /etc/openproject/addons/apache2/includes/server/*.conf
<VirtualHost *:80>
ServerName openproject
ServerAlias serverMachine.synology.me
ServerAlias localhost
DocumentRoot /opt/openproject/public
ProxyRequests off
Include /etc/openproject/addons/apache2/includes/vhost/*.conf
ProxyPass /openproject/ http://127.0.0.1:6000/openproject/ retry=0
ProxyPassReverse /openproject/ http://127.0.0.1:6000/openproject/
</VirtualHost>
我可以使用它们的 ServerAlias 地址访问每一项服务:
vtigercrm.serverMachine.synology.me suitecrm.serverMachine.synology.me serverMachine.synology.me/openproject但如果我想在本地访问它们,http://localhost/openproject 是唯一有效的方法。 http://localhost/suitecrm 或 http://localhost/vtigercrm 不起作用。
我必须如何配置才能像访问同一域的不同文件夹一样访问每个服务?例如:
http://localhost/suitecrm 或 http://192.168.1.123/suitecrm http://localhost/vtigercrm 或 http://192.168.1.123/vtigercrmopenproject 的案例正在运行:
http://localhost/openproject 或 http://192.168.1.123/openproject谢谢
编辑 1
我已经成功解决了一半的问题,为 openproject 添加编辑虚拟主机配置:
Alias /vtigercrm /var/www/vtigercrm
Alias /suitecrm /var/www/suitecrm
这似乎表明访问时正在启动openproject。我应该怎么做才能避免需要 openproject 虚拟主机才能正确路由对 vtiger、suitecrm 和其他站点的访问?
谢谢
【问题讨论】:
【参考方案1】:我建议更改系统的主机文件。
在/etc/hosts
替换
127.0.0.1 localhost
与
127.0.0.1 serverMachine.synology.me vtigercrm.serverMachine.synology.me suitecrm.serverMachine.synology.me localhost
现在只需键入与您在另一个系统上相同的地址 - 浏览器将发送与外部用户完全相同的信息,因此 Apache 将以相同的方式响应。
【讨论】:
以上是关于apache2:在本地服务器的同一域下托管多个站点的主要内容,如果未能解决你的问题,请参考以下文章
如何在服务器上/同一域下的多个 ColdFusion 应用程序之间共享会话?