指令'safe_mode'在PHP中的0行不再可用

时间:2019-03-13 19:41:40

标签: php deprecated

将托管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 个答案:

答案 0 :(得分:3)

首先,您应该阅读safe_mode。在文档中,将看到:

  

警告:此功能自PHP 5.3.0起已已弃用,自PHP 5.4.0起已已移除

第二,您可以通过删除以下行来使错误消失:

safe_mode = On;

注意:您必须确定找到正确的INI文件。某些安装PHP的操作系统或方法将为Web服务器和命令行界面(CLI)提供单独的php.ini文件。例如,在我的ubuntu工作站上,我有一个用于apache,一个用于CLI:

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

要找出您应编辑的INI文件,我建议查看phpinfo()的输出并查看 Loaded Configuration File 的值。要在网络服务器上执行此操作,请使用以下文件:

<?php
phpinfo();

如果要查找CLI脚本的php.ini文件所在的位置,可以使用以下命令:

php -i | grep "Loaded Configuration File"

如果要更改Web服务器的ini文件,则需要重新启动Web服务器才能使此更改生效。在Ubuntu或其他基于Debian的发行版上,您可以使用以下命令来完成此操作:

sudo service apache2 restart

您可能需要调整该命令,具体取决于发行版,发行版版本,apache版本等。我相信对于CentOS或基于Red Hat的发行版,其中之一应该有效:

sudo service httpd restart
sudo apachectl restart

注意:如果您的计算机配置为使用 php-fpm 处理PHP请求,则Web服务器的工作方式会有所不同。您的系统将维护一个与Web服务器完全分开的PHP进程的进程池。您将需要重新启动PHP进程池。根据发行版和您的PHP版本,完成此操作的命令差异很大。检查this page的发行版,看看是否可以找到合适的发行版。

对于PHP的CLI调用,更改应在每次运行新的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)