Apache Server 2.4 與 2.2 版有一些設定上的差異,若升級時設定檔沒有修正將無法啟動。Tsung Hao 大神的 這篇文章 有整理了一些,可直接參考。本文只記錄一些額外的東西。

這篇的狀況是做完升級後 Apache 服務沒有起來,啟動服務時出現這段訊息:

* Starting web server apache2
*
* The apache2 configtest failed.
Output of config test was:
AH00526: Syntax error on line 60 of /etc/apache2/sites-enabled/000-default.conf:
Either all Options must start with + or -, or no Option may.
Action 'configtest' failed.
The Apache error log may have more information.

意思就是說關於 Options 這行的設定後面接的每一個 option value 你要全部上 + 或是 -,又或是全部都不加,不然在 config test 時就無法通過。解法就如同字面意思,要嘛全加,要嘛都不加。

<Directory /var/www/>
    Options -Indexes +FollowSymLinks +MultiViews
    AllowOverride FileInfo
    Order allow, deny
    allow from all
<Directory>

如果原設定檔的 option value 有點多,也可以把 value 獨立寫一行,像這樣

<Directory /var/www/>
    Options FollowSymLinks MultiViews
    # 需要 +- 號的 value 獨立出來
    Options -Indexes
    AllowOverride FileInfo
    Order allow,deny
    allow from all
<Directory>

apachectl configtest 只會偵測到一個錯誤點就停下,不會一次全部列出,所以要一步一步找出所有還沒修改到的地方,直到出現 Syntax OK後,就可以啟動了。

apachectl configtest
Syntax OK
sudo service apache2 start
* Starting web server apache2 ... done.

1 則迴響

  1. 我們公司某個網頁用apache struts 2.3.15.3
    環境是windows server 2012 standard
    因為資策會公告有安全漏洞,
    所以要更新到2.3.32
    只是這系統很久之前負責人已離職,
    因此上網求救如何更新,
    需要詳細步驟,感恩!

    冰鎮星誠

留言