首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 命令行模式 (CLI) 完全指南:從入門到自動化運維

     編輯:PHP 相關知識

PHP 不僅是 Web 開發語言,更是強大的命令行腳本工具。掌握 CLI 模式能讓你脫離 Web 伺服器執行定時任務、數據遷移、隊列消費、代碼檢查等運維工作。本文系統梳理核心用法與實戰技巧。

基礎信息查看

php -vphp -mphp -iphp --ini
命令作用
顯示 PHP 版本、構建日期、Zend Engine 版本
列出已載入的擴展模組
輸出無 HTML 格式的 phpinfo()(配合 grep 篩選極佳)
顯示載入的 php.ini 路徑與掃描目錄

執行腳本的三種方式

  1. 文件執行:php -f script.php 或 php script.php(-f 可省略)。
  2. 內聯代碼:php -r 'echo "Hello CLI\n";'(單引號避免 Shell 變量展開)。
  3. 交互模式:php -a 進入 REPL,逐行輸入代碼即時見結果(需編譯時啟用 --with-readline)。

注意:CLI 環境下 $_GET、$_POST、$_SESSION、$_SERVER['REQUEST_URI'] 等 Web 專用超全局變量**不可用**,但 $argc/$argv 可接收命令行參數。

開發輔助功能

  • 語法檢查:php -l script.php(僅檢查語法,不執行,CI/CD 必備)。
  • 代碼高亮輸出:php -s script.php 輸出 HTML 格式高亮代碼,適合文檔生成。
  • 內建手冊查詢(PHP 5.1.2+):
    • php --rf function_name 顯示函數簽名
    • php --rc ClassName 顯示類結構
    • php --re extension_name 顯示擴展信息

實戰場景:定時任務最佳實踐

# crontab -e
# 每天凌晨 3 點執行訂單數據同步,標準輸出/錯誤導向日誌
0 3 * * * /usr/bin/php /var/www/html/cron/sync_orders.php >> /var/log/cron/sync_orders.log 2>&1

腳本內部建議:

  • 設置 set_time_limit(0) 防止超時。
  • 使用 ignore_user_abort(true) 避免因終端斷開中斷。
  • 加鎖機制(如 flock() 或 Redis 分佈式鎖)防止重複執行。
  • 記錄結構化日誌(JSON 格式)便於 ELK 分析。

進階技巧

  • Shebang:腳本首行加 #!/usr/bin/env php,賦予執行權限 chmod +x script.php 後可直接 ./script.php 運行。
  • 併發處理:配合 pcntl_fork() 或 symfony/process 實現多進程任務。
  • 顏色輸出:使用 ANSI 轉義碼或 symfony/console 組件美化日誌。

掌握 PHP CLI,讓你的腳本能力從「能跑」進化為「好維護、可監控、高併發」,是每位 PHPer 邁向高階工程師的必修課。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved