我在路由器后面运行了一个服务器(ubuntu18.04),用于测试各种web应用程序(狙击-it、phpipam和libre速度测试)。没有资源让单个机器在其上运行,也不想深入研究虚拟机,我想我可以在apache的同一个实例上运行它们,并通过更改虚拟主机配置来访问它们。
当我运行单个虚拟主机时,每个站点都运行良好。当我尝试运行多个站点(a2ensite xxx和a2ensite yyy)时,就会出现具有较低字母名称的站点(本例中为xxx)。
我不知道Alias或者重写是不是该走的路。我无法真正改变开发人员选择编写应用程序的方式,以及他们想把程序放在哪里。我能理解他们为什么把它们放在那里。我只想能访问所有的网站/网页/应用程序.
/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>发布于 2020-01-09 17:05:12
您可以按照以下步骤检查问题所在。
1)检查/etc/host文件是否有适合ServerNAMe的DNS条目
snipeit.x localhost
phpipam.x localhost
speedtest.x localhost2)确保ServerName指令与主机匹配。ServerName应该与用于访问它的DNS名称完全相同。
3)检查Apache VirtualHost配置
apache2ctl -S3)在调试模式下运行Apache。并检查apache是如何解析请求的。
apache2ctl -t -c /path/to/apache.conf发布于 2020-01-13 15:26:30
要实现您想要的目标,您可能需要这样做:
将这两个目录移动到/var/www/html。并删除它们的所有虚拟主机(),除了(用于/var/www/html,即000-default.conf )。当您将它们存储在不同的目录中而不是这个简单的技巧时,它将变得非常复杂。
编辑:
用户有依赖于这些路径的应用程序。因此,最好的方法是在Apache中使用别名。确保在Apache中加载了mod_alias。将其添加到httpd.conf的末尾。
Alias "/snipeit" "/var/www/snipe-it/public"
Alias "/phpipam" "/var/www/phpiam"
#And, speedtest is already inside the folder.您可以访问这样的站点:http://localhost/snipeit、http://localhost/phpiam、http://localhost/speedtest。或者你可以使用IP地址来访问它。
https://stackoverflow.com/questions/59654591
复制相似问题