顯示具有 PHP 標籤的文章。 顯示所有文章
顯示具有 PHP 標籤的文章。 顯示所有文章

2024年7月7日 星期日

存取 MySQL 出現 "#1044 Access denied for user" 錯誤

昨晚想在鄉下家的樹莓派上重建之前在租用的英國虛擬主機 Hostinger 上佈署的 PHP 架站系統 EasyUICMS, 但在執行系統安裝要建立資料庫時卻出現 "#1044 Access denied for user" 錯誤 :




但我用同樣的帳密在 phpMyAdmin 卻可登入成功, 不過登入後手動建立資料庫也是遇到同樣的 1044 錯誤, 可見這應該是這個 pi 帳號存取權限不足的問題. 

搜尋找到下面這篇文章 : 


其中有個回覆給出指令來賦予登入帳號所有權限 :




我找出當時在此 Pi 3 上安裝 Apache + PHP + MySQL 的紀錄 :


比對指令發現當時缺了一個 FLUSH PRIVILEGES 這條指令, 難怪帳號 pi 沒有存取資料庫權限, 正確程序應該是執行這兩條指令 :

GRANT ALL PRIVILEGES ON *.* TO 'pi'@'localhost' IDENTIFIED BY 'mysql'; 
FLUSH PRIVILEGES;

關於處理 MySQL 權限下面這篇有完整指令集 : 


於是進入終端機以 root 身分登入 MySQL Shell 後執行此兩指令 : 

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

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 *.* TO 'pi'@'localhost' IDENTIFIED BY 'mysql'; 
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> flush privileges;     
Query OK, 0 rows affected (0.02 sec)

按 Ctrl+C 即可跳出 MySQL Shell 介面.

用 admin 登入系統後按 "系統安裝" 鈕果然就能順利建立資料庫與系統資料表了 :






哇, 多年前用 PHP 寫的架站系統 EasyUICMS 重出江湖, 真是久違了. 

2023年12月20日 星期三

好站 : 如何開發 WordPress 外掛

今天在 Youtube 找到下面這個 WordpPress 外掛開發的教學 : 





我之前是自己寫一個小型的 PHP 架站程式來安裝 PHP 應用程式, 後來用了 WordPress 對其介面與功能非常喜歡, 就想說要如何將自己的 PHP 應用程式與 WordPress 整合在一起, 原來就是所謂的外掛. 這篇其實是作者 Mr Digital 一系列 WordPress 教學影片裡的一部, 參考 :  


另外還有一個不錯的教學值得參考 : 





2023年11月7日 星期二

智邦生活館 1 元簡訊實名制重新開通

上週收到智邦生活館寄來的 email, 說由於政府打詐要求, 原申請的 1 元簡訊 API 服務之用戶必須填寫內附之開通申請單, 貼上雙證件影本寄回重新開通帳戶. 

這服務是我在 2010 年 4 月時為自己撰寫的股票監控軟體傳遞到價訊息而申請的 :


那時儲值了 300 元後, 用 PHP API 測試完成便擱著一直沒有用到, 因為後來忙東忙西沒時間寫完通訊部分, 都直接登入系統去看. 想說留著用來幫吳董設計魚塭監控系統時測試用吧, 填好資料照相寄回去, 兩天後收到驗證通過, 改天來問看看他們有無 Python API, 因為我的 PHP 已經快忘光了. 

2023年5月18日 星期四

PHP 好書

自從改用 Python 做為日常使用的程式語言後, PHP 就被我束之高閣了, 連進行中的 Mapleboard 架站本也打算用 Django + Nginx硬刻, 但最近重新發現了 WordPress 的價值-浩瀚的外掛, 改變了原先的想法, 決定還是使用 WordPress (80 埠), 而 Django + Nginx 則是做為實驗 (8080 埠), 感覺 PHP 還是蠻多人使用的, 不該放掉. 

今天上市圖與 momo 找了下面幾本 PHP 好書 : 

# 快速學會PHP+MySQL (市圖 2021)

2023年1月24日 星期二

好站 : 安裝 LNAMP Server + phpMyAdmin 在 Linux 系統上輕鬆架設網站

