2021年5月31日 星期一

WordPress 網站無法使用 ngrok 連線的問題

最近都在忙用樹莓派架設 WordPress 網站, 這兩天已經就緒, 正進行網站管理設定作業, 完工後打算先用 ngrok 取得外網網址, 讓湘雲老師瀏覽網站雛型, 看看哪裡需要補強. 但後來想想這可以同步進行, 所以昨天找出之前的 ngrok 筆記先測試看看外網存取結果, 參考 :



1.下載 ngrok :

ngrok 下載網址 : 


初次下載需先申請 ngrok 帳號, 登入後會自動依據作業系統顯示不同下載頁面, 樹莓派顯示如下 Linux(Arm) 下載頁面 :  




樹莓派預設下載目錄為 Downloads, 切換到此目錄後即可看到已下載的 ngrok 壓縮檔 ngrok-stable-linux-arm.zip :

pi@raspberrypi:~ $ cd Downloads    
pi@raspberrypi:~/Downloads $ ls -ls    
12740 -rw-r--r-- 1 pi pi 13043713  5月 30 19:42 ngrok-stable-linux-arm.zip   

用 unzip 命令解壓縮為 ngrok 執行檔 : 

pi@raspberrypi:~/Downloads $ unzip ngrok-stable-linux-arm.zip    
pi@raspberrypi:~/Downloads $ ls -ls    
25376 -rwxr-xr-x 1 pi pi 25983364  5月  4 22:20 ngrok   
12740 -rw-r--r-- 1 pi pi 13043713  5月 30 19:42 ngrok-stable-linux-arm.zip   

然後用 ./ngrok 啟動 ngrok 即可取得一個外部網址 (每次執行都會改變) :

pi@raspberrypi:~/Downloads $ ./ngrok http -region ap 80   




按 Ctrl + C 即可停止 ngrok. 

結果顯示 ngrok 指配了 http://89bbf1f687d6.ap.ngrok.io 給樹莓派上的 WordPress 網站, 但我在瀏覽器網址列輸入此網址後預期會看到 WordPress 網頁, 但卻跳轉到 127.0.0.1 並出現 "127.0.0.1 拒絕連線" 訊息 :




奇怪, 我上回測試時都很順利啊, 怎會變成這樣? 上次是使用 NGINX 伺服器, 顯示了 NGINX 的預設網頁, 為了釐清是否為 WordPress 網站問題, 所以我到 WordPress 網站根目錄 /var/www/html 下以下列指令製作了一個顯示 PHP 狀態的網頁 : 

pi@raspberrypi:~ $ cd /var/www/html/ 
pi@raspberrypi:/var/www/html $ echo "<?php phpinfo ();?>" > /var/www/html/phpinfo.php   

這個 phpinfo.php 網頁其實就是呼叫 phpinfo() 函數而已. 接著從外網再次拜訪 ngrok 指配的網址後面指定瀏覽 phpinfo.php :

# http://89bbf1f687d6.ap.ngrok.io/phpinfo.php 

結果正常顯示網頁 : 




可見這不是 ngrok 的問題, 而是 WordPress 的問題. 

====== 以下第 2. 3 項跳過, 直接到第 4. 項安裝 WP-ngrok 外掛即可 ========  


2. 修改 wp-config.php :

我搜尋 "ngrok wordpress" 找到下面這篇文章 :  


其中 thosten-stripe 提出了解決辦法 : 




首先編輯 /var/www/html/wp-config.php, 在最後面加上這兩行後存檔 : 

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

pi@raspberrypi:/var/www/html $ cp wp-config.php wp-config_old.php    
pi@raspberrypi:/var/www/html $ nano wp-config.php   




關於 WordPress 設定檔 wp-config.php 的更多用法參考 :



3. 安裝 relative url 外掛 : 

由於 WordPress 內都是使用絕對位址, 因此還要去 "控制台/外掛" 中搜尋安裝 relative url 外掛 :




然後用 Ctrl+C 關掉 ngrok 後重新啟動, 用新指配的網址連線果然 OK, 但是 CSS 效果卻沒出現 :




我找了一些資料試圖解決此問題, 但都不成功, 例如 :


暫時只能做到這樣, 但沒有 CSS 其實蠻難看的.


2021-05-31 補充 :

4. 安裝 WP-ngrok 外掛 :

晚上倒完垃圾回來不死心, 再次搜尋 WordPress 與 ngrok 相關文章, 在下面這篇找到簡單方便的解決辦法, 那就是安裝 WP-ngrok, 參考 :


此文前半部下載與啟動 ngrok 部分就是上面第 1 項所述, 接著只要到 "控制台/外掛" 中搜尋安裝 WP-ngrok 外掛, 直接安裝啟用即可 :




然後在終端機的 ngrok 程式目錄下以如下指令啟動 ngrok 就可以取得 ngrok 指配之網址, 從外網瀏覽此網址果然顯示 WordPress 網站完整面貌 : 

./ngrok http -host-header=rewrite localhost:80 


./ngrok http -host-header=localhost 80 

注意,  :80 或 80 可省略 (這是預設值), 只有在連線非 80 埠時才需要指定. 參考 :

如何讓 ngrok 瀏覽只能接受 localhost 連接的網站





可見透過 WP-ngrok 外掛幫助, WordPress 網站的 CSS 與 Javascript 檔都能順利下載, 所以才能看到與 localhost 內網相同的網站內容. 因為 WP-ngrok 就可以解決全部問題, 所以我就把上面修改的 wp-config.php 復原, 同時將安裝啟用的 relative url 或 relative urls 停用刪除. 

2021年5月30日 星期日

2021 年第 22 周記事

本周疫情仍是持平, 我國本島所有縣市均出現病例, 三級警戒還是會持續一段時間, 希望透過減少人員流動接觸來斬斷傳播鏈. 這兩天陸續有疫苗到貨, 國產疫苗二期試驗結果據說效果不錯, 我相信六月開始疫苗供應就會開始上升, 屆時全民施打率提升到某個水平 (四, 五成) 後, 疫情控制曙光就會出現. 

近日看到柯 P 聲量大增, 有些講得合理我覺得執政者要聽, 但有些我覺得是亂講, 例如他說本土疫苗要取得國際認證希望渺茫, 打了以後要出國不會被國外承認, 這個是事實, 但研發本土疫苗主要目的是能自主控制疫情, 而不是像現在有求於人. 疫情都這樣了還扯甚麼國際認證, 自用比較要緊吧! 他是專家不會不懂, 這不禁令人懷疑其動機. 

昨天上母校圖書館網站辦理所借 30 本書的線上續借時, 赫然發現圖書館已將到期日直接改成 9/24, 也就是下學期開學後再展延一個月的意思 :




哇, 看來教育界似乎對疫情不甚樂觀啊! 但我查了何鼓老師的臉書, 他說從星象來看, 疫情可能在六月中旬之後就會看到希望了, 期待否極泰來的一天快點來到 : 




加油! 台灣人, 不要被那些幸災樂禍的看扁了! 

試做苦瓜封肉

上週在市場買了兩個便宜的苦瓜, 今日中午就來按照肥大叔的 "苦瓜封肉" 食譜試作看看, 參考 :





材料 : 
  • 苦瓜一條
  • 絞肉一盒
  • 醬油
  • 蠔油
  • 香油
  • 太白粉
  • 米酒
做法 : 
  1. 苦瓜對半剖開, 清除籽與內膜備用. 盤中倒入醬油, 蠔油, 香油, 放入絞肉拌勻, 放入苦瓜中鋪平.
  2. 平底鍋放入少許油, 將苦瓜放入鍋內, 熱鍋加水不要超過苦瓜高度, 大火煮開後轉中火, 煮至苦瓜熟後取出盛盤切段, 鍋中的水不要倒掉, 加入一些鹽, 太白粉, 放入蔥花, 煮好後淋在肉上. 

