通过CLI获取“以'#'开头的注释”消息

时间:2012-12-28 18:35:18

标签: php

我对服务器php配置文件的访问非常有限。

当我运行一些涉及编写日志文件的cron脚本时,我收到类似这样的警告

Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0

我google了很多才找到原因,我知道我们需要用';'替换'#'在ming.ini文件中。

我告诉我的服务器管理员解决此问题

下面是我得到此修复的链接

How to fix: PHP Deprecated errors

后来,对于一些脚本问题得到修复但是对于其中一些我在不同的php配置文件中开始得到相同的错误

例如。

PHP Deprecated:  Comments starting with ‘#’ are deprecated in /etc/php5/cli/conf.d/imagick.ini on line 1 in Unknown on line 0

PHP Deprecated:  Comments starting with ‘#’ are deprecated in /etc/php5/cli/conf.d/imap.ini on line 1 in Unknown on line 0

实际上是什么问题,下面是我的服务器规范

操作系统:ubuntu 12 php:5.4

这是一种常见行为吗我需要将这些评论从“#”更改为“;”在每个文件中。

OR是PHP 5.4的问题。

如果您有或轻松地在应用程序级别(代码)中避免此错误,请提供任何信息

提前感谢您阅读这篇文章

5 个答案:

答案 0 :(得分:86)

您可以使用以下shell命令修补注释:

find /etc/php5/cli/conf.d/ -name "*.ini" -exec sed -i -re 's/^(\s*)#(.*)/\1;\2/g' {} \;

它基本上找到 /etc/php5/cli/conf.d / 下面的所有.ini个文件并在其上执行 sed ,它取代任何{{ 1}} #注释行文字。

答案 1 :(得分:26)

你需要找到以'#'开头的行。在您的php.ini文件中,将其更改为';'

答案 2 :(得分:1)

它表明你的php.ini文件有一些错误。要解决它你可以使用下面的命令加载默认的php.ini文件。

它会将您之前的php.ini文件重命名为php.ini_old。

sudo mv /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini_old

它会将默认的php.ini文件复制到/ etc / php5 / apache2 / location。

sudo cp /usr/share/php5/php.ini-production /etc/php5/apache2/php.ini

希望它有效。

答案 3 :(得分:0)

在我的情况下,我不得不解析mysql.ini和php.ini文件。 您无法控制这些文件中注释的使用方式,因此我仅针对该行抑制了警告。

$parse_sections = true;
$cfg = @parse_ini_file($file, $parse_sections);

我确信有一种方法是逐行读取文件,替换'#"注释然后使用parse_ini_string()来解析整个事情,但这会增加一些开销。

答案 4 :(得分:-5)

您可以尝试设置PHP error_reporting配置,如下所示:

ini_set("error_reporting", E_ALL & ~E_DEPRECATED);

然而,这只是一个临时修复。获得这样的警告意味着对于某些更高版本的PHP,它将不再起作用,因为配置文件将被视为无效。更好地联系你的主机并要求他们解决它;不应该太难。