php命令行怎么运行_通过CLI模式执行PHP脚本的步骤【说明】

技术百科 絕刀狂花 发布时间:2026-01-01 浏览:
PHP CLI 可直接运行脚本,适用于工具开发、定时任务等;需确保 php 命令可用,通过 php -v 验证,必要时配置 PATH 或安装 php-cli 包。

PHP 命令行(CLI)能直接运行脚本,不依赖 Web 服务器,适合写工具、定时任务、调试或自动化流程。只要系统装了 PHP,且 php 命令可用,就能执行。

确认 PHP CLI 是否已安装并可用

很多系统自带 PHP,但 CLI 版本可能未启用或路径不对。先验证:

php -v

如果报 command not found 或版本过低,需检查:
- macOS 用户用 Homebrew 安装后,可能需要把 /opt/homebrew/bin 加入 $PATH
- Windows 用户要确认 PHP 目录(如 C:\php)是否在系统环境变量 PATH
- Linux(如 Ubuntu)可能需额外安装 php-cli 包:sudo apt install php-cli

用 php 命令执行 .php 文件

CLI 模式下,php 命令默认以脚本模式运行文件,无需 开头也能执行(但推荐加上,避免语法歧义):

php script.php

常见注意事项:
- 脚本中使用 $_SERVER['argv'] 获取命令行参数,$argv[0] 是脚本名,$argv[1] 起才是传入参数
- 不会自动加载 $_GET$_POST 或 Cookie 相关变量
- echovar_dump() 输出直接打印到终端,不经过 HTTP 头处理
- 若脚本含 exit(),CLI 会返回对应退出码,可用于 Shell 判断成功与否(如 if php test.php; then ...;

直接运行内联 PHP 代码

适合快速测试或管道处理,用 -r 参数:

php -r "echo date('Y-m-d');"

注意:
- -r 后面的代码**不加** 标签
- 若需多行,用分号分隔;引号需转义或套用单双层嵌套
- 不能用 -r 加载外部文件,要用 -f(如 php -f script.php
- -r 执行失败时,PHP 不会输出 Parse Error 的详细位置,调试建议改用临时文件

CLI 模式与 Web 模式的配置差异

CLI 使用独立的 php.ini 文件,和 Apache/FPM 的配置不共享:

php --ini

输出类似:
Configuration File (php.ini) Path: /etc/php/8.2/cli
Loaded Configuration File: /etc/php/8.2/cli/php.ini

这意味着:
- display_errors = On 在 CLI 下默认开启,错误直接输出,不用额外设置
- memory_limit 默认值常比 Web 模式高(如 -1 表示无限制),但若脚本耗内存大,仍建议显式设 ini_set('memory_limit', '512M');
- 扩展(如 pdo_mysql)需在 CLI 的 php.ini 中启用,否则 php -m | grep pdo 看不到

真正容易被忽略的是:有些框架(如 Laravel)的 Artisan 命令本质就是 CLI 脚本,但它们依赖特定的 autoloader 和环境配置;直接用 php artisan 运行没问题,但如果在脚本里用 require 引入 Artisan 入口却没初始化 Composer autoloader,就会报 Class not found —— 这类问题不是 CLI 本身的问题,而是执行上下文缺失造成的。


# 自动化  # 的是  # 就能  # 这类  # 才是  # 也能  # windows  # 适用于  # 要用  # mac  # 命令行  # 工具  # win  # linux  # ubuntu  # 环境变量  # macos  # cos  # php  # 不能用  # 会报  # php脚本 


相关栏目: <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 AI推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 SEO优化<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 技术百科<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 谷歌推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 百度推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 网络营销<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 案例网站<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 精选文章<?muma echo $count; ?>

相关推荐

在线咨询

点击这里给我发消息QQ客服

在线咨询

免费通话

24h咨询:4006964355


如您有问题,可以咨询我们的24H咨询电话!

免费通话

微信扫一扫

微信联系
返回顶部