2021年5月25日 星期二

如何將 mp3 音檔套上單一圖片轉成 mp4

推動客家語文薪傳不遺餘力, 獲得國家授予客家傑出成就獎與客家貢獻獎的古國順教授於 5/21 仙遊, 當日接到身兼客家語文學會秘書長的湘雲老師通知, 希望能在學會網站上貼上悼文, 因為疫情嚴峻, 恐怕也只能線上感念古老師的貢獻了. 

另外我還上傳了講客電台鍾麗香小姐之前幫古教授錄製的一段銘言 mp3, 但不知為何無法播放, 只好想辦法將其轉成 mp4, 徵得授權同意後上傳到 Youtube, 這樣就能順利在學會網站中播放了, 以下紀錄這次任務的解決方法.

首先用小畫家或 Pickpick 開啟一個 2560*1440 解析度 (這是 Youtube 的規格) 的空白檔案, 先填滿黑色底色, 再放上文字區塊, 填入要顯示在影片中的文字後存成 jpg 檔, 例如 :




然後到下面這個 OneImageVideo 網站, 按 "Browse" 從檔案系統中分別點選 jpg 圖檔 (上) 與 mp3 音訊檔 (下), 然後按 "Upload" 鈕上傳 :





當影片製作完成, 上方會出現 Completed, 點 "Download File" 超連結即可下載 mp4 視訊檔到電腦中儲存, 也可以按下方的 icon 分享到臉書或 twitter : 




下載的 mp4 檔案就可以直接上傳到 Youtube 頻道了. 關於 Youtube 圖片與視訊規格參考 :


樹莓派 Pi 4B 架站成本估算

這一周都在忙湘雲老師的網站架設計畫 (存放語料與研究結果), 先暫時使用我的 Pi 3 來測試, 雖然效能還 OK, 但做為伺服器, Pi 4B 才是堪當大任. 如果要用 Python 自動處理語料需考量運算效能, 故測試完成後實際運作得改用 Pi 4B 才行. 

我這幾天在露天找到飆機器人這組 8GB RAM 的價格可以考慮 (有開發票) :


買第一項主機+鋁外殼+開關電源線組合價 3094 元. 

此外還需添購 Micro SD 卡, 以前光顧過的建國路維碁可自取省運費且含稅開發票 :


也有考慮買 128 GB 的, 但缺點是做映像檔時就會太大 (做出來就是 128 GB) :
 

根據論壇實測資料, 其實 Pi 3B 與 Pi 4B 插 128 GB 卡是 OK 的, 參考 : 


最後考量到資料備份 (資料庫與語料等), 需再買一顆 256 GB 的隨身碟 :


這比我之前買還便宜 100 元. CZ430 的好處就是體積小, 插入 USB 槽後不會突出太多. 

這樣加起來總共是 3094+219+769=4082 元, 這比當初打算買台 PC 來架站便宜好多! 買 PC 至少要一萬元起跳, 耗電量也是幾百瓦, 而 Pi 4B 最高才 3A*5V=15 瓦, 效能也不會輸給一般 PC, 樹莓派勝! 


2021-05-25 補充 : 

如果只是做為伺服器用, 其實 4GB RAM 就可以了, 感謝網友留言提到 PChome 目前有賣 4GB 的Pi 4B 才 1895 元, 哇, 這是我當初買 Pi 1B 的價格啊! 


加購 $599 的鋁合金外殼與電源變壓器+線, 加起來只要 1895+599+599=3090 :


不過 Pi 4B 的 RAM 是燒死在板子上, 所以萬一後來發覺 RAM 不夠是不能擴充的, 所以要評估一下用途之後再決定要 4GB/8GB. 

2021年5月24日 星期一

四分鐘有氧 TABATA

自從疫情從 5/15 急遽升溫後, 我就沒去河堤公園跑步走路了, 恰好 Line 群組有人傳來兩個四分鐘有氧運動的影片, 一個是長腿姐姐的 TABATA 有氧, 一個是喬巴九式, 這兩個有氧影片動作不重疊, 連續做兩個也才 8 分鐘, 但才做幾個已就滿身大汗, 比我去公園快走三公里流的汗還多. 但這兩片在 Youtube 找不到, 所以就找了下面這個動作大致一樣的 : 





TABATA 動作其他很多不同的組合, 參考 : 

















我現在早上下午休息時都先做八段錦後做 TABATA, 晚上洗澡前也做一次, 希望趕快消除鮪魚肚. 

2021 年第 21 周記事

本周疫情仍緊張, 但還是有很多人不知道怎麼搞的還在狀況外, 還在迎神的, 打麻將的, K歌的, ... 實在令人搖頭. 當全國醫護與檢驗師忙碌不堪, 卻有一堆人還在罵為何不普篩, 縣市長防疫也不忘作秀準備 2022. 現在的狀況可說是一群外行人在說內行話, 內行人又在說居心叵測的話. 台灣抗疫比越南日本等國要困難多了, 除了要對付病毒, 還要防範那些抓耙子 (一場疫情讓妖怪現形). 

周五晚上照例要去還書前上圖書館網站查詢發現, 所有的借書還書日期都被改成 6/30, 大概是由於疫情升溫, 全國升為三級警戒, 圖書館暫時停止開放了 :





由於幫湘雲老師架設的網站要在六月底結案, 故本周暫停 Numpy 的學習, 騰出時間來測試在樹莓派上架設 WordPress 網站, 原先使用好幾年前買的 Pi 1B, 但裝完 Apache 2 + PHP + MariaDB 後發現開啟網頁效能不佳, 只好將現役中的高雄家 Pi 3B 停機挪來使用, 果然效能就突飛猛晉, 但以效能來說完成後還是得買台 Pi 4B 才行. 

周六回鄉下途中接到國中同學來電, 說不知方便去家裡吃個便飯, 被我以疫情婉拒了, 不知這樣是否太傷感情? 昨晚採收了青菜本想送去給小舅, 結果他說要過來拿, 且口罩戴好戴滿, 我見狀趕緊進去拿口罩來戴, 雖然是鄉下, 但戴上口罩讓人安心其實是一種體貼, 何況家裡還有兩個小外孫, 這種擔心必須理解, 做好防疫避免無心的傳播是盡早能恢復正常生活的必要條件. 

最近雜務較多, 學習軸心有點紊亂, 再聚焦一下 : 

Python : 
  • TensorFlow
  • Web crawler
  • Statistics 
Javascript :
  • Tensorflow.js
  • P5.js
Raspberry Pi & ESP32 (Cam) :
  • Camera
  • Irrigation system
二哥說這學期的數位實驗專題 (時鐘) 他在家已提前做完, 有時間來玩玩 GAL, 我的萬用燒錄器春節前買來至今尚未開機, 我看就讓二哥拿去先玩看看也好, 因為硬體我光是樹莓派與 ESP32 就有得玩了, 不知何時才能輪到 GAL. 

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

2021年5月20日 星期四

樹莓派架站 (二) : 安裝 Apache 2 + PHP + MariaDB

Raspbian 作業系統安裝妥當後便可以進行 Apache 伺服器與 PHP 後端執行環境安裝了. 由於開啟了 VNC 功能, 所以這次的安裝都是透過 VNC Connect 遠端操控完成的. 

我找到一篇在 Raspbian Buster 上安裝 PHP 7.3 的教學文章 :

How To Install PHP / PHP 7.3 on Debian 10 Buster

但看過後覺得有點複雜, 所以還是按照前年底寫的那篇安裝程序來做 :

樹莓派安裝 Apache2+MySQL+PHP7

本系列前一篇文章參考 :



