Drupal安装中出现register_globals的解决方法

        Drupal或者Joomla等系统都要求运行的PHP环境关闭了register_globals,而有一些主机在默认的情况下 register_globals是开启的,像HostGator就是这样,这里如果我们安装Drupal等就会因为严重错误而停止安装,并要求你关闭主 机的register_globals,如下面的就是在安装Drupal时因为register_globals开启而出现的警告:

        register_globals is enabled. Drupal requires this configuration directive to be disabled. Your site may not be secure when register_globals is enabled. The PHP manual has instructions for how to change configuration settings. (Currently using PHP register globals Enabled ('1'))

        这里,我们应该怎么办呢?当然,因为register_globals开启而出现的重大错误肯定要以关闭register_globals的方式来解决,但 并不是每一个人都是使用自己的服务器能对PHP进行详细的设置,这时我们只有使用其它的方法了,下面是我使用过的三个方法,希望对正遇到这样问题的人有所 帮助。

        有使用PHPSUEXEC的主机:这种的比较简单,因为可以直接在根目录下放PHP.ini,所以只要将想要改的设定值加到PHP.ini,上传 到根目录就可以了,如直接在php.ini文件里加入这一行 "register_globals = Off" 就可以关闭register_globals

        没有使用PHPSUEXEC的主机:这种的,就要去修改虚拟主机的根目录下的一个叫做.htaccess的档案,把里面的php_valueregister_globals设定改成0就可以了。如HostGator适用这种方法。

        还有一种方法,就是直接去掉问题产生的根源,我们把Drupal系统产生这个警告的地方给注释掉:

        打开\modules\system\system.install 游子建议用第三方软件编辑, 如“记事本”

[Ctrl+F]View Code PHP

$register_globals = trim(ini_get('register_globals'));
// Unfortunately, ini_get() may return many different values, and we can't
// be certain which values mean 'on', so we instead check for 'not off'
// since we never want to tell the user that their site is secure
// (register_globals off), when it is in fact on. We can only guarantee
// register_globals is off if the value returned is 'off', '', or 0.
if (!empty($register_globals) && strtolower($register_globals) != 'off') {
$requirements['php_register_globals']['description'] = $t('register_globals is enabled. Drupal requires this configuration directive to be disabled. Your site may not be secure when register_globals is enabled. The PHP manual has instructions for how to change configuration settings.');
$requirements['php_register_globals']['severity'] = REQUIREMENT_ERROR;
$requirements['php_register_globals']['value'] = $t("Enabled ('@value')", array('@value' => $register_globals));
}
else {
$requirements['php_register_globals']['value'] = $t('Disabled');
}

       把这些删了即可,之前游子在上一篇文章Drupal介绍附加Drupal安装方法详细图解中写到了,关于register_globals的问题,用这三种方法一定可以解决了,最直截了当的是最后这种。但出现register_globals错误的只是少数主机,大多数来是能够直接安装过的。

最后编辑于:2010/5/3作者: 游子

热爱一切美好的新事物,搞网站也被网站搞,剁手折腾。关注与学习Web相关技术与UI\UE\UED\UCD\Server相关知识,服务器运维、前端、后端、非专业程序猿、非高级前端后端攻城师!

2 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

  1. php8848说道:
    1#

    确实是这样,以前不知道,是自己在装dedecms5.6时才遇到这种情况,无奈原先的站点都是开着的,用 .htaccess解决了这个问题,具体方法。

  1. 2014年6月15日

    宁夏双金属带锯条自动对焊机是哪里销售的?

    江西木工锯板机是哪里卖的? 赵先生认为天门银光木工机械的好,他们服务好,质量优。 购买咨询电话:周先生13972177398 13597985812 座机:0724-2215226 0728-4542491 传真:0724-2216225 QQ号:444985286 公司网址:www.ygmgjx.cn 慧聪网店铺 http://zhoushenghua88.b2b.hc360.com 淘宝网店http://ygmgjx.taobao.com 手机淘宝店http://shop62603947.m.t…