情境…
docker 容器內用的是 PHP 7.4 但你的開發本機還在跑 PHP 5.6 或是更舊,因為 dockerize 的關係會將所有相關環境都轉移到 docker 下運作,所以本機與 docker 間的 PHP 版本不同是極有可能發生的。
然而因為本機與實際運作環境的 PHP 版本不同,造成編輯器提示錯誤…
所以上述問題應該怎麼解決呢?
當然放著不管也是一種方式,不過 VSCode 的 lint 可能就會一直叫或是看了不舒服… 🙈
(docker image 的建立細節可以參考 cscolabear/docker-dev: https://github.com/cscolabear/docker-dev/blob/master/phpWrapper)
1. 首先要確認有一個可以正常運作的 PHP docker image
2. 建立 phpWrapper
(空白檔)
phpWrapper 可以放在任何你喜歡的位置
內容為…
#!/bin/bash
docker run --rm -i \
-v ~/Projects:/var/www \
cscolabear/7.2-fpm php "$@"
替換上述值,對應你自己的系統:
/Projects
: 本機的專案目錄/var/www
: 容器內的專案目錄cscolabear/7.2-fpm
: 你的 php docker image 名稱接著將 phpWrapper 設定為可執行
chmod +x phpWrapper
試著在同一目錄下執行~
# 取得 docker 容器內的 php 版號
./phpWrapper -v
3. 接著讓全系統都能使用這個方法~
# 切換目錄至
cd /usr/local/bin/
# 查看目前的 php 使用路徑
ll | grep php
# 若己存在,可以先備份或是刪除
# 新設定 php 並指向 phpWrapper 所在目錄
ln -s ~/phpWrapper php
# 查看是否連結成功
php -v
之後在另何情況下 php 都會使用 docker 容器內的版本
如果 docker 容器未啟用,系統將自動使用原生~
當然~ 這裡的 php 也可以是 nodejs 或其它有的沒有 😎
錯誤追蹤、回報非常重要,看到的錯誤才知道怎麼修。現今 PHP 流行的 Laravel 有很好的 Error Tracking, Error Handling。但 plain PHP 怎麼辦呢? 在 production 為了安全考量會設定…
jenkins、circleci、travis 或 Gitlab CI 皆為目前暫知名的 CI/CD 服務,各自缺點也不言而喻...過於肥大、收費略高(?)、速度不夠快執問題...此時使用 go language 開發的 Drone 就出現啦,完全 docker 容器化的運行方式讓整個 CI…
網頁壓縮技術中 gzip 很好用,deflate 己經過時,但你聽過 brotli 嗎? 有著比 gzip 更好、更快的壓縮效率。看起來利大於弊有什麼不用他的理由嗎?簡單從優、缺點來看 brotli!到底 brotli 布羅特利是什麼、如何設定呢。 目前大多的 web server…
為什麼你需要密碼管理工具現代人一天下來需要輸入多少組密碼,工作與生活己經和密碼密不可分! 除了足夠全安的密碼,密碼記錄、儲存的方式又足夠安全嗎?密碼管理工具可以帶來什麼幫助呢? 為什麼你需要密碼管理工具 資安問題!!大多人說著沒做壞事不怕被偷資料、監聽。嚴重曝露出現代人的基本科技素養的低落和無知 🤯 密碼的使用無所不在!! 行動裝置的普及,APP 、手機遊戲、銀行帳戶所有和生活相關的東西都需要密碼!!facebook, line 只要打開 APP 也會輸入密碼只是他是自動輸入、一般情況不可視 (auth token) 一般人最常發生的密碼資安問題…
mysql 資料表分區 mysql table partition 從架構上調整 mysql 的查詢效率。mysql DB 的優化可以簡單也能複雜,除了調整設定值。也可以透過水平分割(Horizontal Partitioning)、垂直分割(Vertical Partitioning) 分庫或分表將資料分散儲存減少資料搜尋、group by 時的效能消耗。拆開批次處理,理論上效率都會變好,本文就水平分割的…
透過 vscode Debug 利用中斷點 (breakpoints) 讓開發、偵錯更聰明。 加快除錯速度,而不是用傳統的 console log 方式查看變數、物件內容找問題。 本篇教你如何用 vscode + node +…