复制Drupal-7项目至服务器后出现空白页及PHP通知错误求助
解决Drupal部署后空白页+DATE_RFC7231重复定义的问题
嘿,我之前刚处理过一模一样的情况!作为Drupal新手碰到这种问题确实头疼,不过别担心,这本质是PHP版本和Drupal版本的兼容性冲突,咱们一步步来解决:
问题根源
你看到的DATE_RFC7231 already defined提示是关键:这个日期格式常量在PHP 7.0及以上版本已经是PHP核心自带的了,但你用的Drupal版本(大概率是Drupal 7的早期发行版)还自己在bootstrap.inc里重复定义了它,这种常量冲突会导致PHP抛出错误,进而让页面变成空白。
具体解决方案
方案1:升级Drupal到最新7.x稳定版(推荐)
Drupal官方早就修复了这个兼容性问题,升级到最新的Drupal 7.x版本就能彻底解决,还能顺便修复其他潜在的PHP7兼容性bug:
- 先备份好你的项目文件和数据库(这一步千万不能省!)
- 下载对应版本的Drupal 7压缩包,解压后替换掉旧项目里的
includes目录(或者直接全量覆盖除了sites目录以外的文件,因为sites里存着你的配置和上传文件) - 访问你的Drupal站点,按照提示完成数据库更新(如果有的话)
方案2:临时修改bootstrap.inc文件(权宜之计)
如果暂时没法升级,可以手动修改冲突的代码:
- 打开文件
/var/www/html/myprojects/mydrupalproject/includes/bootstrap.inc - 找到第258行的常量定义代码,把原来的:
改成带判断的形式:define('DATE_RFC7231', 'D, d M Y H:i:s \G\M\T');if (!defined('DATE_RFC7231')) { define('DATE_RFC7231', 'D, d M Y H:i:s \G\M\T'); } - 保存文件后刷新页面试试
额外检查:文件权限
空白页有时候也可能是权限问题导致的,确保Apache的运行用户(通常是www-data)对Drupal的文件有足够权限:
# 给sites/default/files目录设置正确的所有者 chown -R www-data:www-data /var/www/html/myprojects/mydrupalproject/sites/default/files # 设置合理的权限 chmod -R 755 /var/www/html/myprojects/mydrupalproject/sites/default/files
最后一步:清理缓存
如果修改后还是空白,手动清理Drupal缓存:
- 删除
/var/www/html/myprojects/mydrupalproject/sites/default/files/cache目录下的所有文件 - 如果你安装了Drush工具,也可以用命令快速清理:
drush cache-clear all
内容的提问来源于stack exchange,提问作者prgrm
相关产品推荐
相关产品推荐

