3/11 在 WordPress 內湖小聚時,什麼?沒聽過有沒有考慮參與一下小聚,全台北中南都有!看到有人在閃電秀講了一下 WP-CLI,身為管理上百網站的肥宅,當然也都是透過 WP-CLI 來管理,不得不說後台管理介面這種東西對我來說還是太慢了,還是下指令管理來得快且實在,這次就來示範使用 WP-CLI 與潮到出水的 Caddy 從 0 開始架設 WordPress。
本次使用在 Linode 的主機,並使用 CentOS 7 作業系統,如果還沒註冊 Linode 帳號,可以使用我的 Referral code。
帶有推廣連結的網址:
Linode.com
不帶有推廣連結的網址:
Linode.com
先進行系統套件的更新與準備需要的工具
yum update -y
yum install epel-release -y
yum install wget nano -y
安裝完成後輸入 nano /etc/selinux/config
,便會進入編輯器。
這時可以案上下鍵移動選擇的位置,將 SELINUX=enforcing
改為 SELINUX=disabled
,完成後按下 Ctrl+X 在輸入 y 並按下 Enter 就可以儲存囉!
SELinux 是一個讓伺服器更加安全的工具,不過對於本次的教學來說過於複雜就先關閉,設定完成先進行重開機。
接著是準備 PHP 7.3、Caddy Server 與 MySQL
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -Uvh mysql57-community-release-el7-11.noarch.rpmrpm -Uvh remi-release-7.rpm
yum-config-manager --enable remi-php73
若執行 yum-config-manager 發現找不到指令,可以先輸入 yum install yum-utils -y
。
接著就是安裝 PHP 7.3。yum install php-cli php-fpm php-gd php-curl php-mbstring php-mcrypt php-odbc php-mysqlnd php-xmlrpc php-xml php-pdo php-opcache -y
安裝 Caddy Server。yum install caddy -y
安裝 MySQL Server。yum install mysql-community-server -y
安裝完成必要的東西後,為了要讓程式可以在開機時一起啟動,輸入 systemctl 指令,請參考下面的指令。systemctl enable caddy
systemctl enable mysqld
systemctl enable php-fpm
開始設定剛剛裝的軟體
軟體都安裝完成後就可以開始設定,首先來設定資料庫,MySQL 5.7 的設定跟以往較為不同,以前都案安裝完成後啟用,接著進行設定密碼,現在則是先啟用後找到『暫時』的密碼,接著再用暫時的密碼來設定為新的密碼。
systemctl enable 是讓開機後自動啟用某個東西,而 systemctl start 則是現在就啟動某的東西,因此我們要先啟動 MySQL,這樣才能進行設定 MySQL。
輸入 systemctl start mysqld
,接著再輸入 cat /var/log/mysqld.log | grep password
。
這時就會看到一個紅色字眼標示的一行英文,而最後的 root@localhost: 之後的文字就是暫時的密碼。
找到暫時的密碼後便可以設定 MySQL,輸入 mysql_secure_installation
,接著輸入剛剛找到的密碼,之後便會要求輸入新密碼,盡可能保持複雜且超過 8 個字,若過於簡單會設定失敗喔!之後的問答也都是案 Y 即可。
最後出現 All done!代表資料庫初步設定已經完成,接著設定給 WordPress 的資料庫與使用者。
輸入 mysql -u root -p,接著輸入你剛剛設定好的新密碼。
輸入以下指令:CREATE DATABASE 資料庫名稱 CHARACTER SET utf8 COLLATE utf8_unicode_ci;
例如我的:
CREATE USER '使用者名稱'@'localhost' IDENTIFIED BY '密碼';
GRANT ALL PRIVILEGES ON 使用者名稱.* TO '資料庫名稱'@'localhost';
FLUSH PRIVILEGES;
exitCREATE DATABASE caddy CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'caddy'@'localhost' IDENTIFIED BY 'coolcaddy';
GRANT ALL PRIVILEGES ON caddy.* TO 'caddy'@'localhost';
接著是 php 的設定,首先輸入 nano /etc/php.ini
,在案 Ctrl+w 搜尋 cgi.fix_pathinfo
,將原先的 ;cgi.fix_pathinfo=1
改為 cgi.fix_pathinfo=0
。
搜尋 8M 把數值改為 20M,這樣讓可以 POST 的值大一點。
再搜尋 2M,這個則是代表限制上傳檔案的大小,2M 可能有的人覺得太小傳不了圖,因此可以開大一點,例如到 10M。
最後這個檔案要搜尋的是 timezone 找到後將 ;date.timezone =
改為 date.timezone = Asia/Taipei
。
完成後按下 Ctrl+X 並案一下 y 再 Enter 存檔即可。接著換下一個檔案,輸入:nano /etc/php-fpm.d/www.conf
找到以下設定:user = apache
group = apache
listen = 127.0.0.1:9000
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
改為:user = caddy
group = caddy
listen = /var/run/php-fpm/www.sock
listen.owner = caddy
listen.group = caddy
listen.mode = 0660
存檔後,接著再輸入:chown -R caddy.caddy /var/lib/php/session/
mkdir /var/run/php-fpm/
chown -R caddy.caddy /var/run/php-fpm/
這樣就設定完成 php,輸入 systemctl start php-fpm
來啟動。
軟體設定快結束了,現在剩下 Caddy。
Caddy 設定的部分很簡單,使用 nano /etc/caddy/conf.d/server.conf,編輯你的第一個 Caddy Server 檔案。
這是我的示範,caddy.crlab.com.tw 是我的網址,root 則是我網站的資料夾位置,再依據自己的情況更改即可,記得 DNS 先指好。
接著讓防火牆允許 80 與 443 port 的連線。firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
這時候啟動 Caddy Server,systemctl start caddy
,就可以看到網站已經出現囉,雖然是 404 不過代表他也是正常運作了,輸入 https 的連結也可以看到已經有 SSL 囉。
回到主機,接下來就是使用 WP-CLI 架設你的 WordPress 網站,先把 WP-CLI 的工具下載回來,並設定好。curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
接著到你的網站資料夾,例如我的是 /data/wwwroot/caddy.crlab.com.tw。cd /data/wwwroot/caddy.crlab.com.tw
使用指令下載 WordPress 核心。wp core download
給予資料夾權限 chown -R caddy.caddy /data/wwwroot/caddy.crlab.com.tw
雖然這時候打開網站會看到已經有 WordPress 的安裝畫面,不過本次要使用指令來完成安裝。
輸入指令wp config create --dbname=caddy --dbuser=caddy --dbpass=coolcaddy --dbhost=localhost --dbprefix=wp_
這是根據我剛剛在上面 MySQL 部分為 WordPress 設定的資料庫名稱與帳密,請更改為自己的。--dbname=資料庫名稱
--dbuser=使用者名稱
--dbpass=資料庫密碼
完成後就會出現 Success: Generated 'wp-config.php' file.
這部分就屬於你在 WordPress 畫面中的第一步,設定資料庫的部分,接著是安裝。wp core install --title=網站名稱 --admin_user=使用者名稱 --admin_email=使用者電子信箱 --url=網址
例如我的:wp core install --title=Caddy超酷的 --admin_user=cras4202tw --admin_email=cras@4202.tw --url=https://caddy.crlab.com.tw/
完成後便會給你密碼。
回到瀏覽器中,就可以看到自己得網站出現囉。
現在還是英文的介面,使用指令切換語系的話則是:
安裝繁體中文語言包wp language core install zh_TW
切換為繁體中文wp site switch-language zh_TW
如果你剛剛已經先偷偷登入後台的話,便可以看到從原先的英文介面轉為中文囉。
請問caddy 跟Nginx 比較起來如何?
速度?
穩定度?
之前在跑 ApacheBench,Nginx 還是贏 Caddy 不少。