直接用php命令运行脚本即可,php 7.0自带cli解释器,执行php /path/to/script.php即可,无需启动服务;需确保php -v可显示版本,脚本以.php结尾,避免bom及高版本语法。

直接用 php 命令运行脚本就行
PHP 7.0 自带 CLI(命令行接口)解释器,只要安装正确,php 命令就能直接执行脚本,不需要额外配置或启动服务。你看到的“启动 PHP”其实是误解——PHP 本身不是常驻进程,它每次调用都是即时解析执行。
- 确保已安装:终端输入
php -v,输出含7.0.x即表示可用 - 脚本必须以
.php结尾,且首行无需#!/usr/bin/env php(仅当设为可执行文件时才需要) - 执行方式就是:
php /path/to/script.php,路径可以是相对或绝对 - 如果提示
Command 'php' not found,说明没加到系统 PATH,需手动添加 PHP 二进制目录(如/usr/local/bin或/opt/php70/bin)
php -S 启动内置服务器只适用于 Web 场景
很多人混淆了“执行脚本”和“跑 Web 服务”。php -S localhost:8000 启动的是一个单线程开发用 HTTP 服务器,它监听请求、路由到 PHP 文件并执行——但这是间接执行,且仅响应 HTTP 请求,不是直接运行脚本的手段。
- 它会自动查找当前目录下的
router.php(若存在),否则直接返回对应路径的.php文件输出 - 不能用于 CLI 脚本(比如含
$_SERVER['argv']的命令行工具),因为$_SERVER变量内容完全不同 - 不支持 Apache/Nginx 那类模块化扩展(如
opcache在 CLI 下默认关闭,需手动启用)
常见失败原因:权限、编码、路径三连错
执行报错往往不是 PHP 版本问题,而是环境细节没对上。
- 脚本里用了 PHP 7.1+ 的语法(如空合并赋值
??=),PHP 7.0 直接 parse error —— 检查是否混用了高版本特性 - 文件保存为 UTF-8 with BOM,PHP 7.0 CLI 会报
Parse error: syntax error, unexpected ' —— 用编辑器转成纯 UTF-8(无 BOM) -
require或include的路径是相对路径,但在不同工作目录下执行就会失败 —— 推荐用__DIR__ . '/lib/foo.php'显式拼接 - Linux 下 chmod 权限不对(比如脚本无读权限),
php script.php会报failed to open stream
CLI 模式下注意 $_SERVER 和扩展差异
PHP 7.0 CLI 和 Web SAPI 的行为有关键区别,不注意会踩坑。
-
$_SERVER['argv']只在 CLI 下有效,Web 下为空;反之$_SERVER['REQUEST_URI']在 CLI 下不存在 - 某些扩展默认不加载(如
mysqli、pdo_mysql),CLI 和 Web 可能用不同php.ini—— 运行php -i | grep 'Loaded Configuration File'确认实际加载的是哪个 -
setlocale()在 CLI 下生效,但多线程 Web 环境中可能被其他请求覆盖(PHP 7.0.5+ Windows 除外) - CLI 默认关闭
display_errors,出错没提示 —— 加-d display_errors=1调试:php -d display_errors=1 script.php
php script.php。所有“启动 PHP”“配置服务”的说法,都是针对 Web 部署场景的延伸,和单纯运行脚本无关。容易被忽略的是 CLI 和 Web 两套环境各自加载的 php.ini 完全独立,哪怕 php -v 显示 7.0,也不代表 CLI 能用你在 Apache 里配好的扩展。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











