You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

命令行执行php-fpm代码无法得到与php cli相同结果如何解决

PHP-FPM 不支持 -r 参数的原因及解决方法
  • 核心原因:php和php-fpm是PHP的两种完全不同的SAPI(服务器应用编程接口),面向的使用场景完全不同:
    • 常用的php命令是CLI(命令行接口)SAPI,专门设计用于终端场景下执行PHP脚本、单行代码,原生支持-r参数直接运行单行PHP代码,所以执行php -r 'echo php_ini_scanned_files();'可以正常返回结果。
    • php-fpm是FastCGI进程管理器SAPI,设计目标是和Web服务器(Nginx、Apache等)配合响应HTTP Web请求,没有设计命令行直接执行单行代码的能力,本身就不支持-r参数,传入不支持的参数时就会默认返回使用说明。
  • 如果你需要获取php-fpm模式下加载的ini文件列表,可以用以下两种方案实现:
    1. 直接读取php-fpm的运行信息:执行php-fpm -i命令输出php-fpm模式下的phpinfo内容,直接搜索Scan this dir for additional .ini files和Additional .ini files parsed字段,就能得到对应的ini扫描路径和已加载的ini文件列表。
    2. 模拟FastCGI请求执行代码:先创建一个临时PHP文件,比如/tmp/get_ini.php,写入内容<?php echo php_ini_scanned_files(); ?>,再使用cgi-fcgi工具向php-fpm发起请求,命令示例如下(根据你实际的php-fpm监听地址调整,socket监听就替换为对应sock路径):
      SCRIPT_FILENAME=/tmp/get_ini.php REQUEST_METHOD=GET cgi-fcgi -bind -connect 127.0.0.1:9000
      

内容的提问来源于stack exchange,提问作者Amine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 05:09:03