Webinoly 安裝 VPS 教學

Webinoly Install VPS

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

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

Advertisement

選擇一台 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 安裝包是非常容易

使用 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 教學

Webinoly 是由 QR Consultoría 的首席 IT 顧問 Cristhian Martinez 所發佈的一支免費 Linux Shell Script,它沿用了 EasyEngine 大部分的功能,並小幅度的改進及更新,在 VPS 上更容易的建置 WordPress;Webinoly 簡單一個指令,就會在 VPS 主機上自動安裝 Linux Ubuntu + Nginx + MariaDB + PHP7.1 + FastCGI Cache。

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

Webinoly 預設安裝,是很有佛心安裝 PHP 7.1 version,但是不是很多網站的 WordPress 主題或外掛可以接受 PHP 7.1 的新語法,造成許多的 php-errors 或有的功能不能用。我的前一個主題 MyThemeShop TruePixel Themes 就被雷到,與另一個外掛衝突的嚴重。

3. FastCGI Cache 快取 WooCommerce 的問題

WordPress 的 WooCommerce 購物車快取的問題,現在的快取外掛,多數可以處理購物車 (cart)、結帳頁 (checkout)、帳號登陸頁 (account) 快取的問題,只要這三個部分不做快取,購物功能是不會有影響。如果是用主機端直接做 Nginx FastCGI Cache,因為是 Page Cache 方式,

4. Webinoly 的 Zend Opcache 性能優化

PHP 於 5.6 版後,Debian / Ubuntu 預設都內建 Zend Opcache,Opcache 是 PHP 優化加速模組,PHP7.0 配合 Opcache 快取功能,更能提升 PHP7.0 的速度。Webinoly 預設安裝,Opcache 已經啟用,預設值為 64MB,實際在 2G RAM VPS 運作中,有點不夠用,無法達到高命中率 (hits),修改 PHP 配置,優化 Opcache 性能。

5. Webinoly 的 Memcached 性能優化

Memcached 是一個免費開源並且高性能的分佈式記憶體對象緩存系統,主要用於加速動態 Web 程序,減輕數據庫負載,再簡單的說,Memcached 是專為數據庫的快取機制。Webinoly 預設安裝,Memcached 已經啟用,預設值為 64MB,實際上是不夠網站快取運作,修改 /etc/memcached.conf 配置,優化 Memcached 性能。

6. 阻擋 MJ12bot 惡意蜘蛛訪問

MJ12bot 蜘蛛是一隻來自英國的搜索引擎網站,照理說搜索引擎的蜘蛛是不該擋掉的,如果你用到一個小記憶體或 CPU 很爛的 VPS,一下子就會被 MJ12bot 蜘蛛搞掛掉;他不像一般正常的 Googlebot,文件爬完後就離開,MJ12bot 一來就是好幾個小時,造成服務器極大的壓力。

7. Webinoly 安裝 VPS 教學

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

Webinoly 是 LNMP (LEMP) 自動安裝的一個程序,簡單、快速在您的 VPS 主機,並且自動配置和優化您自己的 VPS 伺服器;Linux Ubuntu + Nginx + MariaDB + PHP 7.3 是您的網站的最可靠配置之一,通過 Webinoly 一步安裝完成。

Featured Photo by SpaceX on Unsplash

Follow me

yungke

視咖啡如命的癮君子,沒有厲害的技術,只會小打小鬧的電腦工程師,其實是個打雜小弟,修電燈、水管也都是我的工作。
yungke
Follow me
Advertisement

Follow Me

查看本文
喜愛 Like 點擊數!!

Comments

  1. Carrie says:

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

    • yungke says:

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

  2. Jess says:

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

  3. YC says:

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

    • yungke says:

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

      • YC says:

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

        • YC says:

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

          • yungke says:

            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. Aubrey says:

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

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

    • yungke says:

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

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

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

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

    • yungke says:

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

    • yungke says:

      Webinoly 1.9.0 版後,修改了很多指令,抱歉,我這篇文章有的沒更正。
      還是以 Webinoly 說明文件為準,請詳見>>

      Manage your server configuration, recover MySQL password user, modify access port to PhpMyAdmin and SFTP access to www-data user, update uninstall Webinoly
      開啟 SFTP 功能:
      sudo webinoly -login-www-data=on

Back to top