先说个题外话,之前一直以为发文章时可选的tag只有鼠标点击tag区时,悬浮框里显示的那些,今天尝试着在tag区输入文本,才发现原来还有自动联想功能,真不错,又有新发现,哈~

言归正传,下面整理出来的这些字段,是安装 Apache 和 PHP 后可能需要修改的字段,因为自己没有按默认路径安装使用,所以有几处涉及到路径的地方都要自己设置,尤其是 Apache 的 alias 这个字段,研究了好几天才搞定,感谢 Google,感谢 StackOverflow。


Apache

注意:不同版本的 Apache,某些命令可能会不一样,比如 Alias,所以如果配置不生效,记得根据当前版本号查官方文档,血的教训啊……

ServerRoot

该字段配置 Apache 的路径,不要保留最后的斜线。

ServerRoot "d:/Code/Projects/WAMP/Apache24"

Listen

该字段绑定 IP 及端口,第二行为第一行对应的 ipv6 地址。

Listen 127.0.0.1:80
Listen [::1]:80

LoadModule

这里要以 module 方式载入 PHP5 模块。

LoadModule php5_module "d:/Code/Projects/WAMP/PHP/php5apache2_4.dll"

下面还要对应加上一段代码,配置 PHP 的路径及其它相关配置。

<IfModule php5_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "d:/Code/Projects/WAMP/php/"
</IfModule>

ServerName

配置服务器名,这里用常见的 localhost,端口号不写则为默认的 80 端口。

ServerName localhost

DocumentRoot

该字段配置网站根目录,结合 Directory 字段设置访问权限。

注意倒数第二行的 Require local,这是 Apache 2.4 中的用法,和之前的不同了。

DocumentRoot "d:/Code/Projects/WAMP/xinlan_exam"
<Directory "d:/Code/Projects/WAMP/xinlan_exam">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require local
</Directory>

IfModule alias_module

该字段配置别名,也就是上面 DocumentRoot 之外的路径要如何访问。

对于下面的这段设置,在浏览器中通过 http://localhost/website 访问就可以了~

<IfModule alias_module>
    Alias /website d:/Code/Projects/Website

    <Directory d:/Code/Projects/Website >
        Options Indexes FollowSymLinks MultiViews
        Require local
    </Directory>
</IfModule>

IfModule mime_module

该字段配置不同扩展名的文件的 MIME 类型。

<IfModule mime_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .html
</IfModule>

Hide Server Signature

该字段用于关闭 Apache 的 Server_Token,嗯,为了安全。

ServerSignature Off
ServerTokens Prod

VirtualHost

该字段配置虚拟主机,作用与上面的 Alias 是类似的。

<VirtualHost localhost:8801>
    DocumentRoot "d:/Code/Projects/xinlan_exam_weixin"
    ServerName xinlan_exam_weixin
    ErrorLog "d:/Code/Projects/xinlan_exam_weixin/logs/error.log"
    TransferLog "d:/Code/Projects/xinlan_exam_weixin/logs/access.log"
    <Directory "d:/Code/Projects/xinlan_exam_weixin">
    Order allow,deny
    Allow from all
    </Directory> 
</VirtualHost>

PHP

log_errors

开启这个选项之后,PHP 就会向指定位置的日志文件中写入所有错误。

log_errors = On

error_log

该选项与上面的 log_errors 结合,指定日志文件的位置。用 Everything 查找该文件后发现,启动 Apache 服务时,与 PHP 配置有关的错误会输出到 Apache 的根目录下,比如 php.ini 中的配置错误导致模块未能正常加载。而与项目文件有关的错误,比如某个 php 文件运行报错,就会将错误输出到这个项目的根目录中。

error_log = php_errors.log

extension_dir

该选项配置 PHP 的扩展模块所在目录,测试后发现,下面两种写法都是 OK 的,应该是第一种绝对路径和第二种以 PHP 所在目录为根目录的相对路径都能正常识别。用绝对路径的时候,要注意斜线的形式。

Update: 配置网站的时候发现,第二种相对路径的方式会导致测试页面时首页验证码不显示,改为第一种绝对路径就 OK 了,但是不确定是不是更改这里解决问题的。

extension_dir = "d:\Code\Projects\WAMP\php\ext"
extension_dir = "ext"

extension

该选项用于启用指定的模块。

去掉下面语句前面的分号:

注意:最前面不要有空格,不要问我为什么……

extension=php_curl.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll

date.timezone

该选项设置 date 函数的默认时区,前面配置过的记录错误的日志文件中输出的时间也会对应更改。

date.timezone = Asia/Shanghai

expose_php

该选项也是为了安全。

expose_php = Off

samsara0511
932 声望729 粉丝