直接运行 php script.php 即可,前提是 PHP 已安装且路径、权限、解释器正确;Fedora 39 默认不预装 PHP,需用 sudo dnf install php 安装 CLI 版本,再通过 php -v 验证。

直接运行 php script.php 就行,前提是 PHP 已安装且脚本路径、权限、解释器路径都对——Fedora 39 默认不预装 PHP,也不能靠双击或浏览器直接打开 .php 文件。
确认 PHP 是否已安装并可用
Fedora 39 使用 dnf 包管理器,PHP 不是默认组件。运行 php -v 报 “command not found” 就说明还没装。
- 执行
sudo dnf install php安装 CLI 版本(含基础扩展) - 若需 Web 运行,还得装
php-fpm和 Web 服务器(如nginx或httpd) - 验证:运行
php -v应输出类似PHP 8.3.6的版本;php --ini可查 CLI 配置路径(通常是/etc/php.d/下的 ini 文件)
命令行运行脚本(CLI 模式)
这是最轻量、最可控的方式,适合调试、定时任务或工具脚本。
- 确保当前 shell 在脚本所在目录,或使用绝对路径:
php /path/to/script.php - 脚本开头加 shebang(仅 Linux/macOS 有效):
#!/usr/bin/env php,然后chmod +x script.php,即可./script.php - 注意:Windows 的 CMD/PowerShell 不识别 shebang,必须用
php script.php - 常见错误
Could not open input file多因路径错或工作目录不对——建议脚本开头加echo __FILE__;确认实际加载位置
用内置服务器快速测试(无需 Apache/Nginx)
Fedora 39 自带的 PHP(8.3+)支持 php -S,适合单文件验证或小项目原型。
立即学习“PHP免费学习笔记(深入)”;
- 在脚本目录下运行:
php -S localhost:8000,默认找index.php - 访问
http://localhost:8000/test.php即可执行任意 .php 文件 - 要自定义路由逻辑,加路由器文件:
php -S localhost:8000 router.php,其中router.php必须返回true或false控制是否接管请求 - ⚠️ 内置服务器不支持并发、静态资源自动处理(如 CSS/JS),也不读
.htaccess,别用它跑正式站点
Web 服务器方式(Apache 或 Nginx + PHP-FPM)
如果脚本依赖 $_SERVER、会话、上传或需要模拟生产环境,就得走这条路。
- 装 Apache:
sudo dnf install httpd php-fpm;装 Nginx:sudo dnf install nginx php-fpm - 启动服务:
sudo systemctl enable --now httpd或sudo systemctl enable --now nginx;同时启动php-fpm - Apache 要确认
libphp.so已加载(LoadModule php_module modules/libphp.so)且有AddHandler php-script .php - Nginx 必须配置
location ~ \.php$块,并指向fastcgi_pass unix:/run/php-fpm/www.sock(路径以systemctl cat php-fpm查为准) - 放脚本到 Web 根目录(
/var/www/html/或/usr/share/nginx/html/),访问http://localhost/info.php(内容为<?php phpinfo(); ?>)来验证是否真由 PHP 解析——如果下载源码或显示空白,说明 Web 服务器没把 .php 交给 PHP 处理
最容易被忽略的是:CLI 和 Web(FPM/Apache 模块)用的是两套 php.ini,扩展启用状态、display_errors、memory_limit 全都可能不同。写脚本时别硬编码 $_SERVER['DOCUMENT_ROOT'] 或依赖 Web 环境变量——CLI 下它们根本不存在。



















