2021年5月21日 星期五

樹莓派架站 (三) : 安裝 WordPress

安裝好 Apache 2 + PHP + MariaDB 之後就可以著手安裝架站軟體 WordPress 了, 我參考下面這篇寫得極好的教學文章來試試 :


這位作者另外兩篇很有參考價值, 與我前面兩篇主題相同, 但我之前卻沒找到, 殘念 ~~


本系列之前的文章參考 :



1. 下載 WordPress : 

Apache 2 的網站是放在 /var/www/html/ 目錄下, 因此先切換到此目錄 : 

pi@raspberrypi:~ $ cd /var/www/html   
pi@raspberrypi:/var/www/html $ ls -al       
總計 24
drwxrwx--- 2 pi   www-data  4096  5月 20 11:30 .
drwxr-xr-x 3 root root      4096  5月 20 10:23 ..
-rwxrwx--- 1 pi   www-data 10701  5月 20 10:23 index_appache.html  (Apache 預設首頁)
-rw-r--r-- 1 pi   pi          20  5月 20 11:30 index.php   (自訂的 phpinfo 網頁)

然後用下列指令下載最新版 WordPress :

pi@raspberrypi:/var/www/html $ sudo wget http://wordpress.org/latest.tar.gz    
--2021-05-20 21:47:45--  http://wordpress.org/latest.tar.gz
正在查找主機 wordpress.org (wordpress.org)... 198.143.164.252
正在連接 wordpress.org (wordpress.org)|198.143.164.252|:80... 連上了。
已送出 HTTP 要求,正在等候回應... 301 Moved Permanently
位置: https://wordpress.org/latest.tar.gz [跟隨至新的 URL]
--2021-05-20 21:47:45--  https://wordpress.org/latest.tar.gz
正在連接 wordpress.org (wordpress.org)|198.143.164.252|:443... 連上了。
已送出 HTTP 要求,正在等候回應... 200 OK
長度: 15750424 (15M) [application/octet-stream]
儲存到:`latest.tar.gz'

latest.tar.gz          100%[==========================>]  15.02M  63.3KB/s  於 74s       

2021-05-20 21:49:00 (207 KB/s) - 已儲存 `latest.tar.gz' [15750424/15750424]

再用 ls -al 檢視目前目錄, 可知已下載 latest.tar.gz : 

pi@raspberrypi:/var/www/html $ ls -al   
總計 15408
drwxrwx--- 2 pi   www-data     4096  5月 20 21:47 .
drwxr-xr-x 3 root root         4096  5月 20 10:23 ..
-rwxrwx--- 1 pi   www-data    10701  5月 20 10:23 index_appache.html
-rw-r--r-- 1 pi   pi             20  5月 20 11:30 index.php
-rw-r--r-- 1 root root     15750424  5月 13 07:50 latest.tar.gz     

用 tar 指令解壓縮, 再用 ls -al 檢視可知解壓縮後是放在新建的 wordpress 子目錄下 :  : 

pi@raspberrypi:/var/www/html $ sudo tar xzf latest.tar.gz     
pi@raspberrypi:/var/www/html $ ls -al    
總計 15412
drwxrwx--- 3 pi     www-data     4096  5月 20 21:55 .
drwxr-xr-x 3 root   root         4096  5月 20 10:23 ..
-rwxrwx--- 1 pi     www-data    10701  5月 20 10:23 index_appache.html
-rw-r--r-- 1 pi     pi             20  5月 20 11:30 index.php
-rw-r--r-- 1 root   root     15750424  5月 13 07:50 latest.tar.gz
drwxr-xr-x 5 nobody nogroup      4096  5月 13 07:49 wordpress    

用下列指令將 wordpress 底下所有的檔案與目錄都移動到目前目錄 /var/www/html/ 下 :

