对于某些版本的 PHP,“未指定输入文件”

2024-04-17

我安装了多个版本的 PHP,我写的。 基本上,它是一个 ApacheLounge 安装,在 Windows 10 上通过 FastCGI 与 PHP 进行通信。 这曾经让我在不同的虚拟主机上同时运行这些 PHP 版本。 Apache 通过 FastCGI 在这些端口上调用正确的 PHP 版本:

  • PHP 5.2.17,端口 9052
  • PHP 5.3.29,端口 9053
  • PHP 5.4.45,端口 9054
  • PHP 5.5.38,端口 9055
  • PHP 5.6.40,端口 9056
  • PHP 7.0.33,端口 9070
  • PHP 7.1.33,端口 9071
  • PHP 7.2.31,端口 9072
  • PHP 7.3.19,端口 9073
  • PHP 7.4.7,端口 9074

Everything Some of these had been working for a while after the installation. Yesterday I had to test a website on PHP 5.6, but the ouput was just a "No input file specified message" which, turns out, is not that much descriptive, as a .

所以我开始了系统化的方法。 我为每个 PHP 版本创建了一个 VirtualHost,只有一个带有 echo 语句的 index.php 文件。 我测试了安装的所有PHP版本,所有PHP5版本都无法工作,而PHP7版本则正常工作。

我删除了所有自定义配置文件。不用找了。

我提供了一个简单的index.html 文件,该文件适用于所有虚拟主机。关于 PHP,没有变化。

我以为这是 PHP 5.x 的错误,但在我重新启动电脑后,PHP 5.2 版本开始工作。 我停止、删除并重新安装了一些通过 NSSM 创建的 Windows 服务,没有任何更改。

这就是我想我所知道的:

  • 这不是 PHP 5.x 的问题,因为 PHP 5.2 可以工作;
  • 这不是 FastCGI 问题,因为所有 VirtualHost 都具有相同的配置,除了端口号之外;
  • 这不是 Apache 配置问题,因为它会启动、停止、重新启动并提供服务;
  • 这不是PHP配置问题,因为所有配置都是标准的;
  • 这不是.htaccess配置问题,因为没有.htaccess文件;

任何关于如何调试此配置或出现问题的想法都值得赞赏。

谢谢。


这个答案是关于我在这个问题上发现的内容,以及它如何为我工作。

On 这个帖子 https://www.askapache.com/php/custom-phpini-tips-and-tricks/#User-Contributed_Notes在网上的其他地方我发现了离开的建议doc_root in php.ini注释掉了:

;doc_root = 

这有效,事实上这就是我用于所有上述 PHP 的配置7.x安装,也适用于 PHP 5.2。然而,那就是不适用于 PHP 5.3 至 5.6.

现实是,对于 PHP 的这些版本,Apache 的DocumentRoot和 PHP 的doc_root指令必须完全匹配。

到达这里并不容易,因为我在网上发现了大量的欺骗性或明显错误的信息(主要是由于 PHP 在不同版本之间改变了行为):

  • 这个(未解决的)错误报告 https://bugs.php.net/bug.php?id=26745有类似问题的用户评论 https://bugs.php.net/bug.php?id=26745#1077666006建议离开doc_root注释掉了;

  • 这一段 https://www.askapache.com/php/custom-phpini-tips-and-tricks/#input_file是矛盾的;

  • PHP 的文档对于这些特定版本是错误的,对于当前版本是正确的:

    on 核心 php.ini 指令的描述 https://www.php.net/manual/en/ini.core.php#ini.sect.path-directory:

     Name        Default    Changeable
     doc_root    NULL       PHP_INI_SYSTEM
    

    and on 可以设置配置设置的位置 https://www.php.net/manual/en/configuration.changes.modes.php:

     PHP_INI_SYSTEM  Entry can be set in php.ini or httpd.conf
    

我希望这些信息有用。

NOTE:

