今天遇到一個新機器,把舊機器上的 Apache config (httpd.conf) 和程式直接丟上去,卻跑出錯誤訊息:
403 Forbidden
You don't have any permission on ... (路徑名稱)
原來是舊機器用 Apache 2.2,新機器是 Aapche 2.4,config 要做一些調整。
今天遇到一個新機器,把舊機器上的 Apache config (httpd.conf) 和程式直接丟上去,卻跑出錯誤訊息:
403 Forbidden
You don't have any permission on ... (路徑名稱)
原來是舊機器用 Apache 2.2,新機器是 Aapche 2.4,config 要做一些調整。
前幾天因為 PhotoShop CS2 一直掛掉,錯誤訊息是:
Microsoft Visual C++ Runtime Library Runtime Error!
Program: D:\Adobe\Photoshop.exe R6025
一直以來都管理 Windows 上的機器居多,在 Windows 要把模組打開,通常就是到 Apache 目錄下的 httpd.conf,把註解掉的模組檔 (*.so) 前面的註解拿掉,譬如說,遇到以下的錯誤訊息,是無法載入網址重寫 (URL rewrite) 的模組的錯誤:
Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
在 Windows 時,只要到 Apache\conf\httpd.conf,把以下這行前面註解的井字號 (#) 拿掉,然後存檔重啟 Apache 就可以了:
LoadModule rewrite_module modules/mod_rewrite.so
但是最近有一台新的機器,作業系統是 Linux 的 SUSE,我試著要 vi /etc/apache2/sysconfig.d/loadmodule.conf,但是發現每次重啟 Apache 後,這個 config 檔的內容都會被還原到我修改之前的狀態。
前幾天有安裝 AWStats 來分析 Apache 上的網站 log:《[Apache] 設定 Log 分析工具 AWStats:解決 403 forbidden 錯誤的問題》,不過後來發現,我們網站有兩台 web server(假設 IP 是 127.0.0.1 & 127.0.0.2),我取回兩台主機的 log 分別 copy 到我要跑 AWStats 的主機上的 C:\logs\site1 和 C:\logs\site2 這兩個資料夾。
要合併同時轉換這兩個資料夾裡的數據,要打開 AWStats 對各站台的設定檔來調整合併 LOG 的相關設定 (logresolvemerge.pl)。
打開 C:\AWStats\wwwroot\cgi-bin\awstat.{YOUR_SITE}.conf 改設定:
因為某批網頁之前沒有加上 Google Analytics code,所以因應同事需要,裝了 AWStats 來分析早期的網頁 log。在網路上找到這篇頗詳細的安裝教學《awstats介紹與安裝教學》,照上面的設定稍微調整後安裝如下:
# Directives to allow use of AWStats as a CGI
在 Apache 裡,可以在 .htaccess 或 httpd.conf 這兩個檔案設定轉址 (URL rewrite, 網址重寫),這次收到的任務是希望將特定的網頁(例如使用者登入、個人資料填寫等等),轉向 HTTPS。
原本打算直接在 HTML code 裡把 <a> 標籤裡的 href 屬性直接設成 https 開頭,就此交差結案,不過實際操作一陣子後,發現只要 user 有進入過一次 "https://" 開頭的頁面,接下來的相對連結也都通通會轉向 HTTPS。但某些功能擔心會在 HTTPS 下出問題,尤其之前檔案下載頁會出些狀況:[PHP] SSL 網站在 IE 會發生下載錯誤的問題修正,所以還是決定找點解法來設定轉址。
研究了一陣子發現 Apache 的 Rewrite 模組有 "Skip" 這個 tag,設定 [S=N] (N 為要跳過的規則數量),就可以讓 Rewrite 對特定的條件生效,於是有了以下設定。
今天想讓網站在瀏覽時能加上權限控管機制,所以設了 .htaccess,但一設就出現錯誤訊息 "Internal Server Error"。
追查順序如下: