通过CLI获取“以'#'开头的评论被弃用”消息
我有一个非常有限的访问服务器PHPconfiguration文件。
当我运行一些涉及写日志文件的cron脚本时,我收到了这样的警告
Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
我search了很多,find原因,我知道我们需要用';'replace'#' 在ming.ini文件中。
我通知我这个服务器pipe理员来解决这个问题
下面是我得到这个修复的链接
如何解决:PHP已弃用的错误
后来,对于一些脚本问题得到解决,但对于其中一些我开始在不同的PHPconfiguration文件中得到相同的错误
例如
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的一个问题。
请提供任何信息,如果您有一个简单的方法来避免在应用程序级别(代码)
提前感谢阅读这篇文章
您可以使用以下shell命令修补注释:
find /etc/php5/cli/conf.d/ -name "*.ini" -exec sed -i -re 's/^(\s*)#(.*)/\1;\2/g' {} \;
它基本上find/etc/php5/cli/conf.d/下面的所有.ini
文件,并在其上执行sed ,它将replace任何#
注释行文字;
。
你需要在你的php.ini文件中find以'#'开头的行,并将其改为';'
它显示在你的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
希望它的作品。
在我的情况下,我不得不parsingmysql.ini和php.ini文件。 您不能控制这些文件中的注释是如何使用的,所以我只是针对该行压缩了警告。
$parse_sections = true; $cfg = @parse_ini_file($file, $parse_sections);
我确信有一种方式是逐行读取文件,replace“#”注释,然后使用parse_ini_string()来parsing整个事情,但这会增加一些开销。
您可以尝试设置PHP error_reportingconfiguration,如下所示:
ini_set("error_reporting", E_ALL & ~E_DEPRECATED);
但是, 这只是一个临时的解决办法 。 像这样得到一个警告意味着,对于一些更高版本的PHP,它将不再工作,因为configuration文件将被视为无效。 更好的控制你的主机,并要求他们修复; 不应该太困难。