我花了很多时间才解决这个问题。我发现有用的一项技术是将 Apache 日志级别增加到trace8,如下所示在这里建议 https://serverfault.com/a/988949:

    LogLevel trace8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对于某些版本的 PHP,“未指定输入文件” 的相关文章

  • 将 Dwolla 与 PHP 及其 API 集成

    前言 好吧 我过去使用过 API 例如 TwitterAPI 但我总是使用库和一些文档来帮助我进行连接和检索令牌 我对 API 的工作原理有了基本的了解 好的 我尝试了多种使用 PHP 请求 dwolla API 的方法 我尝试过制作一个
  • CSV 损坏,如何修复?

    我正在尝试解析 CSV 我想将它放入数据库或只是用 JavaScript 解析它 但由于语法损坏 任何一种方法都会失败 我的整个 CSV 文件在这里 https gist github com 1023560 https gist gith
  • OSX - Composer - lib-openssl 要求

    自从上次 XCode 更新到版本 7 3 1 以来 我遇到了以下问题composer and openssl在 OSX 上 更新之前有效 我尝试通过作曲家更新来更新软件包 套餐 ricardoper twitteroauth 需要lib o
  • ZF2:如何从自定义类内部获取 ServiceManager 实例

    我无法弄清楚如何从自定义类内部获取 ServiceManager 实例 在控制器内部很简单 this gt getServiceLocator gt get My CustomLogger gt log 5 my message 现在 我创
  • 按列对 3d 数组中的行数据进行分组,并合并每组中的子数组数据

    我有一个下面提到的数组 array array 0 gt array names gt array 0 gt Apple group gt 1 1 gt array names gt array 0 gt Mango group gt 1
  • 使用 preg_split 分割和弦和单词

    我正在编写一小段播放处理歌曲标签的代码 但我遇到了一个问题 我需要解析每首歌曲选项卡行并将其拆分以获取大块chords一方面 并 且words在另一个 每个块就像 line chunk array 0 gt part of line con
  • echo 完整的 joomla 查询(带有限制等)?

    我想知道是否有一种方法可以用 limit 和 limitstart 等来回显完整的查询 我可以回显 query 行 但我想看看为什么限制不起作用 但我似乎无法理解它显示发送到数据库的实际查询 代码如下 params JComponentHe
  • Laravel Eloquent - 附加与同步

    有什么区别attach and sync 在 Laravel 4 的 Eloquent ORM 中 我试图环顾四周 但什么也没找到 附 处理多对多关系时插入相关模型 不需要数组参数 Example user User find 1 user
  • 如何在 Powershell 中为特定命令设置别名?

    有一个命令我经常输入 java jar foo param1 param2 param n 如何创建命令别名来运行此命令 如下所示 launch foo param3 where launch foo被翻译成完整的命令 你必须创建一个函数
  • 如何按布尔值对数组进行排序

    我有一个看起来像这样的数组 array array foo gt true array foo gt false array foo gt true array foo gt true array foo gt false 有没有一种简单的
  • 具有多个 FROM 表的 TableGateway

    我想做一个简单的INNER JOINZend2 中的两个表之间 具体来说 我想在 Zend2 中这样做 SELECT FROM foo bar WHERE foo foreign id bar id 我有一个FooTable class F
  • 如何从 Emacs 中运行 Cygwin Bash Shell?

    我在 Windows 上运行 GNU Emacs 因此输入 M x shell 启动 Windows 命令行 DOS shell 但是 我希望能够从 Emacs 中运行 Cygwin Bash Shell 或任何其他非 Windows sh
  • 是否有 NoSQL 解决方案的比较(在某些情况下哪个更好?)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 当我在 Linux PHP 架构中构建基于密钥的归档应用程序时 我正在尝试了解有关 NoSQL 的更多信息 谁能解释一下主要解决方案
  • PHP 日期/时间格式,需要一些帮助

    你能帮我使用 PHP 格式化以下日期吗 变量 start 包含以下日期 这个日期 Wed Feb 01 2012 05 00 00 GMT 080 应该成为 2012 02 01T13 00 00 我知道如何使用基本的 PHP 日期 时间格
  • Laravel Eloquent ORM 事务

    Eloquent ORM 非常好 尽管我想知道是否有一种简单的方法可以像 PDO 一样使用 innoDB 设置 MySQL 事务 或者我是否必须扩展 ORM 才能实现这一点 你可以这样做 DB transaction function 闭包
  • 如何在 .net 中为 Google 云存储签名 url

    我想知道如何使用 net中的谷歌云存储类生成signurl 我已经根据要求创建了字符串 GET 1388534400 bucket objectname 但我现在想用 p12 密钥签署这个 url 然后想让它变得 url 友好 该库没有显示
  • PHP 按值合并数组以获得 2 个不同的数组值

    我尝试将两个不同的数组合并为一个数组 有人可以帮我吗 我有这样的数组 0 Array 2 rank 579 id 1 1 Array 4 rank 251 id 2 0 Array 2 size S rank 251 1 Array 15
  • PHP is_file 和服务器根相对路径

    请问如何使用 is file 和 folder file jpg 这样的路径 谢谢你 如果路径以 开头 则表示该路径是绝对路径 当路径是相对路径时 即不以 开头 则采用相对于 php 脚本的路径 如果您希望 folder file jpg
  • 统计并限制上传的文件数量(HTML文件输入)

    我有那个基本的 众所周知的多文件上传表单 类似的事情
  • 以系统帐户运行exe

    我正在尝试将我的 c exe 作为系统帐户运行 我怎样才能做到这一点 我试过了