1. 更新系統 :  

pi@raspberrypi:~ $ sudo apt-get update   
下載:1 http://archive.raspberrypi.org/debian buster InRelease [32.9 kB]   
下載:2 http://raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]     
下載:3 http://archive.raspberrypi.org/debian buster/main armhf Packages [376 kB]
取得 423 kB 用了 13s (32.1 kB/s)                                               
正在讀取套件清單... 完成


2. 安裝 Apache 2 伺服器 :    

pi@raspberrypi:~ $ sudo apt-get install apache2  
正在讀取套件清單... 完成
正在重建相依關係          
正在讀取狀態資料... 完成
下列的額外套件將被安裝:
  apache2-bin apache2-data apache2-utils libapr1 libaprutil1
  libaprutil1-dbd-sqlite3 libaprutil1-ldap
建議套件:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom
下列【新】套件將會被安裝:
  apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1
  libaprutil1-dbd-sqlite3 libaprutil1-ldap
升級 0 個,新安裝 8 個,移除 0 個,有 0 個未被升級。
需要下載 1,969 kB 的套件檔。
此操作完成之後,會多佔用 6,164 kB 的磁碟空間。
是否繼續進行 [Y/n]? [Y/n] Y
下載:1 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libapr1 armhf 1.6.5-1 [83.3 kB]
下載:2 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libaprutil1 armhf 1.6.1-4 [81.7 kB]
下載:3 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libaprutil1-dbd-sqlite3 armhf 1.6.1-4 [17.3 kB]
下載:4 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libaprutil1-ldap armhf 1.6.1-4 [16.3 kB]
下載:5 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf apache2-bin armhf 2.4.38-3+deb10u4 [1,119 kB]
下載:6 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf apache2-data all 2.4.38-3+deb10u4 [165 kB]
下載:7 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf apache2-utils armhf 2.4.38-3+deb10u4 [235 kB]
下載:8 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf apache2 armhf 2.4.38-3+deb10u4 [251 kB]
取得 1,969 kB 用了 6s (333 kB/s)
選取了原先未選的套件 libapr1:armhf。
(讀取資料庫 ... 目前共安裝了 163690 個檔案和目錄。)
正在準備解包 .../0-libapr1_1.6.5-1_armhf.deb……
Unpacking libapr1:armhf (1.6.5-1) ...
選取了原先未選的套件 libaprutil1:armhf。
正在準備解包 .../1-libaprutil1_1.6.1-4_armhf.deb……
Unpacking libaprutil1:armhf (1.6.1-4) ...
選取了原先未選的套件 libaprutil1-dbd-sqlite3:armhf。
正在準備解包 .../2-libaprutil1-dbd-sqlite3_1.6.1-4_armhf.deb……
Unpacking libaprutil1-dbd-sqlite3:armhf (1.6.1-4) ...
選取了原先未選的套件 libaprutil1-ldap:armhf。
正在準備解包 .../3-libaprutil1-ldap_1.6.1-4_armhf.deb……
Unpacking libaprutil1-ldap:armhf (1.6.1-4) ...
選取了原先未選的套件 apache2-bin。
正在準備解包 .../4-apache2-bin_2.4.38-3+deb10u4_armhf.deb……
Unpacking apache2-bin (2.4.38-3+deb10u4) ...
選取了原先未選的套件 apache2-data。
正在準備解包 .../5-apache2-data_2.4.38-3+deb10u4_all.deb……
Unpacking apache2-data (2.4.38-3+deb10u4) ...
選取了原先未選的套件 apache2-utils。
正在準備解包 .../6-apache2-utils_2.4.38-3+deb10u4_armhf.deb……
Unpacking apache2-utils (2.4.38-3+deb10u4) ...
選取了原先未選的套件 apache2。
正在準備解包 .../7-apache2_2.4.38-3+deb10u4_armhf.deb……
Unpacking apache2 (2.4.38-3+deb10u4) ...
設定 libapr1:armhf (1.6.5-1) ...
設定 apache2-data (2.4.38-3+deb10u4) ...
設定 libaprutil1:armhf (1.6.1-4) ...
設定 libaprutil1-ldap:armhf (1.6.1-4) ...
設定 libaprutil1-dbd-sqlite3:armhf (1.6.1-4) ...
設定 apache2-utils (2.4.38-3+deb10u4) ...
設定 apache2-bin (2.4.38-3+deb10u4) ...
設定 apache2 (2.4.38-3+deb10u4) ...
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Enabling module authn_core.
Enabling module auth_basic.
Enabling module access_compat.
Enabling module authn_file.
Enabling module authz_user.
Enabling module alias.
Enabling module dir.
Enabling module autoindex.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module filter.
Enabling module deflate.
Enabling module status.
Enabling module reqtimeout.
Enabling conf charset.
Enabling conf localized-error-pages.
Enabling conf other-vhosts-access-log.
Enabling conf security.
Enabling conf serve-cgi-bin.
Enabling site 000-default.
Created symlink /etc/systemd/system/multi-user.target.wants/apache2.service → /lib/systemd/system/apache2.service.
Created symlink /etc/systemd/system/multi-user.target.wants/apache-htcacheclean.service → /lib/systemd/system/apache-htcacheclean.service.
執行 systemd (241-7~deb10u7+rpi1) 的觸發程式……
執行 man-db (2.8.5-2) 的觸發程式……
執行 libc-bin (2.28-10+rpi1) 的觸發程式……

完成後開啟 Chromium 瀏覽器, 輸入 localhost 或 127.0.0.1 即可看到 Apache 預設網頁 :




Apache 網站預設占用 80 埠, 不需要改. 


3. 更改 Apache 2 網頁文件目錄權限 :   

Apache 2 網頁路徑為 /var/www/html/, 下列指令可使 owner 與 group 成員擁有全部權限, 其餘用戶無任何權限 (需重開機才會生效) :

pi@raspberrypi:~ $ sudo chown -R pi:www-data /var/www/html/   
pi@raspberrypi:~ $ sudo chmod -R 770 /var/www/html/


5. 安裝 PHP 7 :  

pi@raspberrypi:~ $ sudo apt install php php-mbstring   
正在讀取套件清單... 完成
正在重建相依關係          
正在讀取狀態資料... 完成
下列的額外套件將被安裝:
  libapache2-mod-php7.3 php-common php7.3 php7.3-cli php7.3-common php7.3-json
  php7.3-mbstring php7.3-opcache php7.3-readline
建議套件:
  php-pear
下列【新】套件將會被安裝:
  libapache2-mod-php7.3 php php-common php-mbstring php7.3 php7.3-cli
  php7.3-common php7.3-json php7.3-mbstring php7.3-opcache php7.3-readline
