Apache 2.4 及 PHP 5.6.22 配置文件整理

先說個題外話,以前一直覺得發文章時可選的tag只有鼠標點擊tag區時,懸浮框裏顯示的那些,今天嘗試着在tag區輸入文本,才發現原來還有自動聯想功能,真不錯,又有新發現,哈~php

言歸正傳,下面整理出來的這些字段,是安裝 Apache 和 PHP 後可能須要修改的字段,由於本身沒有按默認路徑安裝使用,因此有幾處涉及到路徑的地方都要本身設置,尤爲是 Apache 的 alias 這個字段,研究了好幾天才搞定,感謝 Google,感謝 StackOverflow。html


Apache

注意:不一樣版本的 Apache,某些命令可能會不同,好比 Alias,因此若是配置不生效,記得根據當前版本號查官方文檔,血的教訓啊……mysql

ServerRoot

該字段配置 Apache 的路徑,不要保留最後的斜線。web

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

Listen

該字段綁定 IP 及端口,第二行爲第一行對應的 ipv6 地址。sql

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

LoadModule

這裏要以 module 方式載入 PHP5 模塊。apache

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 中的用法,和以前的不一樣了。app

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
相關文章
相關標籤/搜索