在 CentOS 7 使用 Caddy 與 WP-CLI 架設 WordPress 網站

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.rpm

rpm -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;
exit
例如我的:
CREATE 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

如果你剛剛已經先偷偷登入後台的話,便可以看到從原先的英文介面轉為中文囉。

參考資料:

WP-CLI 用法

作者: cras4202tw

我是 cras4202tw,有多年使用 WordPress 與伺服器維運經驗,目前在鴻海科技集團富盈數據擔任工程師,負責的網站總流量每個月超過千萬次瀏覽。更多關於我...點我

在〈在 CentOS 7 使用 Caddy 與 WP-CLI 架設 WordPress 網站〉中有 2 則留言

發佈留言

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