按照的正常情况下
安装完成了一个Apache后,使用默认配置就可以使它跑起来。
不过可以通过以下一些配置就可以使部分功能启用起来
httpd.exe -w -n "Apache2" -k start
1、虚拟机:
在Apache的conf/httpd.conf中,查找httpd-vhosts.conf,然后把前面的#注释符拿掉,使得
Include conf/extra/httpd-vhosts.conf这个配置句生效
然后打开conf/extra/httpd-vhosts.conf文件
会看到一些默认配置
<VirtualHost *:80></VirtualHost>标签符
这个标签符表示着一个虚拟机的配置在这里
而”*:80”则“*”的表示绑定任意IP,而“:80”是表示通过80端口进行监听
ServerAdmin
填写管理员邮箱的,在以前,一些页面如果出了问题,Apache就会自动贴上了这个配置值,用于希望有好心人可以发邮件通知站长。现在,基本不需要,所以一般这行是可以删除的。
DocumentRoot
填写这个虚拟机的Web入口目录,也就是脚本的入口目录,也可以说是网站的跟目录对应的文件目录。
譬如你希望通过访问网站的根目录,就可以访问到文件目录D:/PHPCode,那么这里的配置值就是填写D:/PHPCode。
需要注意,如果目录的名称中有空格,则需要使用双引号来把路径包起来。
如:”D:/Program Files/PHPCode/”
ServerName
就是这个虚拟机访问的域名,或者代表名。如果想知道为什么,可以查看HTTP协议头的Host参数部分
ServerAlias
就是这个虚拟机访问的别名,可以用作泛域名使用。
如: *.sanywork.cn
不用时可以删除。
ErrorLog
用户记录该虚拟主机发生的错误日志。目录是相对目录,相对于在httpd.conf的ServerRoot的配置目录
CustomLog
用户记录该虚拟主机的执行日志。目录是相对目录,相对于在httpd.conf的ServerRoot的配置目录
2、默认访问文件
DirectoryIndex是配置默认访问文件的名字
根据配置顺序访问,空格分隔,第一个文件名找不到时,找第二个;第二个文件找不到时,找第三个,直到找到文件为止。
如果找不到文件,并且<Directory>标签配置的Options里面没有Indexes,则返回HTTP 404禁止访问错误;如果有配置Indexes,则返回目录的索引列表。
3、让Apache加载PHP模块
如果在安装PHP时,有选择好正确的Apache目录时,一般会在httpd.conf中看到这个配置
LoadModule php5_module "PHP安装目录/php5apache2_2.dll"
上面的”PHP安装目录”就是安装PHP的目录
所以如果没有看到这行配置,可以随意找个地方(比较推荐跟那些LoadModule摆在一起)写下来
在PHP的目录里面都会有对应Apache 1.X、Apache 2.0、Apache 2.2的DLL(动态连接库),所以要注意自己的apache版本来写对应的文件名。例如上面的例子的文件名,就是针对Apache2.2的。
4、让Apache启动PHP解释
如果在安装PHP时,没有勾上注册*.php文件的话,相信在httpd.conf里面是不会出现以下配置句的
AddType application/x-httpd-php .php
这个配置句就是让Apache知道PHP这个文件类型,从而可以让Apache看见访问*.php文件的时候,就会调用PHP解释器。
如果没有看见,那就在配置文件的任意(可以在底部)地方加入这一行吧
5、设置PHP默认配置目录
如果通过PHP安装文件安装PHP,并且安装时设置Apache配置目录是正确的话,那么应该会在httpd.conf找到以下一个配置行
PHPIniDir "你的PHP安装目录"
如果没有找到,那么可以把这行加起来,这样就可以使得在PHP安装目录下的php.ini文件生效起来了。想知道php.ini文件当前是读取哪一个的话,可以通过phpinfo()函数,查看Loaded Configuration File的值
6、打开PHP错误提示
在PHP目录中,查找 display_errors ,把其值设置成 On
把error_reporting 设置成 E_ALL
时区设置
如果apache中的httpd.conf中存在以下语句
# PHP Timezone
<IfModule mod_php5.c>
php_value date.timezone "Asia/Shanghai"
</IfModule>
将其设为想要的时区
打开php.ini,在其中找到date.timezone,并把其改为
date.timezone = Asia/Shanghai(或者PRC)即可,或在程序运行中使用date_default_timezone_set('Asia/Shanghai')
结语
到目前为止,正常的开发应该就已经可以满足了。
需要学习更多的可以参考Apache Http Server的官方文档