Webinoly 安裝 VPS 教學

·

Webinoly 安裝 VPS 教學

Photo by Unsplash+

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

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

[post-views]

內容目錄:

  • 選擇一台 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

Comments

在〈Webinoly 安裝 VPS 教學〉中有 20 則留言

    1. 「yungke」的個人頭像

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

  1. 「Jess」的個人頭像

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

    1. 「yungke」的個人頭像

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

  2. 「YC」的個人頭像

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

    1. 「yungke」的個人頭像

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

      1. 「YC」的個人頭像

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

          1. 「yungke」的個人頭像

            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

  3. 「Aubrey」的個人頭像

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

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

    1. 「yungke」的個人頭像

      以子網域做多國語言,這方面我沒做過。
      但是,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。

  4. 「JOJO」的個人頭像

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

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

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

    1. 「yungke」的個人頭像

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

  5. 「self build land」的個人頭像
    self build land

    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?

發佈留言

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

Hey, 想嘗試 Kinsta 主機嗎?

18748

Kinsta 高效能主機

wPowered Starter 方案

馬上訂購

18749
Your Mastodon Instance