【问题标题】:How to put shebang in PHP 5.4 CLI and not trigger Deprecated?如何将 shebang 放在 PHP 5.4 CLI 中而不触发已弃用?
【发布时间】:2015-08-10 13:55:27
【问题描述】:

PHP manual says:

在 Unix 系统上,特殊的 #! (或“shebang”)第一行应该添加到 PHP 脚本中,以便系统可以自动判断哪个程序应该运行该脚本。

但是当我在安装了 PHP 5.4.36 的机器上执行此操作时,我得到:

PHP 已弃用:以“#”开头的注释在 /etc/php5/cli/conf.d/ming.ini 第 1 行的 Unknown on 第 0 行中已弃用

我不想全局允许散列 cmets。它们已被弃用,警告是公正的。但另一方面,我确实希望有 shebang 可用,而不是触发警告。毕竟,手册说我应该使用它们。我怎样才能让它工作?

我现在的脚本是这样的:

#!/usr/bin/env php
<?php

我也试过了,效果一模一样:

#!/usr/bin/php
<?php

【问题讨论】:

  • 错误似乎不在您的脚本中,而是在 ming.ini 文件中。您只需要在 linux 中执行的脚本上有一个 shebang 行,不需要任何包含的文件。
  • 您应该确保文件的第一行包含“#! /path/to/php”,没有其他内容。另外,您确定需要它供您使用吗?这适用于您打算从 linux 运行 php 脚本时,如果要提供给 Web 浏览器则不需要
  • @Devon 我在我的问题中添加了代码。
  • 类型:$ which php,你会得到类似的东西 - /usr/bin/php 应该没有空格
  • 正如@Devon 已经说过的,您报告的警告来自一个不同的文件,该文件是作为启动过程的一部分加载的。

标签: php shell


【解决方案1】:

该错误不是由您的脚本引起的,而是由 ming.ini 文件引起的。您只需要在 linux 中执行的脚本上有一个 shebang 行,不需要任何包含的文件。

删除ming.ini 中的# cmets(ini 文件应使用;)。

【讨论】:

  • 哦。我非常信任发行版提供的文件。但有趣的事实 - 当我使用 php file.php 运行我的文件时,没有显示此错误。奇怪的。好吧,很高兴它成功了。
  • 这很奇怪,error_reporting 或包含文件必须在某处设置不同。
  • 不知道,真的 - 不在乎。我会在 5 分钟内接受你的回答 :) 文件已修复,在我的 php 代码中我会根据需要设置错误报告级别。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
  • 2022-06-20
  • 2013-08-22
  • 2023-03-03
相关资源
最近更新 更多