upgrade macos 後進行修改
參考https://www.reddit.com/r/Nix/comments/11ynxa5/every_macos_update_needs_me_to_rerun_the_nix/?rdt=55449
注意事項
- 不要將
flake.nix
/flake.lock
加入到 .gitignore
檔案中,會影響nix的操作和判斷。若這兩個檔案被ignore掉的話,當移除 .direnv
目錄時,就會顯示類似下面的錯誤訊息
使用 Nix Flake 安裝 PHP 8.1 + xdebug
在 Nix Flake 中,您可以使用 phps 的 buildEnv 功能來創建一個包含所需擴展的 PHP 環境。
- 使用
buildEnv
創建一個自定義的 PHP 環境。
- 在 extensions 中直接啟用 xdebug。
- 通過 extraConfig 直接設定 xdebug 的配置。
這樣的設置有以下優點:
- 不需要手動指定 xdebug.so 的路徑
- 配置更加集中和清晰
- 減少了出錯的可能性
- 更容易維護和管理
當您進入 shell 環境時,PHP 將自動包含已啟用的 xdebug 擴展和相關配置。
參考資料
- Nix 語言基礎
- Nixpkgs 基本概念
- Nix Flakes 概念
- Xdebug 配置知識
- buildEnv 使用方式
於 Laravel 使用 php artisan serve 時
這樣會:
- 在 9003 端口啟用 Xdebug
- 在 8000 端口啟動 Laravel 開發伺服器
確保你的 PhpStorm 已設置好監聽 Xdebug 連接(通常在右上角有個電話圖示),就可以開始除錯了。
在 PhpStorm 中設定 Xdebug 的步驟
- 開啟 PhpStorm 設定 (Settings/Preferences)
- 進入 PHP > Debug 頁面
- 確認 Xdebug port 設為 9003
- 進入 PHP > Servers
- 新增一個 server
- 設定 host name (例如 localhost)
- 勾選 "Use path mappings"
- 將專案根目錄對應到伺服器路徑
- 點擊工具列的 "Start Listening for PHP Debug Connections" 按鈕
- 在程式碼中設置斷點
- 啟動你的 PHP 應用程式
這樣就可以開始除錯了。當程式執行到斷點時,PhpStorm 會自動暫停並進入除錯模式。
在 .envrc 中設定 VSCode 參數,動態指定 PHP 路徑
編輯 .envrc
- 在你的專案目錄中,新增或編輯 .envrc,加入以下內容:
- 允許 .envrc
在專案目錄中執行以下指令來允許 .envrc:
- 注意事項
- .envrc 僅在有安裝 direnv 並允許後才會生效。
- PHP 路徑可能隨 Nix 配置改變,因此 .envrc 每次執行都會重新檢查 PHP 路徑。
- VSCode 需要重新啟動才能應用更新的 .vscode/settings.json。
使用 Nix 安裝 pinentry-mac 解決 GPG 簽署問題
使用 Nix 安裝 pinentry-mac
- 使用 nix-env 直接安裝
或者,如果你使用 nix-darwin 或 home-manager:
- 在 nix-darwin 配置中添加
如果你使用 nix-darwin,編輯你的 configuration.nix
:
- 在 home-manager 配置中添加
如果你使用 home-manager,編輯你的 home.nix
:
安裝後配置
安裝完 pinentry-mac 後,修改你的 GPG 配置:
- 編輯
~/.gnupg/gpg-agent.conf
:
- 重啟 GPG agent:
- 測試是否正常工作:
如果成功,你應該會看到 pinentry-mac 的圖形界面彈出請求密碼輸入。
其他相關 Nix 配置
如果你想進一步優化你的 GPG 體驗,可以在你的 Nix 配置中添加: