單位一部 Web Server 突然掛了,應急臨時以VM方式架設一部。
作業環境:Ubuntu 16.04.3 Server
安裝 Apache 2.4.18 作為網站伺服器
(PHP 使用 7.0.22 / 5.6.31)
將原各個網站備份還原至主機後卻出現問題。
狀況:
凡以 index.htm 或 index.html 檔案為首頁皆正常。
若以 index.php 即出現錯誤誤息
Forbidden
You don't have permission to access /index.php on this server.
(如圖)
log 檔也看不出異狀,在網路上找了快三小時,不外同樣方法,皆試過無效。
方法一:
.htaccess 檔案加入
DirectoryIndex index.html index.htm default.htm index.php
(執行 service apache2 restart)
方法二:
/etc/apache2/sites-available/default
AllowOverride None
改為
AllowOverride All
(執行 service apache2 restart)
請教有經驗的網友是否有解決辦法?
0920.1152 補充:
後來在另一個 Log 檔找到以下兩種訊息(一直重覆)
AH01630: client denied by server configuration: /var/www/abc.com.tw/web/index.php
Invalid command 'ExpiresActive', perhaps misspelled or defined by a module not included in the server configuration
0920.1755 補充:
剛剛索性把其中一個網域(站)拿來安裝 Opencart 3.0.2 ,竟然可以!!不因 index.php 受限
基本上,造成因素不外三大類,包括程式碼有用短標籤語法。不過問題中提到使用 Opencart 3.0.2 安裝是可行的,猜測可能是版本程式碼相容性因素。
原伺服器若使用 Ubuntu 12.04.X LTS,系統預設應為 PHP 5.3.X。而 Ubuntu 16.04.X LTS 系統預設則為 PHP 7.0.X,縱使自行安裝 Multi PHP,也多是 PHP 5.6.X 或 5.5.X。所以有可能是 PHP 版本的問題,得修改原程式才能徹底解決。
日前也有類似案例: http://kids.nmmba.gov.tw 這是跟臺北市政府一樣採外包設計的網站(世大運包的志工資料外洩也是)。緊急處理的方式請私訊給我。
很有可能是.htaccess影響
把這檔案刪除就知道了