LEPP configuration for WordPress

是說在新 blog 上線數週之後,就在大年初一那天,

掛了

無聲無息的掛了0rz…

查看一下 access.log,似乎是被一台電腦不斷送 http request,導致系統負載過高,

網頁開啟速度慢不說,sys% 還飆到 99%,過了不久後就完全連不上了 囧。

(至於為什麼會這麼嚴重…去問 Apple 吧…)

想想還是趁這個機會把 Web Server 換成聽說比較安全,

靜態網頁處理也比較快的 Nginx

因為大學時有安裝過,知道 PHP 在 Nginx 上面是以 FastCGI 的模式運作,

可是在 OS X 上面的編譯環境一直出現問題,daemon 的操作又不直覺。

最後還是灌回 Linux,選用的 distribution 是 Linux Mint

之前灌 Ubuntu/Mint 時遇到的 Graphics 2500 顯示問題在 12.10 以後已經完全解掉,

apt 安裝套件輕鬆愉快,不一會兒就把環境設定好了。

不過還是遇到了一些問題,在此做個筆記。

1. pg 的大小寫問題:這個應該是重灌前就存在的問題,因為我資料庫不是使用 WP 官方推薦的 MySQL,而是使用 PostgreSQL,對大小寫判斷很嚴格。於是,如果在 error.log 當中出現下面這種錯誤:

可以在 wordpress 安裝資料夾中執行 grep -r ‘p/.id’ * 找到相關的程式碼,以我的例子來說是在 wp-includes/link-template.php 當中,把 p.id 代換成 p.ID 即可。

2. pg 的寫入權限:又是一個 pg 的問題,如果發現 pg_restore 還原資料庫之後,無法新增/修改文章,很可能是 database 的 owner 沒有連線權限(同樣可以從 error.log 看得出來),這時需要執行此 SQL 語法:

應該就可以正常連線了。(補充說明一下,如果要確定目前少了什麼權限,可以在 psql 裡面下 \\dp 確認!)

3. (追記)剛才發現上傳圖檔時會有問題,係 Nginx 的上傳大小限制,在 nginx.conf 的 http {} 加上此行即可:

心得:

  • Nginx 的設定檔真是一個難搞的東西,有空要來更進一步研究它…
  • 還是不要讓 OS X 執行什麼 server 的服務,這不是她應該做的…

參考資料:

  1. PostgreSQL – Gentoo Wiki
  2. PostgreSQL: Documentation: 9.1: GRANT
  3. Nginx « WordPress Codex
  4. WordPress database error: column p.id does not exist | WordPress using Postgres
 

Sol Lee

Taiwanese. (A little) Python & R & Java programmer. I have interest in IT and ACG.