升級 0 個,新安裝 11 個,移除 0 個,有 0 個未被升級。
需要下載 3,463 kB 的套件檔。
此操作完成之後,會多佔用 15.6 MB 的磁碟空間。
是否繼續進行 [Y/n]? [Y/n] Y  
下載:1 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-common all 2:69 [15.0 kB]
下載:2 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-common armhf 7.3.27-1~deb10u1 [527 kB]
下載:3 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-json armhf 7.3.27-1~deb10u1 [16.2 kB]
下載:4 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-opcache armhf 7.3.27-1~deb10u1 [154 kB]
下載:5 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-readline armhf 7.3.27-1~deb10u1 [10.7 kB]
下載:6 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-cli armhf 7.3.27-1~deb10u1 [1,124 kB]
下載:7 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libapache2-mod-php7.3 armhf 7.3.27-1~deb10u1 [1,082 kB]
下載:8 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3 all 7.3.27-1~deb10u1 [46.8 kB]
下載:9 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php all 2:7.3+69 [5,964 B]
下載:10 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-mbstring armhf 7.3.27-1~deb10u1 [477 kB]
下載:11 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-mbstring all 2:7.3+69 [5,996 B]
取得 3,463 kB 用了 7s (493 kB/s)                                               
選取了原先未選的套件 php-common。
(讀取資料庫 ... 目前共安裝了 164393 個檔案和目錄。)
正在準備解包 .../00-php-common_2%3a69_all.deb……
Unpacking php-common (2:69) ...
選取了原先未選的套件 php7.3-common。
正在準備解包 .../01-php7.3-common_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-common (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php7.3-json。
正在準備解包 .../02-php7.3-json_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-json (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php7.3-opcache。
正在準備解包 .../03-php7.3-opcache_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-opcache (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php7.3-readline。
正在準備解包 .../04-php7.3-readline_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-readline (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php7.3-cli。
正在準備解包 .../05-php7.3-cli_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-cli (7.3.27-1~deb10u1) ...
選取了原先未選的套件 libapache2-mod-php7.3。
正在準備解包 .../06-libapache2-mod-php7.3_7.3.27-1~deb10u1_armhf.deb……
Unpacking libapache2-mod-php7.3 (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php7.3。
正在準備解包 .../07-php7.3_7.3.27-1~deb10u1_all.deb……
Unpacking php7.3 (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php。
正在準備解包 .../08-php_2%3a7.3+69_all.deb……
Unpacking php (2:7.3+69) ...
選取了原先未選的套件 php7.3-mbstring。
正在準備解包 .../09-php7.3-mbstring_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-mbstring (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php-mbstring。
正在準備解包 .../10-php-mbstring_2%3a7.3+69_all.deb……
Unpacking php-mbstring (2:7.3+69) ...
設定 php-common (2:69) ...
Created symlink /etc/systemd/system/timers.target.wants/phpsessionclean.timer → /lib/systemd/system/phpsessionclean.timer.
設定 php7.3-common (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/mods-available/calendar.ini with new version

Creating config file /etc/php/7.3/mods-available/ctype.ini with new version

Creating config file /etc/php/7.3/mods-available/exif.ini with new version

Creating config file /etc/php/7.3/mods-available/fileinfo.ini with new version

Creating config file /etc/php/7.3/mods-available/ftp.ini with new version

Creating config file /etc/php/7.3/mods-available/gettext.ini with new version

Creating config file /etc/php/7.3/mods-available/iconv.ini with new version

Creating config file /etc/php/7.3/mods-available/pdo.ini with new version

Creating config file /etc/php/7.3/mods-available/phar.ini with new version

Creating config file /etc/php/7.3/mods-available/posix.ini with new version

Creating config file /etc/php/7.3/mods-available/shmop.ini with new version

Creating config file /etc/php/7.3/mods-available/sockets.ini with new version

Creating config file /etc/php/7.3/mods-available/sysvmsg.ini with new version

Creating config file /etc/php/7.3/mods-available/sysvsem.ini with new version

Creating config file /etc/php/7.3/mods-available/sysvshm.ini with new version

Creating config file /etc/php/7.3/mods-available/tokenizer.ini with new version
設定 php7.3-opcache (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/mods-available/opcache.ini with new version
設定 php7.3-mbstring (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/mods-available/mbstring.ini with new version
設定 php7.3-json (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/mods-available/json.ini with new version
設定 php7.3-readline (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/mods-available/readline.ini with new version
設定 php-mbstring (2:7.3+69) ...
設定 php7.3-cli (7.3.27-1~deb10u1) ...
update-alternatives: 在自動模式下以 /usr/bin/php7.3 來提供 /usr/bin/php (php)
update-alternatives: 在自動模式下以 /usr/bin/phar7.3 來提供 /usr/bin/phar (phar)
update-alternatives: 在自動模式下以 /usr/bin/phar.phar7.3 來提供 /usr/bin/phar.phar (phar.phar)

Creating config file /etc/php/7.3/cli/php.ini with new version
設定 libapache2-mod-php7.3 (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/apache2/php.ini with new version
Module mpm_event disabled.
Enabling module mpm_prefork.
apache2_switch_mpm Switch to prefork
apache2_invoke: Enable module php7.3
設定 php7.3 (7.3.27-1~deb10u1) ...
設定 php (2:7.3+69) ...
執行 man-db (2.8.5-2) 的觸發程式……

完成後先用 mv 指令將 Apache 2 預設網站目錄 /var/www/html/ 底下的預設首頁 index.html 改名為 index_apache.html, 然後用 echo 輸出 執行 phpinfo() 指令的網頁到 index.php :

pi@raspberrypi:~ $ sudo mv /var/www/html/index.html /var/www/html/index_appache.html   
pi@raspberrypi:~ $ echo "<?php phpinfo ();?>" > /var/www/html/index.php

然後再到瀏覽器重新整理 loclhost 網站就會看到 index.php 呈現的 phpinfo() 結果了 :




到此 Apache + PHP 就安裝完畢了, 剩下 MySQL 資料庫. 再用 df -h 檢視 SD 卡空間 :

pi@raspberrypi:~ $ df -h  
檔案系統        容量  已用  可用 已用% 掛載點
/dev/root        29G  7.6G   21G   28% /
devtmpfs        183M     0  183M    0% /dev
tmpfs           216M   19M  197M    9% /dev/shm
tmpfs           216M  3.2M  212M    2% /run
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           216M     0  216M    0% /sys/fs/cgroup
/dev/mmcblk0p1  253M   48M  205M   19% /boot
tmpfs            44M  4.0K   44M    1% /run/user/1000

看起來沒用掉多少啊!


5. 安裝 MariaDB (MySQL) 資料庫 :  

之前安裝 MySQL 的指令現在已不管用, 因為 mysql-server 與 php-mysql 這兩個安裝套件已經從樹莓派套件清單中移除了, 結果如下 :

pi@raspberrypi:~ $ sudo apt-get install mysql-server php-mysql 
正在讀取套件清單... 完成
正在重建相依關係          
正在讀取狀態資料... 完成
無法取得套件 mysql-server,但它卻被其它的套件引用了。
這意味著這個套件可能已經消失了、被廢棄了,或是只能由其他的來源取得
然而,下列的套件取代了它:
  mariadb-server-10.0

E: 套件 mysql-server 沒有可安裝的候選版本

這可能是 MySQL 被甲骨文買走後, 繼續使用 MySQL 商標可能會被告吧? MySQL 原開發團隊出走推出相容版的開源 MariaDB, 招牌換了, 但其實操作指令還是維持不變, 仍舊使用 mysql 這字眼. 總之現在要改用它的完全相容版本 MariaDB, 安裝方法參考 :


pi@raspberrypi:~ $ sudo apt -y install mariadb-server mariadb-client
正在讀取套件清單... 完成
正在重建相依關係          
正在讀取狀態資料... 完成
下列的額外套件將被安裝:
  galera-3 gawk libcgi-fast-perl libcgi-pm-perl libconfig-inifiles-perl
  libdbd-mysql-perl libdbi-perl libencode-locale-perl libfcgi-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl
  libhttp-date-perl libhttp-message-perl libio-html-perl
  liblwp-mediatypes-perl libreadline5 libsigsegv2 libterm-readkey-perl
  libtimedate-perl liburi-perl mariadb-client-10.3 mariadb-client-core-10.3
  mariadb-server-10.3 mariadb-server-core-10.3 socat
建議套件:
  gawk-doc libclone-perl libmldbm-perl libnet-daemon-perl
  libsql-statement-perl libdata-dump-perl libipc-sharedcache-perl libwww-perl
  mailx mariadb-test tinyca
下列【新】套件將會被安裝:
  galera-3 gawk libcgi-fast-perl libcgi-pm-perl libconfig-inifiles-perl
  libdbd-mysql-perl libdbi-perl libencode-locale-perl libfcgi-perl
  libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl
  libhttp-date-perl libhttp-message-perl libio-html-perl
  liblwp-mediatypes-perl libreadline5 libsigsegv2 libterm-readkey-perl
  libtimedate-perl liburi-perl mariadb-client mariadb-client-10.3
  mariadb-client-core-10.3 mariadb-server mariadb-server-10.3
  mariadb-server-core-10.3 socat
升級 0 個,新安裝 28 個,移除 0 個,有 0 個未被升級。
需要下載 18.1 MB 的套件檔。
此操作完成之後,會多佔用 150 MB 的磁碟空間。
下載:1 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libsigsegv2 armhf 2.12-2 [32.3 kB]
下載:2 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf gawk armhf 1:4.2.1+dfsg-1 [590 kB]
下載:3 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf galera-3 armhf 25.3.25-2 [811 kB]
下載:4 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libdbi-perl armhf 1.642-1+deb10u2 [767 kB]
下載:5 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libconfig-inifiles-perl all 3.000001-1 [51.9 kB]
下載:6 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libreadline5 armhf 5.2+dfsg-3 [103 kB]
下載:7 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf mariadb-client-core-10.3 armhf 1:10.3.27-0+deb10u1 [4,712 kB]
下載:8 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf mariadb-client-10.3 armhf 1:10.3.27-0+deb10u1 [984 kB]
下載:9 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf mariadb-server-core-10.3 armhf 1:10.3.27-0+deb10u1 [5,209 kB]
下載:10 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf socat armhf 1.7.3.2-2 [324 kB]
下載:11 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf mariadb-server-10.3 armhf 1:10.3.27-0+deb10u1 [3,563 kB]
下載:12 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libhtml-tagset-perl all 3.20-3 [12.7 kB]
下載:13 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf liburi-perl all 1.76-1 [89.9 kB]
下載:14 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libhtml-parser-perl armhf 3.72-3+b2 [101 kB]
下載:15 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libcgi-pm-perl all 4.40-1 [222 kB]
下載:16 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libfcgi-perl armhf 0.78-2+b2 [35.0 kB]
下載:17 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libcgi-fast-perl all 1:2.13-1 [11.4 kB]
下載:18 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libdbd-mysql-perl armhf 4.050-2 [114 kB]
下載:19 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libencode-locale-perl all 1.05-1 [13.7 kB]
下載:20 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libhtml-template-perl all 2.97-1 [66.0 kB]
下載:21 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libtimedate-perl all 2.3000-2+deb10u1 [38.1 kB]
下載:22 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libhttp-date-perl all 6.02-1 [10.7 kB]
下載:23 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libio-html-perl all 1.001-1 [17.6 kB]
下載:24 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf liblwp-mediatypes-perl all 6.02-1 [22.1 kB]
下載:25 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libhttp-message-perl all 6.18-1 [77.8 kB]
下載:26 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libterm-readkey-perl armhf 2.38-1 [26.3 kB]
下載:27 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf mariadb-client all 1:10.3.27-0+deb10u1 [31.1 kB]
下載:28 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf mariadb-server all 1:10.3.27-0+deb10u1 [31.2 kB]
取得 18.1 MB 用了 25s (716 kB/s)                                               
正在預先設定套件 ...
選取了原先未選的套件 libsigsegv2:armhf。
(讀取資料庫 ... 目前共安裝了 164545 個檔案和目錄。)
正在準備解包 .../libsigsegv2_2.12-2_armhf.deb……
Unpacking libsigsegv2:armhf (2.12-2) ...
設定 libsigsegv2:armhf (2.12-2) ...
選取了原先未選的套件 gawk。
(讀取資料庫 ... 目前共安裝了 164554 個檔案和目錄。)
正在準備解包 .../00-gawk_1%3a4.2.1+dfsg-1_armhf.deb……
Unpacking gawk (1:4.2.1+dfsg-1) ...
選取了原先未選的套件 galera-3。
正在準備解包 .../01-galera-3_25.3.25-2_armhf.deb……
Unpacking galera-3 (25.3.25-2) ...
選取了原先未選的套件 libdbi-perl:armhf。
正在準備解包 .../02-libdbi-perl_1.642-1+deb10u2_armhf.deb……
Unpacking libdbi-perl:armhf (1.642-1+deb10u2) ...
選取了原先未選的套件 libconfig-inifiles-perl。
正在準備解包 .../03-libconfig-inifiles-perl_3.000001-1_all.deb……
Unpacking libconfig-inifiles-perl (3.000001-1) ...
選取了原先未選的套件 libreadline5:armhf。
正在準備解包 .../04-libreadline5_5.2+dfsg-3_armhf.deb……
Unpacking libreadline5:armhf (5.2+dfsg-3) ...
選取了原先未選的套件 mariadb-client-core-10.3。
正在準備解包 .../05-mariadb-client-core-10.3_1%3a10.3.27-0+deb10u1_armhf.deb……
Unpacking mariadb-client-core-10.3 (1:10.3.27-0+deb10u1) ...
選取了原先未選的套件 mariadb-client-10.3。
正在準備解包 .../06-mariadb-client-10.3_1%3a10.3.27-0+deb10u1_armhf.deb……
Unpacking mariadb-client-10.3 (1:10.3.27-0+deb10u1) ...
選取了原先未選的套件 mariadb-server-core-10.3。
正在準備解包 .../07-mariadb-server-core-10.3_1%3a10.3.27-0+deb10u1_armhf.deb……
Unpacking mariadb-server-core-10.3 (1:10.3.27-0+deb10u1) ...
選取了原先未選的套件 socat。
正在準備解包 .../08-socat_1.7.3.2-2_armhf.deb……
Unpacking socat (1.7.3.2-2) ...
選取了原先未選的套件 mariadb-server-10.3。
正在準備解包 .../09-mariadb-server-10.3_1%3a10.3.27-0+deb10u1_armhf.deb……
Unpacking mariadb-server-10.3 (1:10.3.27-0+deb10u1) ...
選取了原先未選的套件 libhtml-tagset-perl。
正在準備解包 .../10-libhtml-tagset-perl_3.20-3_all.deb……
Unpacking libhtml-tagset-perl (3.20-3) ...
選取了原先未選的套件 liburi-perl。
正在準備解包 .../11-liburi-perl_1.76-1_all.deb……
Unpacking liburi-perl (1.76-1) ...
選取了原先未選的套件 libhtml-parser-perl。
正在準備解包 .../12-libhtml-parser-perl_3.72-3+b2_armhf.deb……
Unpacking libhtml-parser-perl (3.72-3+b2) ...
選取了原先未選的套件 libcgi-pm-perl。
正在準備解包 .../13-libcgi-pm-perl_4.40-1_all.deb……
Unpacking libcgi-pm-perl (4.40-1) ...
選取了原先未選的套件 libfcgi-perl。
正在準備解包 .../14-libfcgi-perl_0.78-2+b2_armhf.deb……
Unpacking libfcgi-perl (0.78-2+b2) ...
選取了原先未選的套件 libcgi-fast-perl。
正在準備解包 .../15-libcgi-fast-perl_1%3a2.13-1_all.deb……
Unpacking libcgi-fast-perl (1:2.13-1) ...
選取了原先未選的套件 libdbd-mysql-perl:armhf。
正在準備解包 .../16-libdbd-mysql-perl_4.050-2_armhf.deb……
Unpacking libdbd-mysql-perl:armhf (4.050-2) ...
選取了原先未選的套件 libencode-locale-perl。
正在準備解包 .../17-libencode-locale-perl_1.05-1_all.deb……
Unpacking libencode-locale-perl (1.05-1) ...
選取了原先未選的套件 libhtml-template-perl。
正在準備解包 .../18-libhtml-template-perl_2.97-1_all.deb……
Unpacking libhtml-template-perl (2.97-1) ...
選取了原先未選的套件 libtimedate-perl。
正在準備解包 .../19-libtimedate-perl_2.3000-2+deb10u1_all.deb……
Unpacking libtimedate-perl (2.3000-2+deb10u1) ...
選取了原先未選的套件 libhttp-date-perl。
正在準備解包 .../20-libhttp-date-perl_6.02-1_all.deb……
Unpacking libhttp-date-perl (6.02-1) ...
選取了原先未選的套件 libio-html-perl。
正在準備解包 .../21-libio-html-perl_1.001-1_all.deb……
Unpacking libio-html-perl (1.001-1) ...
選取了原先未選的套件 liblwp-mediatypes-perl。
正在準備解包 .../22-liblwp-mediatypes-perl_6.02-1_all.deb……
Unpacking liblwp-mediatypes-perl (6.02-1) ...
選取了原先未選的套件 libhttp-message-perl。
正在準備解包 .../23-libhttp-message-perl_6.18-1_all.deb……
Unpacking libhttp-message-perl (6.18-1) ...
選取了原先未選的套件 libterm-readkey-perl。
正在準備解包 .../24-libterm-readkey-perl_2.38-1_armhf.deb……
Unpacking libterm-readkey-perl (2.38-1) ...
選取了原先未選的套件 mariadb-client。
正在準備解包 .../25-mariadb-client_1%3a10.3.27-0+deb10u1_all.deb……
Unpacking mariadb-client (1:10.3.27-0+deb10u1) ...
選取了原先未選的套件 mariadb-server。
正在準備解包 .../26-mariadb-server_1%3a10.3.27-0+deb10u1_all.deb……
Unpacking mariadb-server (1:10.3.27-0+deb10u1) ...
設定 libconfig-inifiles-perl (3.000001-1) ...
設定 libreadline5:armhf (5.2+dfsg-3) ...
設定 gawk (1:4.2.1+dfsg-1) ...
設定 libhtml-tagset-perl (3.20-3) ...
設定 liblwp-mediatypes-perl (6.02-1) ...
設定 libencode-locale-perl (1.05-1) ...
設定 socat (1.7.3.2-2) ...
設定 mariadb-server-core-10.3 (1:10.3.27-0+deb10u1) ...
設定 libio-html-perl (1.001-1) ...
設定 galera-3 (25.3.25-2) ...
設定 libtimedate-perl (2.3000-2+deb10u1) ...
設定 mariadb-client-core-10.3 (1:10.3.27-0+deb10u1) ...
設定 libfcgi-perl (0.78-2+b2) ...
設定 libterm-readkey-perl (2.38-1) ...
設定 liburi-perl (1.76-1) ...
設定 libdbi-perl:armhf (1.642-1+deb10u2) ...
設定 libhttp-date-perl (6.02-1) ...
設定 mariadb-client-10.3 (1:10.3.27-0+deb10u1) ...
設定 libdbd-mysql-perl:armhf (4.050-2) ...
設定 libhtml-parser-perl (3.72-3+b2) ...
設定 mariadb-server-10.3 (1:10.3.27-0+deb10u1) ...
Created symlink /etc/systemd/system/mysql.service → /lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /lib/systemd/system/mariadb.service.
設定 libhttp-message-perl (6.18-1) ...
設定 mariadb-client (1:10.3.27-0+deb10u1) ...
設定 libcgi-pm-perl (4.40-1) ...
設定 libhtml-template-perl (2.97-1) ...
設定 mariadb-server (1:10.3.27-0+deb10u1) ...
設定 libcgi-fast-perl (1:2.13-1) ...
執行 systemd (241-7~deb10u7+rpi1) 的觸發程式……
執行 man-db (2.8.5-2) 的觸發程式……
執行 libc-bin (2.28-10+rpi1) 的觸發程式……
pi@raspberrypi:~ $ 

這樣就安裝完成了, 可以用 systemctl status mariadb 指令檢查 MariaDB 伺服器是否有在跑 : 

pi@raspberrypi:~ $ systemctl status mariadb --no-pager   
● mariadb.service - MariaDB 10.3.27 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-05-20 14:14:49 CST; 19min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 11110 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 877)
   CGroup: /system.slice/mariadb.service
           └─11110 /usr/sbin/mysqld

 5月 20 14:15:10 raspberrypi /etc/mysql/debian-start[11148]: Phase 6/7: Checking and upgrading tables
 5月 20 14:15:10 raspberrypi /etc/mysql/debian-start[11148]: Running 'mysqlcheck' with connection arguments: --socket='/var/run/mysqld/m…ld.sock'
 5月 20 14:15:10 raspberrypi /etc/mysql/debian-start[11148]: # Connecting to localhost...
 5月 20 14:15:10 raspberrypi /etc/mysql/debian-start[11148]: # Disconnecting from localhost...
 5月 20 14:15:10 raspberrypi /etc/mysql/debian-start[11148]: Processing databases
 5月 20 14:15:10 raspberrypi /etc/mysql/debian-start[11148]: information_schema
 5月 20 14:15:10 raspberrypi /etc/mysql/debian-start[11148]: performance_schema
 5月 20 14:15:10 raspberrypi /etc/mysql/debian-start[11148]: Phase 7/7: Running 'FLUSH PRIVILEGES'
 5月 20 14:15:10 raspberrypi /etc/mysql/debian-start[11148]: OK
 5月 20 14:15:11 raspberrypi /etc/mysql/debian-start[11201]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
Hint: Some lines were ellipsized, use -l to show in full.

由 Active: active(running) 可知 MariaDB 已正常執行, 注意, 一定要加 --no-page 參數, 否則因為 systemctl 指令報表很長 (21 頁), 按 Ctrl-C 無反應會以為是當機了, 這時須按 q 才會跳出來.

接下來必須執行一個 MariaDB 內建的程式 mysql_secure_installation 來進行安全性設定, 它會要求設定 MariaDB 伺服器登入密碼, 並詢問 5 個 Yes/no 問題, 全部回答 y 即可 :

pi@raspberrypi:~ $ sudo mysql_secure_installation    

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y  
New password:   (設定 MariaDB 伺服器登入密碼)
Re-enter new password:    (確認  MariaDB 伺服器登入密碼)
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y     (移除匿名使用者)
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y    (不允許遠端 root 登入)
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y   (移除 test 資料庫)
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y   (重新載入特權資料表)
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
pi@raspberrypi:~ $ 

最後須進入 MariaDB Shell 下一些指令讓 root 使用者也像一般使用者一樣必須使用密碼才能登入伺服器, 而不是預設直接進入 (提高安全性) :

pi@raspberrypi:~ $ sudo mysql -u root      (現在 root 使育者可直接進入伺服器)
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 57
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)]> UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';    (更新 root 使用者的認證方式為使用密碼登入)
Query OK, 1 row affected (0.024 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [(none)]> FLUSH PRIVILEGES;     (寫回權限設定)
Query OK, 0 rows affected (0.005 sec)

MariaDB [(none)]> QUIT;       (跳出)
Bye

經過這樣設定之後想再用 root 直接登入就行不通了, 會被系統拒絕 : 

pi@raspberrypi:~ $ sudo mysql -u root      
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

必須帶 -p 參數以密碼登入, 這時就會出現 Enter Password 提示輸入密碼 : 

pi@raspberrypi:~ $ sudo mysql -u root -p     (帶 -p 參數)  
Enter password:      (輸入上面執行 sudo mysql_secure_installation 時設定的密碼)
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 61
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)]> QUIT
Bye

這樣就完成 MariaDB 伺服器的安全性設定了 (主要就是閹掉 root 的無上權柄). 


6. 安裝 phpMyAdmin 資料庫管理軟體 :  

這部分還是照這篇 "樹莓派安裝 Apache2+MySQL+PHP7" 的第七項來做 : 

安裝之前必須先授予樹莓派帳號 pi'@'localhost 以與 root 相同之密碼存取資料庫之權限, 以免中途出現 Access denied 錯誤 : 

pi@raspberrypi:~ $ sudo mysql -u root -p  
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 64
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)]> GRANT ALL PRIVILEGES ON mydb.* TO 'pi'@'localhost' IDENTIFIED BY 'mysql';    
Query OK, 0 rows affected (0.143 sec)

MariaDB [(none)]> QUIT   
Bye
pi@raspberrypi:~ $ 

然後就可以開始安裝 phpMyAdmin 了 : 

pi@raspberrypi:~ $ sudo apt-get install phpmyadmin    
正在讀取套件清單... 完成
正在重建相依關係          
正在讀取狀態資料... 完成
下列的額外套件將被安裝:
  dbconfig-common dbconfig-mysql libmcrypt4 libzip4 php-bz2 php-curl php-gd php-mysql php-pear php-php-gettext php-phpseclib php-tcpdf php-xml
  php-zip php7.1-common php7.1-mcrypt php7.3-bz2 php7.3-curl php7.3-gd php7.3-mysql php7.3-xml php7.3-zip
建議套件:
  libmcrypt-dev mcrypt php-libsodium php-gmp php-imagick
下列【新】套件將會被安裝:
  dbconfig-common dbconfig-mysql libmcrypt4 libzip4 php-bz2 php-curl php-gd php-mysql php-pear php-php-gettext php-phpseclib php-tcpdf php-xml
  php-zip php7.1-common php7.1-mcrypt php7.3-bz2 php7.3-curl php7.3-gd php7.3-mysql php7.3-xml php7.3-zip phpmyadmin
升級 0 個,新安裝 23 個,移除 0 個,有 0 個未被升級。
需要下載 13.7 MB 的套件檔。
此操作完成之後,會多佔用 55.9 MB 的磁碟空間。
是否繼續進行 [Y/n]? [Y/n] y    
下載:2 http://raspbian.raspberrypi.org/raspbian buster/main armhf dbconfig-mysql all 2.0.11+deb10u1 [1,096 B]
下載:1 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf dbconfig-common all 2.0.11+deb10u1 [599 kB]                               
下載:3 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libmcrypt4 armhf 2.5.8-3.4 [64.2 kB]                                      
下載:4 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf libzip4 armhf 1.5.1-4 [45.4 kB]                                           
下載:5 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-bz2 armhf 7.3.27-1~deb10u1 [8,700 B]                               
下載:6 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-bz2 all 2:7.3+69 [5,988 B]                                            
下載:7 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-curl armhf 7.3.27-1~deb10u1 [26.7 kB]                              
下載:8 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-curl all 2:7.3+69 [5,992 B]                                           
下載:9 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-gd armhf 7.3.27-1~deb10u1 [22.6 kB]                                
下載:10 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-gd all 2:7.3+69 [5,984 B]                                            
下載:11 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-mysql armhf 7.3.27-1~deb10u1 [96.6 kB]                            
下載:12 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-mysql all 2:7.3+69 [5,992 B]                                         
下載:13 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-xml armhf 7.3.27-1~deb10u1 [85.5 kB]                              
下載:14 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-xml all 2:7.3+69 [6,012 B]                                           
下載:15 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-pear all 1:1.10.6+submodules+notgz-1.1+deb10u2 [285 kB]              
下載:16 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-php-gettext all 1.0.12-0.1 [16.4 kB]                                 
下載:17 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-phpseclib all 2.0.14-1 [184 kB]                                      
下載:18 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-tcpdf all 6.2.26+dfsg-1 [7,831 kB]                                   
下載:19 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.3-zip armhf 7.3.27-1~deb10u1 [17.7 kB]                              
下載:20 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php-zip all 2:7.3+69 [5,988 B]                                           
下載:21 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.1-common armhf 7.1.20-1+b2 [480 kB]                                 
下載:22 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf php7.1-mcrypt armhf 7.1.20-1+b2 [12.6 kB]                                
下載:23 http://mirror.ossplanet.net/raspbian/raspbian buster/main armhf phpmyadmin all 4:4.6.6-5 [3,913 kB]                                      
取得 13.7 MB 用了 28s (493 kB/s)                                                                                                                 
正在預先設定套件 ...
選取了原先未選的套件 dbconfig-common。
(讀取資料庫 ... 目前共安裝了 165541 個檔案和目錄。)
正在準備解包 .../00-dbconfig-common_2.0.11+deb10u1_all.deb……
Unpacking dbconfig-common (2.0.11+deb10u1) ...
選取了原先未選的套件 dbconfig-mysql。
正在準備解包 .../01-dbconfig-mysql_2.0.11+deb10u1_all.deb……
Unpacking dbconfig-mysql (2.0.11+deb10u1) ...
選取了原先未選的套件 libmcrypt4。
正在準備解包 .../02-libmcrypt4_2.5.8-3.4_armhf.deb……
Unpacking libmcrypt4 (2.5.8-3.4) ...
選取了原先未選的套件 libzip4:armhf。
正在準備解包 .../03-libzip4_1.5.1-4_armhf.deb……
Unpacking libzip4:armhf (1.5.1-4) ...
選取了原先未選的套件 php7.3-bz2。
正在準備解包 .../04-php7.3-bz2_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-bz2 (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php-bz2。
正在準備解包 .../05-php-bz2_2%3a7.3+69_all.deb……
Unpacking php-bz2 (2:7.3+69) ...
選取了原先未選的套件 php7.3-curl。
正在準備解包 .../06-php7.3-curl_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-curl (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php-curl。
正在準備解包 .../07-php-curl_2%3a7.3+69_all.deb……
Unpacking php-curl (2:7.3+69) ...
選取了原先未選的套件 php7.3-gd。
正在準備解包 .../08-php7.3-gd_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-gd (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php-gd。
正在準備解包 .../09-php-gd_2%3a7.3+69_all.deb……
Unpacking php-gd (2:7.3+69) ...
選取了原先未選的套件 php7.3-mysql。
正在準備解包 .../10-php7.3-mysql_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-mysql (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php-mysql。
正在準備解包 .../11-php-mysql_2%3a7.3+69_all.deb……
Unpacking php-mysql (2:7.3+69) ...
選取了原先未選的套件 php7.3-xml。
正在準備解包 .../12-php7.3-xml_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-xml (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php-xml。
正在準備解包 .../13-php-xml_2%3a7.3+69_all.deb……
Unpacking php-xml (2:7.3+69) ...
選取了原先未選的套件 php-pear。
正在準備解包 .../14-php-pear_1%3a1.10.6+submodules+notgz-1.1+deb10u2_all.deb……
Unpacking php-pear (1:1.10.6+submodules+notgz-1.1+deb10u2) ...
選取了原先未選的套件 php-php-gettext。
正在準備解包 .../15-php-php-gettext_1.0.12-0.1_all.deb……
Unpacking php-php-gettext (1.0.12-0.1) ...
選取了原先未選的套件 php-phpseclib。
正在準備解包 .../16-php-phpseclib_2.0.14-1_all.deb……
Unpacking php-phpseclib (2.0.14-1) ...
選取了原先未選的套件 php-tcpdf。
正在準備解包 .../17-php-tcpdf_6.2.26+dfsg-1_all.deb……
Unpacking php-tcpdf (6.2.26+dfsg-1) ...
選取了原先未選的套件 php7.3-zip。
正在準備解包 .../18-php7.3-zip_7.3.27-1~deb10u1_armhf.deb……
Unpacking php7.3-zip (7.3.27-1~deb10u1) ...
選取了原先未選的套件 php-zip。
正在準備解包 .../19-php-zip_2%3a7.3+69_all.deb……
Unpacking php-zip (2:7.3+69) ...
選取了原先未選的套件 php7.1-common。
正在準備解包 .../20-php7.1-common_7.1.20-1+b2_armhf.deb……
Unpacking php7.1-common (7.1.20-1+b2) ...
選取了原先未選的套件 php7.1-mcrypt。
正在準備解包 .../21-php7.1-mcrypt_7.1.20-1+b2_armhf.deb……
Unpacking php7.1-mcrypt (7.1.20-1+b2) ...
選取了原先未選的套件 phpmyadmin。
正在準備解包 .../22-phpmyadmin_4%3a4.6.6-5_all.deb……
Unpacking phpmyadmin (4:4.6.6-5) ...
設定 php-tcpdf (6.2.26+dfsg-1) ...
設定 libzip4:armhf (1.5.1-4) ...
設定 dbconfig-common (2.0.11+deb10u1) ...

Creating config file /etc/dbconfig-common/config with new version
設定 php7.3-bz2 (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/mods-available/bz2.ini with new version
設定 php-phpseclib (2.0.14-1) ...
設定 php7.1-common (7.1.20-1+b2) ...

Creating config file /etc/php/7.1/mods-available/calendar.ini with new version

Creating config file /etc/php/7.1/mods-available/ctype.ini with new version

Creating config file /etc/php/7.1/mods-available/exif.ini with new version

Creating config file /etc/php/7.1/mods-available/fileinfo.ini with new version

Creating config file /etc/php/7.1/mods-available/ftp.ini with new version

Creating config file /etc/php/7.1/mods-available/gettext.ini with new version

Creating config file /etc/php/7.1/mods-available/iconv.ini with new version

Creating config file /etc/php/7.1/mods-available/pdo.ini with new version

Creating config file /etc/php/7.1/mods-available/phar.ini with new version

Creating config file /etc/php/7.1/mods-available/posix.ini with new version

Creating config file /etc/php/7.1/mods-available/shmop.ini with new version

Creating config file /etc/php/7.1/mods-available/sockets.ini with new version

Creating config file /etc/php/7.1/mods-available/sysvmsg.ini with new version

Creating config file /etc/php/7.1/mods-available/sysvsem.ini with new version

Creating config file /etc/php/7.1/mods-available/sysvshm.ini with new version

Creating config file /etc/php/7.1/mods-available/tokenizer.ini with new version
設定 php7.3-mysql (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/mods-available/mysqlnd.ini with new version

Creating config file /etc/php/7.3/mods-available/mysqli.ini with new version

Creating config file /etc/php/7.3/mods-available/pdo_mysql.ini with new version
設定 php7.3-xml (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/mods-available/dom.ini with new version

Creating config file /etc/php/7.3/mods-available/simplexml.ini with new version

Creating config file /etc/php/7.3/mods-available/wddx.ini with new version

Creating config file /etc/php/7.3/mods-available/xml.ini with new version

Creating config file /etc/php/7.3/mods-available/xmlreader.ini with new version

Creating config file /etc/php/7.3/mods-available/xmlwriter.ini with new version

Creating config file /etc/php/7.3/mods-available/xsl.ini with new version
設定 php7.3-zip (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/mods-available/zip.ini with new version
設定 libmcrypt4 (2.5.8-3.4) ...
設定 php7.3-curl (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/mods-available/curl.ini with new version
設定 php7.3-gd (7.3.27-1~deb10u1) ...

Creating config file /etc/php/7.3/mods-available/gd.ini with new version
設定 php-xml (2:7.3+69) ...
設定 php-curl (2:7.3+69) ...
設定 php-pear (1:1.10.6+submodules+notgz-1.1+deb10u2) ...
設定 php-mysql (2:7.3+69) ...
設定 php-bz2 (2:7.3+69) ...
設定 php7.1-mcrypt (7.1.20-1+b2) ...

Creating config file /etc/php/7.1/mods-available/mcrypt.ini with new version
設定 dbconfig-mysql (2.0.11+deb10u1) ...
設定 php-php-gettext (1.0.12-0.1) ...
設定 php-zip (2:7.3+69) ...
設定 php-gd (2:7.3+69) ...
設定 phpmyadmin (4:4.6.6-5) ...
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
dbconfig-common: writing config to /etc/dbconfig-common/phpmyadmin.conf

Creating config file /etc/dbconfig-common/phpmyadmin.conf with new version

Creating config file /etc/phpmyadmin/config-db.php with new version
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO).
unable to connect to mysql server.
error encountered creating user:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
dbconfig-common: phpmyadmin configure: trying again.
dbconfig-common: writing config to /etc/dbconfig-common/phpmyadmin.conf
Replacing config file /etc/dbconfig-common/phpmyadmin.conf with new version
dbconfig-common: flushing administrative password
apache2_invoke: Enable configuration phpmyadmin
執行 hicolor-icon-theme (0.17-2) 的觸發程式……
執行 libc-bin (2.28-10+rpi1) 的觸發程式……
執行 libapache2-mod-php7.3 (7.3.27-1~deb10u1) 的觸發程式……
執行 man-db (2.8.5-2) 的觸發程式……

注意到後面 ERROR 1045 這個錯誤嗎? 這就是沒有事先授予 pi@localhost 帳號存取資料庫權限所致, 它會跳出一個視窗提示出現錯誤, 詢問要跳過還是 retry, 我只好另開一個終端機補做, 然後再選 retry 繼續安裝完成. 

不過最後還會出現一個提示視窗詢問是否要進行資料庫設定 (不強制, 可事後做), 按預設否即可 :




這是比前一篇多出來之處. 

最後還要更改 Apache 2 的設定檔, 將 phpMyAdmin 的 Apache 設定檔匯進去, 用 nano 開啟 /etc/apace2/apache2.conf, 然後將下列指令貼到最後一行 : 

Include /etc/phpmyadmin/apache.conf   

pi@raspberrypi:~ $ sudo nano /etc/apache2/apache2.conf   




按 Ctrol+O 存檔後再按 Ctrl+X 離開 nano 編輯器, 然後用下列指令重新啟動 Apache 2 伺服器 :

pi@raspberrypi:~ $ sudo /etc/init.d/apache2 restart    
[ ok ] Restarting apache2 (via systemctl): apache2.service.

至此 phpMyAdmin 就安裝完畢了. 

開啟瀏覽器輸入網址 http://127.0.0.1/phpmyadmin 顯示 phpMyAdmin 網頁 :




使用 root 或上面新增的樹莓派預設此用者帳號 pi 都可以登入 :




OK, 大功告成啦! 

用 df -h 看看用掉多少 SD 卡空間 :

pi@raspberrypi:~ $ df -h   
檔案系統        容量  已用  可用 已用% 掛載點
/dev/root        29G  8.7G   19G   32% /
devtmpfs        183M     0  183M    0% /dev
tmpfs           216M   12M  204M    6% /dev/shm
tmpfs           216M  5.9M  210M    3% /run
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           216M     0  216M    0% /sys/fs/cgroup
/dev/mmcblk0p1  253M   48M  205M   19% /boot
tmpfs            44M  4.0K   44M    1% /run/user/1000

與前一篇的 7.6GB 相比多出 1.1GB, 也就是 Apache 2 + PHP + MariaDB 用掉了 1.1GB 左右.


2021-05-22 補充 :

昨天安裝 WordPress 找到兩篇文章寫得很棒, 值得參考 :