過年前將 Mapleboard 帶回鄉下家, 打算在上面架設網頁伺服器, 但居然忘記帶最重要的電源線! 今日 (年初三) 菁菁有客人約做睫毛要載她回高雄, 順便拿電源線 + HDMI 線回來測試. 早上只好先進行紙上作業, 爬文做一下功課, 再決定要架 Apache 還是 Nginx. 早上找到下面這篇文章, 發現居然有可同時架 NGINX 與 Apache 的套件可用 : 


原來 LNAMP=LAMP + NGINX, 這組合的優點是可用 NGINX 來處理處理靜態檔案, 反向代理, 資源分配; 用 Apache 來處理動態網頁程式, 這樣的綜效比單獨使用 Apache 要好得多. 不過, 作者認為, 如果沒有要用到 Apache 的 .hraccess 功能, 其實不建議用 Apache 來跑 PHP, 而是應該使用 NGINX. 關於 .htaccess 參考 : 


總之, 若沒用到 .htaccess 的話, 用 NGINX 就好, 參考作者另一篇文章 : 


我是想同時可執行 Python + Django + Flask 與 PHP (雖然比較少用了), 所以 port 80 應該會給 Python Web, 8080 給 PHP.

參考 :


作者還有更多很棒的作品分享 (寫了很多 Rust 解題文章), 參考 :


2021年6月4日 星期五

樹莓派架站 (五) : 安裝 phpMyAdmin

在做 WordPress 網站基本設定時試圖將既有的中文資料貼至 WordPress 的頁面或文章中, 但中文部分卻出現問號, 直覺是編碼問題, 爬文發現可能是 MariaDB 裡面的編碼是 Latin-1, 應該改成 utf8_general_ci 才對, 這才想起來安裝過程好像缺了一個東西, 那就是管理資料庫的神器 phpMyAdmin. 雖然管理 WordPress 網站其實不需要這工具, 但對於寫 PHP 程式的人來說卻很有用, 所以如果是不懂網站內部技術的架站者來說, 這篇就直接跳過去. 


以前在樹莓派上跑我自己寫的 PHP 架站機時也寫過一篇安裝 phpMyAdmin 的文章, 參考下面這篇的第 6 項, 那時還是 v4, 現在已升版至 v5 :



1. 下載 phpMyAdmin : 

下載 phpMyAdmin 請先到下列網址 : 


滑鼠移到最上面那個 5.1.1 版 zip 檔下載超連結, 按右鍵點選 "複製連結網址" : 




然後切換到樹莓派 VNC Connect 畫面, 下 wget 指令後面貼上所複製的網址即可

pi@raspberrypi:~ $ wget https://files.phpmyadmin.net/phpMyAdmin/5.1.1/phpMyAdmin-5.1.1-all-languages.zip  


2. 解壓縮 phpMyAdmin : 

下載完畢後用 unzip 指令解壓縮此 zip 檔 : 

pi@raspberrypi:~ $ unzip phpMyAdmin-5.1.1-all-languages.zip     

檢視目錄可知解壓縮後結果是一個與主檔名相同之目錄 : 

pi@raspberrypi:~ $ ls -ls   
總計 14496
    4 drwxr-xr-x  2 pi pi     4096  3月  5 06:57 Bookshelf
    4 drwxr-xr-x  2 pi pi     4096  5月 28 14:49 Desktop
    4 drwxr-xr-x  2 pi pi     4096  3月  5 07:29 Documents
    4 drwxr-xr-x  2 pi pi     4096  5月 30 22:12 Downloads
    4 drwxr-xr-x  2 pi pi     4096  3月  5 07:29 Music
    4 drwxr-xr-x 12 pi pi     4096  6月  4 00:17 phpMyAdmin-5.1.1-all-languages   
14456 -rw-r--r--  1 pi pi 14801905  6月  4 12:37 phpMyAdmin-5.1.1-all-languages.zip
    4 drwxr-xr-x  2 pi pi     4096  3月  5 07:29 Pictures
    4 drwxr-xr-x  2 pi pi     4096  3月  5 07:29 Public
    4 drwxr-xr-x  2 pi pi     4096  3月  5 07:29 Templates
    4 drwxr-xr-x  2 pi pi     4096  3月  5 07:29 Videos

