以前安装过一个Drupal 8的测试版,看过界面和很短加起来不到1个小时的测试,上个月Drupal 8的正式版出来了,这几天才抽空来尝试安装、升级等,把一些需要注意的地方记录如下:
- PHP版本问题:在我们的Linux服务器上安装时提示PHP版本太低,要求是PHP 5.5.9以上,同事尝试安装了PHP 7正式版,但对MemCache等的支持似乎还不够兼容、资料也不多,于是就安装了PHP 5.6.16,自带了Zend OPCache,不再需要APC;
- MySQL版本问题:Drupal 8对数据库的要求是“MySQL 5.5.3/MariaDB 5.5.20/Percona Server 5.5.8 or higher with PDO and an InnoDB-compatible primary storage engine, PostgreSQL 9.1.2 or higher with PDO”,我们现在阿里云RDS用的MySQL 5.6,没有问题;
- 安装:在MySQL上新建空的库,从Drupal官方网站下载最新的Drupal 8版本,在服务器上解压,设置Apache虚拟站点,访问web方式安装:http://www.example.com/install.php ,过程与Drupal 7的安装过程类似,按照提示一步一步设置语言、数据库连接、站点名称、管理员账号、时区等,安装完成后就是一个空白的Drupal 8站点可以访问和管理了;
- 升级:以前Drupal 6升级到Drupal 7是把sites目录都复制过去,然后访问update.php进行升级,现在Drupal 7到Drupal 8不能直接升级,需要在新安装的Drupal 8上装一个数据迁移的模块Migrate Upgrade,并开启Drupal 7中对应的模块(例如"手册"等),再浏览器访问http://www.example.com/upgrade 来进行升级,还可以用drush批量运行,官方网站的介绍详见:
- 时区:安装后用管理员账号可以看到网站,但匿名用户遇到报错:The website encountered an unexpected error. Please try again later.(网站遇到了不可预知的错误。请稍后再试。)查看Drupal 系统日志,Exception:DateTime->__construct() 中的 DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. 提示必须设置时区,就修改了php.ini,加入date.timezone = "Asia/Shanghai",重启Apache后再访问这个错误消失;
- 文本格式:安装过程中就有部分报错,后来在页面编辑、显示方面也有问题,编辑没有用上Drupal 8字段的CKEDITOR,日志中有报错Missing filter plugin: filter_null,这应该是我自己在该站以前设置过几种文本格式,升级后不好使,如果页面不是太多,可以逐页打开,改为系统自带的文本格式然后保存就可以;
- 状态报告提示“Trusted Host Settings 未启用”:settings.php 中的 trusted_host_patterns 设置未配置。这可能导致安全漏洞。强烈建议您配置此项。更多详情请参见 防止 HTTP HOST 头攻击。这个只要按照要求修改default/settings.php就可以;
- 修改模板:Drupal 7中的PHPTemplate模板在Drupal 8中改为Twig模板,而且放置位置也都变了,以修改bartik的显示模板为例,cp -rpa core/themes/bartik themes/; cp -rpa core/modules/system/templates/html.html.twig themes/bartik/templates/,然后分别修改themes/bartik/templates下面的html.html.twig、page.html.twig、node.html.twig等,并刷新缓存生效;
- 扩展安装:Drupal 8中的默认让管理员把第三方扩展及自己开发的扩展放到drupal_root/modules目录中,可以像在Drupal 7中一样用wget下载第三方模块,解压,然后在管理界面安装、设置,不过目前Drupal 8核心发布不久,很多第三方模块都没有跟上大版本升级或者只是8的Dev版本,使用的时候captcha image图像验证码、xmlsitemap网站地图等都还不能进行修改设置;
- cron运行:和Drupal 7类似,Drupal 8提供菜单设置定时运行以及站外访问触发运行两种方式,站外运行的URL带的安全码与以前的不同,升级后需要重新复制、设置;
- 核心小版本升级:8.0.0刚安装就发现有了8.0.1新版本出来,于是就开始了解小版本升级,与Drupal 6、7的小版本升级比较类似,都是替换核心文件、保留自己定义的sites等文件,然后运行http://example.com/update.php 升级数据库;
- 第三方模块升级:与Drupal 7下第三方模块的手工方式升级类似,下载后解压替换以前的版本,然后运行http://example.com/update.php 升级数据库;
- Drush:以前版本的Drush不支持Drupal 8,需要专门安装Drush 8来支持,请看英文文档:Drush安装及升级办法;
- .htaccess:在新版本自带.htaccess的基础上添加以前在Drupal 7中添加的部分;
- robots.txt:还是与以前类似改用robots.php,也是在新版本字段robots.txt的基础上修改;
- sitemap.xml:Drupal 8中的这个xmlsitemap第三方模块还在开发阶段,使用上有些问题,等待继续完善。
Drupal 8的更多功能还在尝试中,有新消息还会添加到上面。
初步结论:Drupal 8刚刚推出不久,可以尝试了解,但不建议马上采用,等待几个月让其核心程序及第三方插件成熟后再用到生产环境的正式网站比较好。
评论