Директива 'safe_mode' больше не доступна в PHP в Unknown в строке 0 - PullRequest
0 голосов
/ 13 марта 2019

У меня появляется эта ошибка PHP Fatal error: Directive 'safe_mode' is no longer available in PHP in Unknown on line 0, когда я обновил версию своего хостинга PHP с 5.6 до 7.2

, как я могу решить эту проблему или я должен связаться с моим хостинг-провайдером ?!

вот мой php.ini файл настроек, найденный в моем среднем пути

; cPanel-generated PHP ini directives, do not edit
; Manual editing of this file may result in unexpected behavior.
; To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
; For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)

magic_quotes_gpc = Off;
register_globals = Off;
default_charset = UTF-8;
memory_limit = 64M
max_execution_time = 36000
upload_max_filesize = 999M
safe_mode = On;
mysql.connect_timeout = 20;
session.auto_start = Off;
session.use_only_cookies = On;
session.use_cookies = On;
session.use_trans_sid = Off;
session.cookie_httponly = On;
session.gc_maxlifetime = 3600
allow_url_fopen = On
display_errors = On
;error_reporting = E_ALL;
allow_url_include = On
enable_dl = On
file_uploads = On
max_input_time = 60
max_input_vars = 1000
post_max_size = 8M
session.save_path = "/var/cpanel/php/sessions/ea3"
zlib.output_compression = Off

1 Ответ

3 голосов
/ 13 марта 2019

Во-первых, вы должны прочитать о safe_mode . В документах увидим, что:

Предупреждение : эта функция была УСТАРЕЛА с PHP 5.3.0 и УДАЛЕНА с PHP 5.4.0.

Во-вторых, вы можете убрать ошибку, удалив эту строку:

safe_mode = On;

ПРИМЕЧАНИЕ : Вы должны быть уверены, что нашли правильный файл INI. Некоторые операционные системы или методы установки PHP будут иметь отдельный файл php.ini для веб-сервера и интерфейса командной строки (CLI). Например, на моей рабочей станции Ubuntu у меня есть один для apache и один для CLI:

/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini

Чтобы узнать, какой INI-файл вы должны редактировать, я предлагаю посмотреть на вывод phpinfo() и посмотреть значение для Loaded Configuration File . Чтобы сделать это на веб-сервере, используйте этот файл:

<?php
phpinfo();

Если вы хотите узнать, где находится файл php.ini для сценариев CLI, вы можете использовать эту команду:

php -i | grep "Loaded Configuration File"

Если вы вносите изменения в INI-файл для своего веб-сервера, вам необходимо перезапустить веб-сервер, чтобы эти изменения вступили в силу. В Ubuntu или других дистрибутивах на основе Debian вы можете сделать это командой:

sudo service apache2 restart

Вам может потребоваться настроить эту команду, в зависимости от дистрибутива, версии дистрибутива, версии apache и т. Д. Я считаю, что для дистрибутивов на базе CentOS или Red Hat один из них должен работать:

sudo service httpd restart
sudo apachectl restart

ПРИМЕЧАНИЕ : Если ваш компьютер настроен на использование php-fpm для обработки запросов PHP, то для вашего веб-сервера все работает иначе. Ваша система будет поддерживать пул процессов PHP совершенно отдельно от вашего веб-сервера. Вам нужно будет перезапустить пул процессов PHP. Команда для выполнения этого варьируется в широких пределах в зависимости от дистрибутива и вашей версии PHP. Проверьте эту страницу на наличие вашего дистрибутива и посмотрите, сможете ли вы найти тот, который работает.

Для CLI-вызовов PHP изменения должны вступать в силу каждый раз, когда вы запускаете новый скрипт php. Вам не нужно ничего перезапускать для новых команд, чтобы увидеть сделанные вами изменения. Если у вас по какой-то причине (очень необычно) есть какой-то длительный PHP-скрипт, вам нужно будет остановить этот процесс и повторно вызвать его после внесения изменений в INI.

РЕДАКТИРОВАТЬ: Я также хотел бы отметить, что ваш INI-файл очень ясно говорит о том, что вы можете получить странное поведение в вашей системе CPANEL. Обязательно следуйте его инструкциям:

; cPanel-generated PHP ini directives, do not edit
; Manual editing of this file may result in unexpected behavior.
; To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
; For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)
...