因為這目錄太長太難記, 所以用 mv 指令先將其改為 phpmyadmin, 再用 mv 指令將其移到 Apache 網站目錄 /var/www/html 下 : 

pi@raspberrypi:~ $ mv phpMyAdmin-5.1.1-all-languages phpmyadmin   
pi@raspberrypi:~ $ mv phpmyadmin /var/www/html   

這樣 phpMyAdmin 就算安裝完成了.


3. 登入 phpMyAdmin : 

在瀏覽器網址列輸入 127.0.0.1/phpmyadmin 即可看到登入頁面, 



登入帳密就是之前安裝 MariaDB 時所設定的帳密. 登入後畫面如下 :




可見 MariaDB 就是用 UTF-8 編碼, 所以貼上時出現 ???? 的問題不在這裡. 


2021-06-04 補充 :

晚上倒完垃圾回來 (每次倒垃圾後都會有收穫, 奇了), 心想這個複製貼上時出現 ???? 的問題會不會出自 VNC 遠端連線啊? 因為出現這個現象都是透過 VNC 遠端連線直接在樹莓派裡面操作時發生的, 那何不試試從遠端遠端瀏覽器登入後台再貼文? 果然, 我從 Win10 的 Chrome 連線 ngrok 指派的穿隧網址登入 WordPress 後台, 再從記事本複製中文貼到文章中正常啊! 看來是複製的中文經過 VNC 後編碼不知被改成甚麼了, 才會變成 ????. 

其實 WordPress 本來就是要讓遠端瀏覽器用戶進去後台管理的啊! 使用 VNC 主要目的是做樹莓派系統管理, 用樹莓派的 Chomium 管理內容簡直是多此一舉自找麻煩. 

不過, 為了解決問號問題安裝了 phpMyAdmin 日後還是有用的. 


2021年6月3日 星期四

樹莓派架站 (四) : WordPress 網站基本設定

上周完成 WordPress 安裝與樹莓派的中文輸入法安裝後, LAMP 技術堆疊的網站系統可說骨幹已架設完成, 接下來即屬於 WordPress 網站後台管理設定的工作, 也就是網站的系統與內容管理. 我原本以為兩三天就能搞定, 實際操作卻不時碰壁, 整整花了一周才摸出一些頭緒. 雖然使用 WordPress 架站不需要懂 HTML, CSS, Javascriipt 與 PHP 語言等網頁技術, 但學會怎麼用也是要花時間學習的. 

本系列之前的文章參考 : 


本篇測試與調校參考書籍如下 : 
  1. WordPress for Dummies 9th edition (John Wiley & Sons, 2021)
  2. WordPress 5 Cookbook (Packt, 2020)
第一本是按步就班的教科書, 第二本則是問題導向的實戰書. 


1. 網站管理快捷列 :

在上一篇測試中已經將 WordPress (v5.7.2) 的網站架好, 開啟瀏覽器於網址列輸入 localhost 或 127.0.0.1 便可瀏覽網站內容, WordPress 在安裝時已將第一篇預設文章寫入資料庫, 因此會出現如下畫面 :




網站最上方的黑邊是管理網站的快捷列, 只有網站管理員登入後才看得到, 其他瀏覽者看不到, 此快捷列有三個選單, 第一個有 "W" 標誌的是關於 WordPress 的連結, 第二個選單可直接進入 "控制台/佈景主題/小工具/選單" 等後台設定頁面, 第三個選單可直接新增 "文章/媒體/頁面/使用者", 最後的 "編輯文章" 連結則可進入目前這篇文章的編輯頁面 : 




這個快捷列都是網站後台管理最常用的工具, 其實這些後台設定功能全部都在收納在 "控制台" 中, 可以從快捷列第二個選單進入, 其網址為 : 

http://127.0.0.1/wp-admin/

控制台頁面如下 :




WordPress 網站管理就是透過這個控制台. 


2. 下載安裝主題佈景 (Theme) : 

WordPress v5.7.2 安裝好後預設的主題佈景版面名稱為 twenty twenty-one, 這風格不見得適合所有的網站, 所以管理網站的第一步應該是去挑選一個適合自己網站屬性的主題佈景 (theme) 來套用. WordPress 提供了豐富的免費主題佈景, 網路上也有許多付費的布景, 參考 :

 
安裝主題佈景可點 "控制台/外觀/佈景主題" 或 "歡迎使用 WordPress" 區塊中的 "更換為另一種佈景主題" 按鈕, 都會進入主題佈景管理頁面 : 