随机推荐

  • SVG 渐变颜色

    Hi I m working with SVG here I trying to add the gradient to SVG like this 白色和灰色渐变 但我无法实现所需的输出 谁能指出我正确的方向
  • 如何在引导日期选择器中突出显示特定日期?

    我正在使用引导日期选择器 我需要突出显示一些随机日期 例如 我需要突出显示 1 3 8 20 21 16 26 30 等日期 您能告诉我如何在引导日期选择器中突出显示这些随机日期吗 根据 Amphetamachine 的建议在 bootst
  • 信任 Google API 响应对象和所有权

    我已经在我的网络应用程序中成功实现了 Google Login 使用适用于客户端 Web 应用程序的 OAuth 2 0 https developers google com identity protocols OAuth2UserAg
  • 如何在 Python 中运行 .exe 文件

    我正在尝试在 python2 7 中运行 exe 文件 我已经尽了一切努力来搜索它 这是我尝试过的一些代码 subprocess Popen r C Programs Files Internet Explorer iexplore exe
  • 调试时 VS2012 的 VSIX 扩展未运行

    我在 Visual Studio 2012 中创建了一个新的 VSIX 扩展项目 并编写了一个 MEF 分类器 作为测试 该分类器应该简单地突出显示 mylang文件 以下是我的 NET 4 5 代码的相关部分 internal stati
  • 如何通过 powershell 或 C# 使用本地 IP 远程更新 azure webapp 防火墙

    如何使用本地 PC IP 地址远程更新我的 azure webapp 防火墙 以便通过 powershell 或 C 进行管理 我已经查看了文档 但我只能从实际服务器本身找到如何操作 而不能远程操作 我可以让 Visual Studio 弹
  • 可绘制资源中带有形状的文本

    我可以在可绘制资源中创建文本形状吗 我在谷歌上搜索了很多 但什么也没找到 这是我的绘图文件
  • 退出和中止有什么区别?

    The abort http ruby doc org core 2 1 1 Kernel html method i abort文件说abort will 通过调用 Kernel exit false 立即有效地终止执行 立即 到底是什么
  • 如何根据内容调整QTableView的高度?

    在我的布局中 动态生成的 QTableView 似乎已调整大小以仅显示一行 我想让表视图的容器有一个滚动条 而不是单个表视图 它应该显示完整的内容 显然 Qt 没有为此内置任何东西 您需要手动计算和设置大小 这就是我垂直调整大小的方法 Qt
  • XMLSerializer.Serialize 上的 .NET OutOfMemoryException

    我有一个网站 每当它到达我的代码中的以下位置时 就会抛出 OutOfMemoryException XmlSerializer xs new XmlSerializer t xoverrides 看到只有在网络服务器上时才会发生这种情况 我
  • 使用 Thrift 通过共享内存进行 IPC 通信

    我找不到关于如何使用 apache thrift 通过共享内存进行 ipc 通信的足够示例 我的目标是在 thrift 的帮助下序列化现有的类 然后通过共享内存发送到另一个进程 在该进程中我在 thrift 的帮助下再次反序列化它 现在我正
  • 如何循环访问 IP 地址范围?

    我想在 IP 地址范围上执行一组网络任务 一旦范围大于 C 类网络 我就无法枚举该范围内的所有主机 我希望能够使用网络掩码迭代网络的所有主机255 255 240 0 From 192 168 0 100 To 192 168 10 100
  • LinqToExcel:Excel 列中的不同值

    对于各位专家来说 这可能是一件非常简单的事情 但我对 C 4 和 INTEROP 并不熟悉 因此 我很困惑 这是我的问题 我有一个包含重复数据的 Excel 列 我想将其修剪为仅具有唯一值 数据如下所示 ColA ColB 10 Adam
  • 角度表单验证 ng-disabled 不起作用

    我正在尝试在我的博客文章表单中使用角度表单验证 更具体地说是禁用 ng 的表单 由于某些原因 我无法弄清楚提交按钮没有被禁用 除非所有三个输入字段都有效 否则它应该被禁用 谢谢您的帮助 这是我的博客模板 div div class cont
  • 如何在 Google 电子表格中插入列?

    我想将新数据添加到工作表的开头 开头 所以我必须在工作表中添加一个新的 A1 列 但我找不到任何 PHP 的 API 示例 现在我用这个附加数据 body new Google Service Sheets ValueRange value
  • 如果未使用 scp 命令指定目标路径,则文件位置

    要将文件夹从本地计算机复制到我使用的服务器 scp r local folder user server path 现在我忘了第一次指定目标路径 scp r local folder user server 现在有人知道该文件夹是否已被复制
  • 如何在视频标签中播放AVI文件?

    我想知道是否可以让浏览器在一个文件中播放 AVI 文件video tag 我在网上找到的所有谈论它的内容都集中在 MP4 和 Ogg 格式 但没有人谈论 AVI 格式 我发现的唯一解决方案是放弃video标记并使视频可以使用 JW Play
  • Lua 如何创建可用于变量的自定义函数?

    对于像 io close 这样的方法 你可以像这样使用它 file close 有没有办法创建一个像这样工作的自定义函数 您可以在变量上调用它 对我来说 我尝试使用它通过使用 string find 查找空格来将参数与文本文件分开 所以在文
  • 如何在 Node.js 中进行 Base64 编码?

    Node js 是否有内置 Base64 编码 我问这个的原因是final from crypto只能输出十六进制 二进制或ASCII数据 例如 var cipher crypto createCipheriv des ede3 cbc e
  • 对于某些版本的 PHP,“未指定输入文件”

    我安装了多个版本的 PHP 我写的 基本上 它是一个 ApacheLounge 安装 在 Windows 10 上通过 FastCGI 与 PHP 进行通信 这曾经让我在不同的虚拟主机上同时运行这些 PHP 版本 Apache 通过 Fas