2015年8月30日 星期日

LNAMP 安裝 WordPress 與 Nginx Proxy 設定

LNAMP 安裝 WordPress 與 Nginx Proxy 設定

安裝步驟如下:

1. 下載 WordPress 正體中文版
2. 解壓縮並將主檔目錄 copy 到 /var/www/html/wp
3. 進入 wp 上層目錄
4. $ sudo chown -R www-data:www-data wp
5. $ sudo chmod -R 644 wp
6. $ sudo chmod -R a+X wp
7. MySQL 先建立一個名稱為 wordpress 的資料庫
8. 瀏覽器訪問 wp 主頁
9. 輸入相關資料開始安裝

安裝完後使用控制台或編寫文章都沒問題,但要瀏覽網誌時出現 頁面重新導向不正確 ERR_TOO_MANY_REDIRECTS 的錯誤! --- 將 WordPress 的網址加上 8080 port 就都沒問題了, 看起來 LNAMP 的 proxy 設定真的頭大呀! 嘗試了多種方法, 找到一種可暫用但感覺怪怪的方案, 請往下看 ....
在剛安裝好的 LNAMP 環境下, Nginx 當前端、Apache 當執行 php 的後端, 安裝好 WordPress 要執行時出現問題!

WordPress 的 wp-admin 執行沒問題, 但要檢視剛建好的 WordPress 網站主頁面時 Chrome 瀏覽器主頁直接顯示 "這個網頁含有重新導向迴圈" ERR_TOO_MANY_REDIRECTS 的錯誤而無法正確執行。

網上有很多類似的問題, 但對這個狀況好像沒啥解釋也不太實用!
猜測問題來源是 WordPress 本身的做法是每個 php 程序執行完後網址都轉跳回 WordPress 的根目錄。
試過 disable cache : 失敗!
試過 plugin disable xml-rpc : 失敗!
試過 alias root : 失敗!
試過複製 location / 成 /wp 和 /wp/ : 失敗!

最後成功的方法是加了以下一段設定:
location ~ ^/wp/$ {
      proxy_pass http://localhost:8080;
      include proxy_params;
   }
直接把 /wp/ 這個位址的 request 全轉給 apache 處理 (希望 document 中的非 php link 還是透過 Nginx 處理, 不然 LNAMP 架構就沒意義了) 怪的一點是 Nginx 的設定檔已經有以下這一段了呀:
location ~ .php$ {
      proxy_pass http://localhost:8080;
      include proxy_params;
   }
明明是已經知道網址給 /wp 時會自動試改為 /wp/ 然後讀取 /wp/index.php 所以才有半法轉 apache 處理完發現要重新轉址回 /wp/ ! 為啥處理一半又途然沒法處理 /wp/ 這個目錄, 要在 Nginx 設定檔中明確宣告才有辦法再轉? 搞不懂.....!!! 就暫時先這樣用了! 改天試試裝第二套 WordPress 並存看會不會有更多問題!
後來在 /wpdue/ 下試裝第二套 WordPress 並存也成功了, 不過 Nginx 設定要改一下, location ~ ^/wp/$ 把他暫改成 ^/wp.*/$ 另外多個 WordPress 可統合成 Network, 共享程序資源, 分管 Contnent Data / Attachement 就像建了一個 WordPress.com 網站, 這個還要再試試! http://codex.wordpress.org/Create_A_Network

沒有留言:

張貼留言