我有一个服务器(ubuntu 18.04)在路由器后面运行,该路由器用于测试各种Web应用程序(snipe-it,phpipam和libre speedtest)。我没有足够的资源在单个计算机上运行它们,也不想真正钻研虚拟机,我想我可以在同一个apache实例上运行它们,并通过更改虚拟主机配置来访问它们。
当我运行单个虚拟主机时,每个站点都运行良好。当我尝试运行多个站点(a2ensite xxx和a2ensite yyy)时,显示具有较低字母名称(在这种情况下为xxx)的站点。
我不知道别名还是重写。我真的不能改变开发人员选择编写应用程序的方式以及他们要将程序放置在何处。我能理解为什么他们把它们放在那里。我只希望能够访问所有站点/页面/应用程序...
/ etc / apache2 / sites-available / snipeit.conf
<VirtualHost *:80>
ServerName snipeit
DocumentRoot /var/www/snipe-it/public
Alias "/" "/var/www/snipe-it/public"
<Directory /var/www/snipe-it/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
/ etc / apache2 / sites-available / phpipam.conf
<VirtualHost *:80>
ServerName phpipam
DocumentRoot /var/www/phpipam
<Directory /var/www/phpipam>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
/ etc / apache2 / sites-available / speedtest.conf
<VirtualHost *:80>
ServerName speedtest
DocumentRoot /var/www/html
<Directory /var/www/html/speedtest>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
您可以按照以下步骤检查问题所在。
1)检查/ etc / hosts文件是否具有ServerNAMe的正确DNS条目
snipeit.x localhost
phpipam.x localhost
speedtest.x localhost
2)确保ServerName指令与主机匹配。 ServerName应该与用于访问它的DNS名称完全相同。
3)检查Apache VirtualHost配置
apache2ctl -S
3)以调试模式运行Apache。并检查apache如何解析您的请求。
apache2ctl -t -c /path/to/apache.conf