前言
自行架 WordPress 站的朋友多數使用 Sharing web hosting 服務,主要是因為平價、簡單,幾乎即買即用。不過這類服務仲使不限流量與容量,但都會有公平條款和嚴格的 CPU 使用量限制,所以瀏覽人次一多,就會被 suspend。就算平時人數不多,只是有一篇文章受歡迎而爆紅,都會立即被停用。
其實使用 VPS 所需的金錢和技巧並非想像般多,DigitalOcean 最平亦只需 US$5 一個月,比不少 web hosting 更平,而所需要的技巧,網上都有大量教學,大部人都能輕鬆應付,因為只要 copy and paste 就可以了。
DigitalOcean 的 $10 優惠卷
https://www.digitalocean.com/?refcode=8b33ab6f2cf6
日本 ConoHa 增值 ¥2000 日元送 ¥2000 日元
https://www.conoha.jp/
現在使用 VPS 不用逐個元件安裝,有 package 輸入一句就可以了,之前企企使用 serverpilot,是一個不錯,非常推薦的 control panel。
Nginx + Apache 這個兼顧速度和兼容性的組合,serverpilot 本身佔用資源亦很低,所以之前企企都以為會一直使用 serverpilot.
不過企企鐘意試東試西,看到更好又會想試,所以並不滿足,始終 LNMP,純 Nginx + PHP-FPM 的環境才能完全揸盡伺服器的效能。
但 Nginx 的 rewrite rule 和 Apache 不同,尤其使用 W3 Total Cache 後就更複雜,所以對初學者有一定難度。
Easyengine 這個 command line 的安裝工具正好令所有設定簡化,非常容易就架好伺服器。
另外 Easyengine 最大好處就是已經預先 compline 了 nginx cache,不用自行 compile,所以方便得多。
(下面以 ubuntu 14.04 作例子)
Pre-Install
首下載 putty.exe(一般來說是 Windows on Intel x86 版) : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
開啓 Putty 後在 Host Name 打上你 VPS 的 IP,之後按下 Open 按鍵。
輸入 username(一般來說是 root)和 password 後就可以進入 VPS 了。
(注意:滑鼠右鍵在 Putty 就是貼上)
之後這個步驟並非必要,在 Linode、Digital Ocean、自行安裝的 Ubuntu 等等都沒有需要。但如果是 OpenVZ 的 VPS 如 Servermania 則有機會要安裝這個。
1 | sudo apt-get install software-properties-common |
安裝 Easyengine
首先 update 所有已安裝的 package
1 | sudo apt-get update && sudo apt-get -y dist-upgrade && sudo apt-get -y autoremove |
另外要設定時區,因為 easyengine 內的 php.ini 會跟系統的時區一樣。
1 | dpkg-reconfigure tzdata |
選擇 Asia –> Hong Kong 就可以了。
之後安裝easyengine
1 | wget -qO ee rt.cx/ee && sudo bash ee |

安裝後可以輸入以下 command 來令 easyenine 可以 auto complete (按 tab 鍵可以自動完成指令)指令
1 | source /etc/bash_completion.d/ee_auto.rc |
之後就可以安裝 WordPress,雖然 easyengine 可以支援不同 plugin,但暫時以最高效能的設定為例子,將 example.com 改為你的 domain 就可以了。
1 | ee site create example.com --wpredis --php7 --letsencrypt |
按 3 次 y 和填了名字和 email 之後,恭喜,你旳 wordpress 已設定完成可以使用了。
是否很簡單呢?其實現在使用 VPS 就是如此簡單。
Happy Blogging.
如果忘了 Easyengine 的 username 和 password 可以打
1 | sudo ee secure --auth |
如果忘了 wordpress 的 password 可以打
1 | sudo ee site update example.com --password |
(企企按:sitemap 方面建議使用 WPSEO / YOAST SEO,因為 easyengine 已內置了有關的 rewrite rules)