pi@raspberrypi:/var/www/html $ sudo mv wordpress/* .    

這樣 wordpress 就變成一個空目錄, 用下列指令將 wordpress 與下載的壓縮檔都刪除掉 : 

pi@raspberrypi:/var/www/html $ sudo rm -rf wordpress latest.tar.gz   

為了避免權限問題, 使用下列指令將 /var/www/html/ 目錄存取權限授予樹莓派預設使用者帳號 pi 以及 www-data 群組 :

pi@raspberrypi:/var/www/html $ sudo usermod -a -G www-data pi
pi@raspberrypi:/var/www/html $ sudo chown -R -f www-data:www-data /var/www/html     


2. 建立 WordPress 使用的資料庫 :

以 root 帳號登入 MariaDB 伺服器後以 create database worpress 指令建立名為 wordpress 的資料庫以便進行後續安裝, 但以 root 帳號登入 MariaDB 時卻出現 ERROR 1045 的錯誤 (Access denied for user 'root') : 

pi@raspberrypi:/var/www/html $ sudo mysql -u root -p     
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

改用 pi 帳號雖可登入 MariaDB, 但輸入 create database wordpress 指令後卻出現 ERROR 1044 (Access denied for user 'pi') 的錯誤 : 

pi@raspberrypi:/var/www/html $ sudo mysql -u pi -p    
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 51
Server version: 10.3.27-MariaDB-0+deb10u1 Raspbian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database wordpress;       (建立 wordpress 資料庫)
ERROR 1044 (42000): Access denied for user 'pi'@'localhost' to database 'wordpress'
MariaDB [(none)]> QUIT
Bye

搜尋 "ERROR 1045 (28000): Access denied for user 'root'@'localhost'" 找到下面這篇文章, 作者提供兩個方法來解決這個問題 : 


我使用第一個方法果然解決了 root 帳號登入被拒絕的問題, 首先用 service mysql stop 關閉 MariaDB 伺服器 : 

pi@raspberrypi:/var/www/html $ service mysql stop      (關閉 MariaDB 伺服器)

然後用下列指令跳過權限表 : 

pi@raspberrypi:/var/www/html $ mysqld_safe --user=mysql --skip-grant-tables --skip-networking &   
[1] 1842
pi@raspberrypi:/var/www/html $ 210520 22:23:28 mysqld_safe Logging to syslog.
210520 22:23:28 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

[1]+  已完成               mysqld_safe --user=mysql --skip-grant-tables --skip-networking

接下來照作者所述程序用 -uroot 參數登入時卻出現 ERROR 2002 (Can't connect to local MySQL server) 錯誤 : 

pi@raspberrypi:/var/www/html $ mysql -uroot mysql -p   
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

MySQL 伺服器不是被關掉了嗎? 所以我猜作者是不是忘記寫要重新開啟 MariaDB 伺服器了? 重新開啟 MariaDB 伺服器, 再次用 -uroot 參數就可以順利登入了 : 

pi@raspberrypi:/var/www/html $ sudo service mysql restart    
pi@raspberrypi:/var/www/html $ mysql -uroot mysql -p    
Enter password: 
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 10.3.27-MariaDB-0+deb10u1 Raspbian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

接著用 UPDATE 指令更新 root 帳號的密碼為 mysql, 再用 GRANT 指令把存取所有資料庫的存取權限授予 root 帳號, 最後更新權限表即可 : 

MariaDB [mysql]> UPDATE user SET Password=PASSWORD('mysql') where USER='root';     
Query OK, 0 rows affected (0.013 sec)
Rows matched: 1  Changed: 0  Warnings: 0

MariaDB [mysql]> GRANT all ON *.* TO root@'localhost' IDENTIFIED BY 'mysql';   
Query OK, 0 rows affected (0.002 sec)

MariaDB [mysql]> FLUSH PRIVILEGES;       (寫回權限表)
Query OK, 0 rows affected (0.002 sec)

MariaDB [mysql]> quit  
Bye

這樣便能用 root 帳號登入了 : 

pi@raspberrypi:/var/www/html $ sudo mysql -u root -p    
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.3.27-MariaDB-0+deb10u1 Raspbian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

繞了一圈解決 root 登入問題後終於可用 create database wordpress 指令順利建立了名為 wordpress 的資料庫 : 

MariaDB [(none)]> create database wordpress;        (建立 wordpress 資料庫)
Query OK, 1 row affected (0.001 sec)

照作者建議為了安全性最好新增一個新用戶來存取 MariaDB, 我以 HT 帳號與 akf 密碼用 CREATE USER 指令來建立新使用者 (這要記下來, 後面安裝與管理 WordPress 會用到), 接著用 GRANT 指令授予 HT 帳號管理 wordpress 資料庫的全部權限, 最後必須更新權限表才算數 : 

MariaDB [(none)]> CREATE USER 'HT帳號'@'localhost' IDENTIFIED BY 'akf密碼';    
Query OK, 0 rows affected (0.004 sec)

MariaDB [(none)]> GRANT ALL ON wordpress.* TO 'HT帳號'@'localhost';   
Query OK, 0 rows affected (0.006 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;     (更新權限表)  
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> quit   
Bye
pi@raspberrypi:/var/www/html $ 

經過以上設定即完成 WordPress 安裝前的準備做了, 開啟瀏覽器, 輸入 localhost/index.php 或 http://127.0.0.1/index.php 若顯示如下網頁表示以上設定都沒問題, 順利進入 WordPress 安裝設定頁面了 : 




3. 安裝設定 WordPress :

將 WordPress 語言設定頁拉到最底下, 選擇 "繁體中文" 按 "繼續" 鈕出現中文的安裝說明頁面, 按 "開始安裝吧" 鈕即進行安裝作業 : 





接著出現資料庫設定頁面, 第一個欄位 "資料庫名稱" 就是上面建立的 wordpress 資料庫不用改, 要改的是第二欄位 "使用者名稱" 與第三欄位 "密碼", 分別填入上一步驟中所建立的新使用者帳密, 按 "傳送" 鈕出現下列頁面 : 




按 "執行安裝程式" 鈕出現網站設定頁面, 主要就是輸入網站標題, 管理員帳密以及 email, 帳密為了簡化管理我設成與上面的資料庫管理帳密相同, 密碼安全性低還得勾選底下的確認鈕. 網站標題欄我試圖輸入中文卻出現 ???? 怪碼, 應該是中文輸入法還沒安裝所致, 先用英文無妨 : 




按 "安裝 WordPress" 鈕後不到半分鐘就安裝完畢了 : 




按 "登入" 鈕輸入剛剛設定的管理員帳密 : 




出現令人感動的畫面就是大功告成囉 :




以後要再進入 WordPress 後台只要輸入下列網址即可 :



4. 安裝中文輸入法 (新酷音) :

在進行後續 WordPress 設定前必須把樹莓派的中文輸入搞定才行, 參考之前安裝酷音輸入法 (類似新注音) 的文章以及網路教學文章 :


pi@raspberrypi: $ sudo apt-get install scim-chewing   
正在讀取套件清單... 完成
正在重建相依關係          
正在讀取狀態資料... 完成
下列的額外套件將被安裝:
  im-config libchewing3 libchewing3-data libscim8v5 scim scim-gtk-immodule scim-im-agent
  scim-modules-socket
建議套件:
  scim-uim scim-pinyin scim-hangul scim-m17n scim-prime scim-anthy scim-skk scim-canna
  scim-tables-additional scim-tables-ja scim-tables-ko scim-tables-zh scim-thai
下列【新】套件將會被安裝:
  im-config libchewing3 libchewing3-data libscim8v5 scim scim-chewing scim-gtk-immodule
  scim-im-agent scim-modules-socket
升級 0 個,新安裝 9 個,移除 0 個,有 0 個未被升級。
需要下載 2,362 kB 的套件檔。
此操作完成之後,會多佔用 7,568 kB 的磁碟空間。
是否繼續進行 [Y/n]? [Y/n] Y
下載:1 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf im-config all 0.43-1 [56.0 kB]
下載:2 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libchewing3-data all 0.5.1-4 [1,440 kB]
下載:3 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libchewing3 armhf 0.5.1-4 [106 kB]
下載:4 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libscim8v5 armhf 1.4.18-2.1 [209 kB]
下載:5 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf scim armhf 1.4.18-2.1 [353 kB]
下載:6 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf scim-chewing armhf 0.5.1-3 [43.5 kB]
下載:7 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf scim-modules-socket armhf 1.4.18-2.1 [50.4 kB]
下載:8 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf scim-im-agent armhf 1.4.18-2.1 [59.4 kB]
下載:9 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf scim-gtk-immodule armhf 1.4.18-2.1 [44.8 kB]
取得 2,362 kB 用了 13s (189 kB/s)                                                        
選取了原先未選的套件 im-config。
(讀取資料庫 ... 目前共安裝了 168253 個檔案和目錄。)
正在準備解包 .../0-im-config_0.43-1_all.deb……
Unpacking im-config (0.43-1) ...
選取了原先未選的套件 libchewing3-data。
正在準備解包 .../1-libchewing3-data_0.5.1-4_all.deb……
Unpacking libchewing3-data (0.5.1-4) ...
選取了原先未選的套件 libchewing3:armhf。
正在準備解包 .../2-libchewing3_0.5.1-4_armhf.deb……
Unpacking libchewing3:armhf (0.5.1-4) ...
選取了原先未選的套件 libscim8v5:armhf。
正在準備解包 .../3-libscim8v5_1.4.18-2.1_armhf.deb……
Unpacking libscim8v5:armhf (1.4.18-2.1) ...
選取了原先未選的套件 scim。
正在準備解包 .../4-scim_1.4.18-2.1_armhf.deb……
Unpacking scim (1.4.18-2.1) ...
選取了原先未選的套件 scim-chewing:armhf。
正在準備解包 .../5-scim-chewing_0.5.1-3_armhf.deb……
Unpacking scim-chewing:armhf (0.5.1-3) ...
選取了原先未選的套件 scim-modules-socket:armhf。
正在準備解包 .../6-scim-modules-socket_1.4.18-2.1_armhf.deb……
Unpacking scim-modules-socket:armhf (1.4.18-2.1) ...
選取了原先未選的套件 scim-im-agent。
正在準備解包 .../7-scim-im-agent_1.4.18-2.1_armhf.deb……
Unpacking scim-im-agent (1.4.18-2.1) ...
選取了原先未選的套件 scim-gtk-immodule:armhf。
正在準備解包 .../8-scim-gtk-immodule_1.4.18-2.1_armhf.deb……
Unpacking scim-gtk-immodule:armhf (1.4.18-2.1) ...
設定 libchewing3-data (0.5.1-4) ...
設定 im-config (0.43-1) ...
設定 libchewing3:armhf (0.5.1-4) ...
設定 libscim8v5:armhf (1.4.18-2.1) ...
設定 scim-modules-socket:armhf (1.4.18-2.1) ...
設定 scim (1.4.18-2.1) ...
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim 來提供 /etc/X11/xinit/xinput.d/ja_JP (xinput-ja_JP)
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim 來提供 /etc/X11/xinit/xinput.d/ko_KR (xinput-ko_KR)
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim 來提供 /etc/X11/xinit/xinput.d/zh_CN (xinput-zh_CN)
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim 來提供 /etc/X11/xinit/xinput.d/zh_TW (xinput-zh_TW)
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim 來提供 /etc/X11/xinit/xinput.d/zh_HK (xinput-zh_HK)
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim 來提供 /etc/X11/xinit/xinput.d/zh_SG (xinput-zh_SG)
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim-immodule 來提供 /etc/X11/xinit/xinput.d/ja_JP (xinput-ja_JP)
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim-immodule 來提供 /etc/X11/xinit/xinput.d/ko_KR (xinput-ko_KR)
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim-immodule 來提供 /etc/X11/xinit/xinput.d/zh_CN (xinput-zh_CN)
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim-immodule 來提供 /etc/X11/xinit/xinput.d/zh_TW (xinput-zh_TW)
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim-immodule 來提供 /etc/X11/xinit/xinput.d/zh_HK (xinput-zh_HK)
update-alternatives: 在自動模式下以 /etc/X11/xinit/xinput.d/scim-immodule 來提供 /etc/X11/xinit/xinput.d/zh_SG (xinput-zh_SG)
設定 scim-im-agent (1.4.18-2.1) ...
設定 scim-gtk-immodule:armhf (1.4.18-2.1) ...
設定 scim-chewing:armhf (0.5.1-3) ...
執行 mime-support (3.62) 的觸發程式……
執行 gnome-menus (3.31.4-3) 的觸發程式……
執行 libgtk-3-0:armhf (3.24.5-1+rpt2) 的觸發程式……
執行 libgtk2.0-0:armhf (2.24.32-3+rpt1) 的觸發程式……
執行 libc-bin (2.28-10+rpi1) 的觸發程式……
執行 man-db (2.8.5-2) 的觸發程式……
執行 desktop-file-utils (0.23-4) 的觸發程式……
pi@raspberrypi:~ $

安裝完需要用 sudo reboot 重開機. 

pi@raspberrypi:~ $sudo reboot  

重開機後須進行設定, 主要有兩項 :
  • 按鍵盤左邊的 SHIFT 鍵切換中英文輸入
  • 取消不需要的輸入法 (內碼輸入法)
首先從桌面左上角的開始開啟新酷音的設定程式 "偏好設定/SCIM 輸入法框架" :





先點選 "介面/全域設定" : 




其中 "快速鍵" 中的 "作用鍵" 欄位不用改, 維持預設 Ctrl+Space 即可 (按 Ctrl+Space 進入新酷音輸入法), 要設定的是 "下一種輸入法" 欄位, 按該欄右邊的 "..." 按鈕 :




按 "放開" 右上方的 "..." 按鈕, 會跳出 "捕捉按鈕" 視窗提示按下一個組合鍵, 這時按下鍵盤左邊的 Shift 鍵該視窗就會消失, 左邊輸入框會出現 Shift_L (表示左 Shift 鍵), 先按左下角的 "+" 鈕, 再按右下角的 "確認" 鈕確認此項設定並關閉輸入法設定視窗 : 




回到介面的全域設定選單, 按右下角的 Enter 按鈕儲存設定 : 




然後點選 "輸入法引擎" 的 "全域設定", 展開每一個已安裝的輸入法, 只勾選 "繁體中文" 與 "新酷音" 這兩個輸入法, 將預設已勾選的 "內碼輸入" 取消勾選, 然後按選單右下角的 Enter 按鈕儲存設定即可 : 




這樣便完成用 Shift 鍵切換繁體中文與英文的設定了, 同樣要重新啟動才會生效 :

pi@raspberrypi:~ $sudo reboot   

重啟後開啟 Text Editor 編輯器測試, 先按 Ctrl+Space 進入新酷音, 果然可從遠端輸入中文, 按 Shift 切換到英文模式可輸入英數字, 再按 Shift 又切回繁體中文, 跟 Windows 的新注音使用方法一樣 :





哈哈哈, 終於搞定中文輸入了, 接下來就可以專心研究如何設定 WordPress 了. 

2 則留言 :

晴樹 提到...

看了您上一篇文章後去PCHOME買一台了,第四代4G記憶體,1895元。用玉山Pi行動支付可以回饋5%,ShopBack回饋1%。

到時候照您的步驟安裝一次看看

小狐狸事務所 提到...

是喔? 這麼便宜? 我前天還上露天找 Pi4B, 8GB 含鋁外殼+開關線是 3094 元, 其實 4GB 應該就可以, PCHome 應該有附發票吧? 因為我是幫朋友的研究計畫架站, 暫時用我的 Pi3B 測試, 完成後再購買, 所以需要發票. 想當初我買 Pi1B 也是花了 1800 元, 硬體進步價格不變.