Подтвердить что ты не робот

Получение "Комментарии, начинающиеся с сообщения" # ", устарели" через 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.

Просьба предоставить любую информацию, если у вас есть или простой способ избежать этой ошибки на уровне приложения (код)

Заранее спасибо за чтение этого сообщения

4b9b3361

Ответ 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 он больше не будет работать, поскольку файлы конфигурации будут считаться недействительными. Лучше свяжите своего хостера и попросите их исправить его; не должно быть слишком сложным.