以wampserver为例:
httpd-vhosts.conf
和httpd.conf
在D:\wamp64\bin\apache\apache2.4.23\conf
中
里面内容若是改错了,在original中复原(复制粘贴到错的位置)
注意:配置文件中的行首#是指注释
监听端口可以随意修改为任意一个未被其他程序监听的端口,可以通过设置配置文件httpd.conf
中的Listen
指令后面的数字修改
Listen 80
默认 Apache 的网站根目录是安装目录中的 htdocs
文件夹,为了方便对网站文件的管理,一般我们会将其设置在一个自定义目录中(如果你不介意其实不修改也无所谓)。
如果需要设置网站根目录,可以通过修改配置文件 httpd.conf
中的网站根目录选项切换。
以下例子修改到 D:/www 目录下
DocumentRoot "E:/desk/github/github"
当客户端访问的是一个目录而不是具体文件时,服务端默认返回这个目录下的某个文档(文件),这个文档就称之为默认文档。
配置文件 httpd.conf
的 DirectoryIndex
,默认文档可以配置多个(有前到后依次去找,找到为止,如果没找到任何一个则启用目录浏览)
DirectoryIndex index.php index.php3 index.html index.htm
index.php index.php3 index.html index.htm都是默认文档
禁止启用默认文档(一般公司为了文件保密,不让别人看到)
删除 Option 中的 Indexes
...
Options +Indexes +FollowSymLinks +Multiviews
...
如果一台机器上只有一个网站的话,没有任何问题,但是如果想要在一台机器上部署多个站点,就必须通过配置虚拟主机的方式解决。
具体的操作方式就是在主配置文件 httpd.conf 取消注释
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
然后找到 Apache 的虚拟主机配置文件httpd-vhosts.conf
,添加如下的虚拟主机配置节点,然后重新启动 Apache。(以后这两个地址的文件可直接输入对应 ServerName 进入,而输入localhost
进入httpd.conf
中定义的地址E:/desk/github/github
)
注:第一次浏览器输入自定义域名,可能弹出搜索内容,可以输入:http://ServerName
正确访问
# 域名
ServerName practice
# 根目录
DocumentRoot E:/desk/github/github/QD-practice
# 字典
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
# 域名
ServerName project
# 根目录
DocumentRoot E:/desk/github/github/QD-project
# 字典
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
如果真的要使用project
和practice
域名的话,就只能通过修改 hosts
(地址:Windows:C:\Windows\System32\drivers\etc
macOS:\etc
)文件达到目的,原因很简单:这个域名不是我们自己的,我们没有办法修改这个域名在公网上的 DNS。
注意:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 project
127.0.0.1 practice
PHP 文件的扩展名就是 .php 我们可以尝试在刚刚配置的网站中添加一个扩展名为 php 的文件,具体步骤
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule xml2enc_module modules/mod_xml2enc.so
#在引号中引入php文件地址
LoadModule php5_module "${INSTALL_DIR}/bin/php/php5.6.25/php5apache2_4.dll"
节点中添加 .php 扩展名解析支持 #
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
默认文档配置节点
中添加 index.php
默认文档指的是在访问一个目录而不是具体文件名时,默认执行的文件名
DirectoryIndex index.php index.php3 index.html index.htm
重启Apache