按 "安裝主題佈景" 鈕或底下空白區的 "+" 鈕進入布景列表頁面 : 




可點左上角的精選, 熱門, 最新上架等分類選單一個一個去挑選, 或者在右方的搜尋框中輸入關鍵字, 例如 personal, food, 或 education 等鎖定特定主題去找 : 




經過篩選後, 我覺得 Gillian 與 unlimited 這兩個布景都很適合個人網站之用, 滑鼠移到布景上方時右下角會出現 "安裝" 鈕, 按下即進行安裝 : 




不過我最後還是覺得 Gillian 布景最適合做為研究學者的個人網站 : 




3. 網站基本設定 : 

選好主題佈景之後就可以開始管理網站內容, 首先是網站設定, 其位置在 "控制台/設定" 選單下, 包含 "一般", "寫作", "閱讀", "討論", "媒體", "永久連結", 以及 "隱私權" 等七個設定頁面, 其中目前比較重要的是 "一般" 與 "閱讀" 這兩個設定頁面 :




首先進入 "一般" 設定頁面, 這是網站最基本的設定, 包含網站標題文字, 網址, 管理員 email, 介面語言, 時區, 時間日期格式等欄位, 主要是填 "網站標題" 與 "網站說明" 這兩欄, "網站標題"就是網站的大標題, 而 "網站說明" 則可作為小標題, 此處我填網站的英文名稱. :  





 填好後要按最底下的 "儲存設定" 才算數. 這時瀏覽網站結果如下 : 




可見網站標題與副標題都打上去了. 

第二個需要設定的是 "設定/閱讀" 頁面 :




其中最重要的是第一個欄位 "網站首頁顯示內容", 這是用來決定網站的首頁 (也就是輸入網址例如 127.0.0.1 或 www.mysite.com.tw 時顯示的頁面) 要顯示 "文章 (article)" 還是 "頁面 (page)", 選 "最新文章" 表示首頁是部落格形式, 所寫文章會依發表之先後堆疊顯示於首頁, 適合新聞性的網站; 選後者 "靜態頁面" 表示首頁內容是固定的靜態網頁. 對於學術研究者的個人網站而言, 選擇 "靜態頁面" 較適合, 選好後須按底下 "儲存設定" 鈕才會生效. 

關於頁面與文章的差別, 可下面這篇文章 : 


總而言之, 兩者主要的差別就是, 文章因為會不斷增加 (版主寫網誌, 發表新聞或心得等), 因此有 "分類" 欄位可以將其分門別類以利搜尋, 另外也具備可增加互動效果的留言功能; 而頁面內容幾乎固定且數量較少 (例如 "首頁", "關於我", "聯絡方式" 等網頁), 有需要才會新增, 因此不需要分類欄位, 也不需要開啟留言功能. 其次是頁面是透過 WordPress 的頁面編輯器設計, 因此有豐富的排版元素, 版面彈性大; 文章則是套用固定版面, 外觀都一樣. 


4. 修改頁面與主選單設定 : 

做完網站基本設定後就可以來管理網站靜態內容的部分, 也就是上面提到的頁面 (page) 編輯作業, WordPress 安裝完成時已經預先建好幾個預設頁面, 點選 "控制台/頁面" 就會進入頁面列表 :




這些頁面都是網站必要的頁面, 但其內容需要我們自行編輯. 湘雲老師希望網站要有如下頁面 :
  • 首頁
  • 個人簡介
  • 教學
  • 研究
  • 著作發表
  • 論文指導
其中首頁預設已經有了, 個人簡介可以用預設的 "關於我" 來改, 其它頁面則須新增. 

首先來改首頁內容, 點選 "首頁" 會進入編輯器頁面, 除了標題外其實沒有內容, 點左上角的 "+" 鈕即可在標題下方新增一個區塊 : 




然後簡單編輯遺下首頁歡迎詞, 再按右上角的 "更新" 鈕儲存內容 : 




然後到 "控制台/外觀/選單" 將此首頁加入主選單 : 





然後按右下角的 "儲存選單" 鈕才生效. 

