Получение "Комментарии, начинающиеся с сообщения" # ", устарели" через CLI
У меня очень ограниченный доступ к файлам конфигурации сервера php.
когда я запускаю некоторые из моих скриптов cron, которые связаны с записью файлов журнала, я получаю предупреждение, подобное этому
Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0
Я много искал, чтобы найти причину, я узнал, что нам нужно заменить '#' на ';' в файле ming.ini.
Я сообщил об этом своему администратору сервера, чтобы исправить это.
ниже - ссылка, в которой я получил это исправление
Как исправить: устаревшие ошибки PHP
Позже, для некоторых проблем с скриптами исправлено, но для некоторых из них я начал получать ту же ошибку в другом файле конфигурации 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
Является ли это обычным поведением, мне нужно изменить эти комментарии с '#' на ';' в каждом файле.
ИЛИ это проблема с PHP 5.4.
Просьба предоставить любую информацию, если у вас есть или простой способ избежать этой ошибки на уровне приложения (код)
Заранее спасибо за чтение этого сообщения
Ответы
Ответ 1
Вы можете исправлять комментарии с помощью этой команды оболочки:
find /etc/php5/cli/conf.d/ -name "*.ini" -exec sed -i -re 's/^(\s*)#(.*)/\1;\2/g' {} \;
В основном он находит все .ini
файлы ниже/etc/php5/cli/conf.d/и выполняет sed на нем, который заменяет любой литерал строки #
комментариями ;
.
Ответ 2
вам нужно найти строки, начинающиеся с "#" в файле php.ini, и изменить их на ";"
Ответ 3
Это показывает, что в вашем файле 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/php 5/apache2/location.
sudo cp /usr/share/php5/php.ini-production /etc/php5/apache2/php.ini
Надеюсь, что это сработает.
Ответ 4
В моем случае мне пришлось разбирать файлы mysql.ini и php.ini.
Вы не контролируете, как комментарии используются в этих файлах, поэтому я подавил предупреждения только для этой строки.
$parse_sections = true;
$cfg = @parse_ini_file($file, $parse_sections);
Я уверен, что есть способ прочитать файл за строкой, заменить комментарии "#", а затем использовать parse_ini_string(), чтобы разобрать все это, но это добавляет немного накладных расходов.
Ответ 5
Вы можете попробовать установить конфигурацию error_reporting PHP, например:
ini_set("error_reporting", E_ALL & ~E_DEPRECATED);
Однако это только временное исправление. Получение такого предупреждения означает, что с более поздней версией PHP он больше не будет работать, поскольку файлы конфигурации будут считаться недействительными. Лучше свяжите своего хостера и попросите их исправить его; не должно быть слишком сложным.