Webinoly 安裝 VPS 教學

Webinoly 安裝 VPS 教學

Written by

Photo by Unsplash+

VPS 服務器上安裝 Webinoly 安裝包是非常容易,它優化了 LNMP WEB 服務性能,增強 WordPress 後台登錄的安全性,讓您的網站更可靠的配置。

我在前幾篇文章中,有簡單的介紹 Webinoly 安裝方法,這一篇裡,會更詳細介紹 Webinoly 安裝及功能,更容易上手 VPS 服務器。

內容目錄:

  • 選擇一台 VPS 服務器
  • 建立一個新系統
  • 開啟 Linode VPS 的 TCP BBR 優化算法
  • 開始安裝 Webinoly LNMP
  • 設置 HTTP 網頁身分認證
  • 開啟 SFTP 功能
  • 開始建立一個 WordPress 網站
  • 安裝 Lets Encrypt SSL 加密證書

選擇一台 VPS 服務器

Webinoly 只能在 Ubuntu 16.04 LTS 系統上運行,所以選擇一台 VPS 是很重要的事情,有的主機商只有配置 Ubuntu 14.04 系統,就無法順利安裝;目前測試 Vultr、Digital Ocean、Google Cloud Platform (GCP)、Linode 都可以順利安裝完成。

以 Linode 2G VPS 為例:

建立一個新系統 (Rebuild)

Linode VPS 建立新系統

建立好之後,點取控制台的 boot,啟動你的 VPS 服務器。

VPS 伺服器上安裝 Webinoly LENP 安裝包是非常容易的事 !

使用 PuTTY 或 Xshell5 登入SSH,先更新 Ubuntu 16.04 LTS 系統:

sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get -y autoremove

選擇時區, Asia –> Taipei

dpkg-reconfigure tzdata
選擇時區 Asia Taipei

開啟 Linode VPS 的 TCP BBR 優化算法

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

保存生效:

sysctl -p

回覆狀態:

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

表示 BBR 功能已成功啟動。

開始安裝 Webinoly LNMP

wget -qO weby qrok.es/wy && sudo bash weby 3

等待十幾分鐘,安裝完成後,將最後的 MySQL 密碼複製下來:

Webinoly MySQL password

設置 HTTP 網頁身分認證

sudo httpauth -add

HTTP-Auth User: yungke
HTTP-Auth Password: 12345

這是登入 IP:22222 工具網頁及 WordPress 後台的網頁認證,如圖:

HTTP Authentication 認證

開啟 SFTP 功能

sudo webinoly -login-www-data

Webinoly 已預設帳號為 www-data,我們只要設置 SFTP 密碼:

sudo passwd www-data
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

開始建立一個 WordPress 網站

你的 DNS 管理建立一組 A 紀錄指向你的 VPS 服務器,我還要替網站安裝 SSL 免費證書,所以要多一個 www 別名,如圖:

DNS A 紀錄和別名
sudo site example.com -wp

回復內容,按 Y 及 Enter

Do you need to setup new MySQL database? [Y/n]
Create WP-Config file automatically? [Y/n]

Database Host [localhost]:
Database Name [webinoly_yungke_me]:
Database User [webinoly_yungke_me]:
Database Password [2nO4qNNd]:
Database Prefix [wp_]:webinoly_

安裝 Lets Encrypt SSL 加密證書

sudo site example.com -ssl-on

Please, enter an email to register your new certificate: //輸入你的 mail 信箱

你的域名和 www 子域名有正確指向此服務器,等一下就會出現申請成功,如下:

MAILTO=hello@yungke.me
15 3 * * 7 letsencrypt renew
SSL have been successfully enabled for site example.com!

2018/03/28 補充:

2018/03/01 之後安裝的 1.3.1 版,已經修正安裝 SSL 證書後,自動 HTTP 導向 HTTPS 的問題,可以忽略下面修改 example.com conf 文件。

因為安裝了 SSL 證書,Webinoly 的 Nginx conf 配置文件只有 443 port,這時你用域名開網頁會出現 LNMP 預設網頁,如圖:

Nginx 預設網頁

需要修改 conf 配置,你才能安裝 WordPress 網站。

打開 /etc/nginx/sites-available/example.com 文件,配置如下。
加入 listen 80 及 http 301 轉向 https 這兩個配置:

server {
        listen 80;
        listen [::]:80;
	listen 443 ssl http2;
	listen [::]:443 ssl http2;

	server_name example.com www.example.com;

	# WebinolySSLstart
	ssl on;
	ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
	# WebinolySSLend
	access_log /var/log/nginx/example.com.access.log we_log; 
	error_log /var/log/nginx/example.com.error.log;

	root /var/www/example.com/htdocs;
        if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
		
	index  index.php index.html index.htm;
...............
以下省略

存檔文件,重啟 Nginx

nginx -t && service nginx restart

這樣你就可以開始安裝 WordPress。

使用 phpMyadmin 資料庫管理,請在網頁輸入 http:// 你的 IP:22222/pma

結語

Webinoly 在很短的時間就能安裝完成一個 LNMP Lunix 系統,自動配置和優化你的 VPS 服務器,使用及維護都不會太難。

如有其他安裝或使用問題,歡迎回覆討論。


2017/12/17 補充:

感謝網友提醒我關於 HTTP Authentication (網頁身分認證) 的問題,如果是購物網站,網頁認證會造成會員的不便,無法登入。

Webinoly 有關閉的指令,執行後會關閉網頁認證:

sudo httpauth -wp-admin-off

不過,這會關閉全部的網站認證,可以針對單一個購物網站關閉網頁認證,修改 wpcommon.conf 文件:

複製 wpcommon.conf 文件,改名為 wpcommon-nohttp.conf

cd /etc/nginx/common
cp -i wpcommon.conf wpcommon-nohttp.conf

修改 wpcommon-nohttp.conf,將 include common/acl.conf 註釋掉,如下:

# WordPress COMMON SETTINGS
# DO NOT MODIFY, ALL CHANGES LOST AFTER UPDATE Webinoly
# Limit access to avoid brute force attack
location = /wp-login.php {
  limit_req zone=one burst=1 nodelay;
# include common/acl.conf;
  include fastcgi_params;
  fastcgi_pass php;
}
...............

修改該網站的 conf 文件,位置在 /etc/nginx/sites-available/example.com,註釋掉 wpcommon.conf,新增我們修改好的 wpcommon-nohttp.conf 文件,如下

...............
include common/php.conf;
# include common/wpcommon.conf;
	include common/wpcommon-nohttp.conf;
	include common/locations.conf;
	include common/headers-http.conf;
	include common/headers-html.conf;
...............

存檔後,重啟 Nginx 後,這個網站就不會有網頁認證的問題。

Webinoly 安裝 VPS 教學系列文章

1. Webinoly 快速安裝 WordPress 教學

2. Webinoly 安裝後如何更改 PHP 版本

3. FastCGI Cache 快取 WooCommerce 的問題

4. Webinoly 的 Zend Opcache 性能優化

5. Webinoly 的 Memcached 性能優化

6. 阻擋 MJ12bot 惡意蜘蛛訪問

7. Webinoly 安裝 VPS 教學

8. Webinoly 安裝 VPS 教學 – 進階版

hosted by kinsta

〈Webinoly 安裝 VPS 教學〉的留言

  1. SSL 似乎不會自動更新續約,請問要如何加上呢?

    1. Webinoly 在你安裝 sudo site domain.com -ssl-on 成功後,就會自動幫你安裝續約排程,不用再另外安裝了。
      用 crontab -l 指令檢查你的 cron 排程。
      應該會看到:
      MAILTO=rupm66@gmail.com
      15 3 * * 7 letsencrypt renew

      1. 好的,謝謝回覆。

  2. 感謝您這篇教學,我依照步驟設定,直到這裡卡住,請您教我。
    打開 /etc/nginx/sites-available/example.com 文件
    “打開”的指令是什麼?
    “存檔文件”的指令是什麼?

    1. 如果你是新安裝 Webinoly 1.3.1 版本,
      可以忽略這個部分。
      Webinoly 1.3.1 在你安裝了 SSL 證書時,會自動將 80 端口及 HTTP 301 to HTTPS,不用再自行修改 conf 文件了。

      1. 請問 Webinoly 1.3.1 可以用 Cloudflare DNS ?

        1. 可以使用 CloudFlare CDN,建議不要打開雲,SSL 證書好像會有問題。
          Webinoly 是延續 EasyEngine 的架構,所以可以參考這一篇的說明:https://easyengine.io/tutorials/cdn/

  3. Yungke大,我發現我照您的方法用了之後,ie8會顯示「Internet Explorer 無法顯示網頁」,舊手機會顯示「無法建立安全連線」,您的這個網站也是有一樣的問題,這個有解嗎?

    1. 我沒看懂您的意思?
      是在 IE8 瀏覽器下無法開啟網站嗎 (yungke.me)?
      我手上的 IE 已經是 11 了,找不到 IE8 來測試了。

      1. 對的,完全無法開啟網站喔,我用了2台電腦的ie8,一樣問題,還有舊手機也是

        1. 應該是VPS安裝Webinoly裡面有東西檔到了,之前用虛擬主機時,沒有這個問題

          1. IE8 是 XP 時代的產物 XD….
            Webinoly 的安裝要用一個乾淨的 VPS 才行,意思是說,Linux 不能先預裝 Apache。
            安裝前,用這個指令檢查:
            rpm -qa | grep httpd
            移除 Apache
            sudo service apache2 stop
            sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common
            sudo apt-get autoremove

  4. 感謝版大分享。對於SSL有一點疑問想請教
    sudo site example.com -ssl-on

    如果今天網域為abc.com
    要以子網域做多國語言 如en.abc.com zh-han.abc.com
    是否不能在這個步驟就開啟 -ssl-on 呢?

    1. 以子網域做多國語言,這方面我沒做過。
      但是,WP Multi-Lingual 說明文件來看,
      abc.com 根域名要使用「通配符」 (泛域名) SSL 證書,
      sudo site abc.com -ssl=on -wildcard
      en.abc.com 及 zh-han.abc.com 這兩個子域名,DNS A 紀錄也要指向與 abc.com 同 IP。

  5. 我有一些問題請教
    我使用Google Cloud遇到問題

    sudo IP -wp 這裡我輸入Google Cloud虛擬主機的IP wordpress可以正常顯示
    但是無法使用進入到端口22222 工具網頁

    開啟SFTP 輸入 sudo webinoly -login-www-data
    顯示這個錯誤
    [ERROR] Invalid value for login-www-data!

    1. GCP VM 主機比較特別一點….
      先到 GCP 控制台將 VPC 網路 >> 防火牆規則
      將 22222/TCP 和 11371/TCP 端口打開

    2. Webinoly 1.9.0 版後,修改了很多指令,抱歉,我這篇文章有的沒更正。
      還是以 Webinoly 說明文件為準,請詳見>>
      https://webinoly.com/en/documentation/webinolys/
      開啟 SFTP 功能:
      sudo webinoly -login-www-data=on

  6. Thank you, I’ve recently been searching for
    info about this topic for a long time and yours is the best I’ve discovered so far.
    But, what about the bottom line? Are you sure concerning the supply?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Your Mastodon Instance