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


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 本身的问题,而是执行上下文缺失造成的。


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


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334


相关推荐: c++ atoi和atof函数用法_c++字符数组转数字  如何在JavaScript中动态拼接PHP的base_url与JS变量  如何在Golang中使用内置函数_Golanglen append make等使用技巧  Win11怎么设置系统还原_Windows11系统属性保护设置  Win11怎么关闭键盘按键音_Win11禁用打字声音反馈【教程】  Mac的访达(Finder)怎么用_Mac文件管理入门教程【详解】  Python多线程使用规范_线程安全解析【教程】  Python与MongoDB NoSQL开发实战_文档模型与索引优化  Python抽象类与接口设计_规范说明【指导】  c++如何用AFL++进行模糊测试 c++ Fuzzing入门【安全】  如何使用Golang实现文件加密_Golang crypto 文件加密示例  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  Win11怎么更改任务栏位置_修改注册表将Win11任务栏置顶【教程】  Windows 11无法安全删除U盘提示设备正在使用中怎么办_Windows 11找出占用设备进程  Win10路由器怎么隐藏ssid Win10隐藏wifi名称设置【指南】  php怎么操作Redis_Redis扩展连接与基本命令使用方法【方法】  Windows音频驱动无声音原因解析_声卡驱动错误修复步骤  Win11怎么退出高对比度模式_Win11取消反色显示快捷键【修复】  c++如何获取map中所有的键_C++遍历键值对提取所有key的方法  Win11怎么关闭自动调节亮度 Win11禁用内容自适应亮度【设置】  Python网络日志追踪_请求定位解析【教程】  Win11怎么开启游戏模式_Win11优化游戏帧数性能【教程】  Win10怎样卸载自带Edge_Win10卸载Edge浏览器步骤【教程】  Windows10系统更新错误0x80070002_Win10自动更新失败手动修复  使用类变量定义字符串常量时如何实现类型安全的 Literal 注解  Win11时间格式怎么改成12小时制 Win11时间格式切换教程【步骤】  Win10文件历史记录怎么用 Win10开启自动备份文件教程【防丢】  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  Win11怎么关闭小组件_Win11禁用任务栏天气与小组件方法【设置】  Win11怎么设置应用分屏_Windows11贴靠布局Snap Layouts  Win11怎么查看电脑配置_Win11硬件配置详细查询方法【详解】  Win11右键反应慢怎么办 Win11优化右键菜单加载速度【技巧】  Windows Defender扫描失败怎么办_安全模块损坏修复方式  php8.4如何实现队列任务_php8.4redis队列简单实现方法【教程】  C++如何解析JSON数据?(nlohmann/json库示例)  Win11怎么关闭任务栏小图标_Windows11任务栏角溢出设置  c++怎么使用std::unique实现去重_c++ 容器元素排序与连续重复删除【教程】  php打包exe后无法写入文件_权限问题解决方法【教程】  微信企业付款回调PHP怎么接收_处理企业付款异步通知数据教程【教程】  如何使用正则表达式批量替换重复的星号-短横模式为固定字符串  MAC怎么在照片中添加水印_MAC自带编辑工具文字水印叠加【方法】  Windows10系统怎么查看IP地址_Win10网络连接状态详细信息  c++怎么设置线程优先级与cpu亲和性_c++ 多核处理器性能绑定【指南】  VSC怎么创建PHP项目_从零开始搭建项目的步骤【操作】  如何使用Golang实现路由参数绑定_使用Mux和Request解析路径变量  如何使用Golang实现微服务状态监控_Golang服务运行状态采集方法  Win10如何更改开机密码_Windows10登录选项更改密码  Win11如何更改任务栏颜色 Win11自定义任务栏背景色【美化】  如何使用Golang包导出规则_控制函数和变量可见性  c++怎么处理多线程死锁_c++ lock_guard与unique_lock锁管理【技巧】 

 2026-01-01

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.