當設定好主選單頁面後, 點選 Gillian 主題佈景網頁左上方的首頁選單連結卻都出現如下找不到網頁的訊息 : 



連旁邊的 "關於", "部落格", "聯絡方式" 等連結也是, 回頭檢視前面的選單與頁面設定都沒錯啊! 到底哪裡出問題? 我搜尋 "Oops! That page can’t be found" 找到下面篇文章, 其中 Justina 回覆說這是永久連結設定的問題 : 





我按照其說明點開 "控制台/設定/永久連結" 頁面, 似乎不用點選上面 "一般設定", 只要直接按下最底下的 "儲存設定" 鈕就可以, 這會更新資料庫中的頁面連結資訊 : 




然後再點網頁中的選單連結, 果然就不再看到 "Oops! That page can’t be found", 順利顯示頁面了.  




接下來是把預設的 "關於" 頁面改成 "個人簡介", 在頁面列表中點選 "關於" 進入頁面編輯器 : 

 




編輯好後需按右上角的 "更新" 鈕才會生效. 瀏覽更新後的網頁結果如下 :




嗯, 頁面簡單樸實, 正是學者網站需要的風格. 


5. 新增頁面 : 

接下來要新增教學, 研究, 著作發表, 論文指導等新頁面, 按頁面列表上方的 "新增頁面", 逐一建立各頁面如下  :








完成後頁面列表如下 : 




目前這幾個新增的頁面都只有一個標題與佔位用的內容, 有空再填補真實內容, 點每一個頁面進去開啟頁面編輯器, 裡面可以新增段落, 清單, 自訂 HTML 等區塊, 讓我們可以不需要懂 HTML 就能線上編輯網頁內容, 以預設頁面 "聯絡方式" 為例 : 




不論是段落或清單的文字預設都是黑色標準大小, 可以按右上角的齒輪按鈕設定 : 




編輯完畢按右上角的 "更新" 鈕即可. 


6. 新增主選單項目 :

接著要將上面新增的頁面新增到網頁最上方的主選單中, 點選 "控制台/外觀/選單" :




可見上面新的四個頁面已經列在左邊的 "頁面" 框裡了, 勾選此四個頁面, 然後按下方的 "新增至主選單" 鈕, 這樣右邊的選單結構框裡就會出現這四個頁面了 :




新加進來的頁面會排在最後面, 點每一個選單項目右邊的倒三角形 icon 會展開該項目的操作連結, 點 "上移一位" 與 "下移一位" 可上下移動此項目在選單中的位置 :




調整好後必須按右下角的 "儲存選單" 鈕才算數 : 




這時瀏覽網站即可看到最上面的主選單已經出現剛新增的項目, 點按即顯示頁面內容 :





這樣網站雛型就架起來了, 慢慢再來補強資料. 


6. 安裝外掛 :

既然網站已架起來, 在調校期間想知道測試的流量有多少, 就需要統計每日瀏覽人數, 這功能可以利用 WP-statistics 這個外掛來達成, 參考之前管理學會網站時的紀錄第 6 項 :


點選 "控制台/外掛" 會顯示目前已安裝的外掛列表 : 




可見之前在架站過程中已安裝了好幾個外掛, 目前只有 ngrok 這個在啟用狀態, 其它停用的其實可以移除. 按最上面的 "安裝外掛" 鈕會顯示外掛列表 : 




在列表右上方的輸入框中輸入 WP statistics 搜尋此外掛, 找到後按 "立即安裝" 鈕, 安裝完畢後再按 "啟用" 鈕即可 :






然後到 "控制台/外觀/小工具" 頁面就可以找到 "統計" 這個小工具, 按右邊的倒三角形 icon 會出現選單, 點選統計區塊欲放置的位置 (例如 Default Sidebar), 然後按右下角的 "新增小工具" 鈕 :




這會在右邊的 "Default Sidebar" 區塊內建立一個 "統計" 子區塊, 勾選要顯示的統計項目, 例如 "線上使用者", "今日瀏覽次數", 以及 "總瀏覽次數" 是較常關心的統計數字, 然後按底下的 "儲存鈕" 即完成設定 : 




這時瀏覽網站就可以在網頁右下角看到所選的瀏覽統計數字了 :