- 問題:有沒教學或範本可以參考
- 解決:佛心 Line Bot 開發教學,基礎範例程式碼 (PHP) – 輕量版 LINEBotTiny.php | 旋風之音 GoneTone (reh.tw)
- 問題:本地測試都可以正常回應,上正式站 VPS 主機卻已讀不回,查看 PHP 沒噴 Error log
- 解決:測試將 SELINUX 設為 0 後正常,爬文了下 LINEBotTiny.php 裡有使用 file_get_contents() 方法需要
$ sudo setsebool -P httpd_can_network_connect on
- 問題:存放設定檔及 assets 可被下載
- 解決:調整 Nginx 設定後 reload
location ~ \.(ini|env|conf)$ {
deny all;
return 404;
}
location /assets {
deny all;
return 404;
}
$ sudo nginx -s reload
- 問題:連線資料庫顯示 Uncaught PDOException: could not find driver ,但程式碼沒毛病啊
- 解決:調整 php.ini 把 pdo extension 打開
extension=pdo_mysql
- 問題:本地開發要怎麼讓 Webhook 連到本機?
- 解決:使用 ngrok,下載後執行
$ ngrok http 80
Session Status online
Session Expires 1 hour, 59 minutes
Update update available (version 3.0.4, Ctrl-U to update)
Terms of Service https://ngrok.com/tos
Version 3.0.3
Region Japan (jp)
Latency calculating...
Web Interface http://127.0.0.1:4040
Forwarding https://15c9-125-231-144-48.jp.ngrok.io -> http://localhost:80
把 https 的連結貼到 Webhook URL 就可以了
- 問題:如何同步到 Production 環境?
- 解決:使用 VS Code 外掛 SFTP
Ctrl + Shifp + P
產生的 sftp.json 檔
{
"name": "App Server",
"host": "域名",
"protocol": "sftp",
"port": 22,
"username": "vps 主機帳號",
"remotePath": "遠端目錄",
"uploadOnSave": false,
"privateKeyPath": "D:\\私鑰位置", // Windows 每一層目錄都要兩個 \\ 喔
"passphrase": "私鑰密碼",
"watcher": {
"files": "**/*",
"autoUpload": true,
"autoDelete": true
},
"ignore": [
".vscode",
".git",
".DS_Store",
"README.md",
"環境設定檔"
]
}
SFTP: Sync Local ➝ Remote 這樣就可以即時同步,測試結果啦
$ sudo setfacl -R -m user:帳號:rwx 目錄
- 問題:Flex Message 怎麼寫?
- 解決:除了上面佛心網友的教學,可以直接使用官方的 FLEX MESSAGE SIMULATOR 來製作,非常方便