需求分析
针对此课题的应用,本次具体是在GLPI的配置过程中。配置好GLPI的环境后,需要在浏览器地址栏键入“IP/GLPI”,例如“192.168.1.76/glpi”,而在GLPI的配置中,实际上只有这一个目录,所以希望在直接键入“192.168.1.76”之后便出现GLPI界面。
另外,在配置的服务器具有多个目录路径时,也往往有一个main页面。在这种时候,我们也倾向于将IP地址或者域名直接指向这个页面。
本课题只涉及IP地址指向特定页面。
具体实现
使用IP地址
直接修改根目录
最简单粗暴的方法,打开httpd.conf,直接修改其根目录:
vim /etc/httpd/conf/httpd.conf
找到DocumentRoot,它的作用是“定义该目录、及子目录的配置属性,指定一种URL映射的根目录路径”[^1]。将其直接修改为你所想指向的路径,如:
DocumentRoot "/var/www/html/glpi"
在监听端口处加上你的IP地址,找到
Listen 80
将其修改为如下格式:
Listen 192.168.1.76:80
打开浏览器,键入你配置的IP地址,即可打开所需的界面。
利用虚拟主机
首先,在httpd.conf中添加包含关系:
Include conf/vhost/*.conf
这里的“vhost并不是固定名称,只需和下一步新建的目录名一致即可。”
然后在 /etc/httpd/conf/ 目录下新建虚拟主机目录:
mkdir vhost
进入,新建一个 *.conf 文件,打开编辑:
cd vohost
vim glpitest.conf
在其中添加虚拟主机信息:
<VirtualHost 192.168.1.76:80>
ServerName glpi.com
DocumentRoot /var/www/html/glpi
<Directory "/var/www/html/glpi">
AllowOverride ALL
# Allow open access:
Require all granted
</Directory>
</VirtualHost>
配置完成。
使用域名
这种方法,目前也采用虚拟主机的配置。和IP地址不同的是,要将虚拟主机信息中的IP地址改为使用的域名:
<VirtualHost glpi.com>
ServerName glpi.com
DocumentRoot /var/www/html/glpi
<Directory "/var/www/html/glpi">
AllowOverride ALL
# Allow open access:
Require all granted
</Directory>
</VirtualHost>
所遇问题
在上次配置过程中,无论是哪种方式配置,都会显示
The requested URL /glpi/front/ was not found on this server.
一般情况下这是在配置好IP直接访问目录的情况下,访问 “IP/路径” 时才会出现的情况。
关闭各个路径的安全策略,允许所有访问请求,重启多次apache,仍然无法解决,至今没有发现原因。
次日重新连接,莫名其妙可以访问了。这是待解决的疑问。
文中如有错误,欢迎指出。欢迎提问交流。
[^1]《Apache中DocumentRoot和Directory的区别》
https://blog.youkuaiyun.com/dxcyber409/article/details/80942389