記得抄下呀
當然 easyengine 還有很多 option,現在約略為大家解釋一下,詳細可以看看 Easyengine 的 document,如果初學者的話可以忽略不理。
除 redis 外,easyengine 還支援 nginx fast-cgi cache, w3 total cache, wp supercache 三種,大家只需要制作網站時將上面 –wpredis 替換為以下 command 就可以了。
–w3tc 指 W3 total cache
–wpsc 指 wordpress super cache
–wpfc 指 nginx fast-cgi cache
–wp 指不使用任何 cache
如果之後想更新另一種 cache,如想轉回 w3tc 的話,輸入以下 command 就可以了。
1 | ee site update example.com --wp --w3tc |
而 –hhvm 亦是 optimal,HHVM 是 Facebook 為改善速度而制作,並開源的 PHP 引擎,比 PHP-FPM 更快,但只能兼容 90% 的 PHP code,而 WordPress 本身已經 100% 支援 HHVM,不過可能有少量 plugin 未能支援 HHVM,但 easyengine 會用 PHP-FPM 作為 fall-back,所以不會有不能執行的情況。
(企企按:經過一輪使用後,發覺 HHVM 有時會佔用 2%-3% CPU 資源但完全沒有反應,要 2-3 分鐘 timeout 後才交由 PHP-FPM 執行,所以企企已經轉用 PHP7 代替 HHVM)
–letsencrypt 是免費的 HTTPS SSL 加密的認証,令到網頁傳送可以加密,有利 Google SEO 排名。
Let’s Encrypt 的 certificate 只有 90 日有效日期,不過 Easyengine 會自動幫用戶續期,所以不用擔心。
在管理 WordPress 很多時都需要使用 phpmyadmin 等工具,其實 easyengine 亦已內置,企企會建議安裝以下數個工具:Adminer, phpMyAdmin, phpMemcachedAdmin, FastCGI cleanup script, OPcache, Webgrind, Anemometer.
不過其實一句 command 就可以了
1 | ee stack install --admin |
安裝後就可以使用 phpmyadmin 等工具了。

還有這個恐嚇字句不需理會,純因為你沒有買 SSL cert 的警告而已
phpmyadmin 所需要用的 mysql username 和 password 可以在 wp-config.php 找到

另外,如果需要 mysql 的 root password,可以以 root 身份打 cat /root/.my.cnf
就可以看到 mysql 的 root password.
將 WordPress 轉去 Multisite
Easyengine 亦支援 multisite,制作 multisite 只要輸入以下 command(Multisite 一般人會比較少用)
1 | ee site create example.com --wpsubdir --wpredis --php7 |
如果想由現在網站由 single site 轉去 multisite 的話只需要
1 | ee site update example.com --wpsubdir |
Update Easyengine
如果更新 php / nginx 等元件的話,只需要打以下 command 就可以。
1 | sudo ee stack upgrade |
更新 easyengine 亦很簡單,以下一句就可以了
1 | ee update |
P.S. 上面 username 和密碼那麽大方任看,當然是因為那個只是暫時起出來截圖用的 WordPress,本文刊出之日早已 delete 了。
少量改善優化
預設 Easyengine 的檔案上載上限是 100MB,一般人來說都足夠使用,但如果想上載大一點的檔案就需要改動一下。
需要改動的是 php.ini,由於有 php5.6 和 php7.0,所以需要改兩次。
1 | vi /etc/php/7.0/fpm/php.ini |
尋找以下設定,將已經 Highlight 的設定值更改,留意第 16 行的 max_input_vars 預設並沒有,所以要自行加上去。
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | zend.enable_gc = On expose_php = Off max_execution_time = 0 max_input_time = 0 max_input_vars = 5000 memory_limit = 256M error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT display_errors = Off display_startup_errors = Off log_errors = On log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = Off html_errors = On variables_order = "GPCS" request_order = "GP" register_argc_argv = Off auto_globals_jit = On post_max_size = 100G auto_prepend_file = auto_append_file = default_mimetype = "text/html" default_charset = "UTF-8" doc_root = user_dir = enable_dl = Off file_uploads = On upload_max_filesize = 100G max_file_uploads = 200 allow_url_fopen = On allow_url_include = Off default_socket_timeout = 60 |
同樣地 php 5.6 版本的 php.ini 也要改一次。
1 | vi /etc/php/5.6/fpm/php.ini |
- Contents
- Page 1: 前言
- Page 2: 將現有網站轉去 easyengine