今天正式将网站从godaddy的旧主机搬到新主机,这里是一点笔记。
Drupal 8的数据库内容
Drupal 8安装初始化是63张表:
1 | batch | 17 | comment__comment_body | 33 | node__field_tags | 49 | sessions |
2 | block_content | 18 | comment_entity_statistics | 34 | node_access | 50 | shortcut |
3 | block_content__body | 19 | comment_field_data | 35 | node_field_data | 51 | shortcut_field_data |
4 | block_content_field_data | 20 | config | 36 | node_field_revision | 52 | shortcut_set_users |
5 | block_content_field_revision | 21 | file_managed | 37 | node_revision | 53 | taxonomy_index |
6 | block_content_revision | 22 | file_usage | 38 | node_revision__body | 54 | taxonomy_term_data |
7 | block_content_revision__body | 23 | history | 39 | node_revision__comment | 55 | taxonomy_term_field_data |
8 | cache_bootstrap | 24 | key_value | 40 | node_revision__field_image | 56 | taxonomy_term_hierarchy |
9 | cache_config | 25 | key_value_expire | 41 | node_revision__field_tags | 57 | url_alias |
10 | cache_container | 26 | menu_link_content | 42 | queue | 58 | user__roles |
11 | cache_data | 27 | menu_link_content_data | 43 | router | 59 | user__user_picture |
12 | cache_default | 28 | menu_tree | 44 | search_dataset | 60 | users |
13 | cache_discovery | 29 | node | 45 | search_index | 61 | users_data |
14 | cache_entity | 30 | node__body | 46 | search_total | 62 | users_field_data |
15 | cachetags | 31 | node__comment | 47 | semaphore | 63 | watchdog |
16 | comment | 32 | node__field_image | 48 | sequences |
配置网站信息后新增两张表:cache_menu和cache_render。就是说,一个新安装的drupal 8共有65张表。
后期由于配置及模块,表会逐渐增多。比如我的网站在原来的基础上增加了11张表,有模块产生的,有新建content type产生的:
1 | cache_dynamic_page_cache | 7 | node__comment_node_journal |
2 | cache_migrate | 8 | node__comment_node_page |
3 | cache_toolbar | 9 | node_revision__comment_node_article |
4 | flood | 10 | node_revision__comment_node_journal |
5 | honeypot_user | 11 | node_revision__comment_node_page |
6 | node__comment_node_article |
另外,从drupal 7升级至drupal 8时新增了118张migrate前缀的表,升级完成后可以删除,这里不赘述。
自己的drupal 8数据库使用一段时间后会涨到100多MB,实际数据只有20MB左右,其余全是缓存表。drupal 8默认内置了10张cache为前缀的表,需要定时清理,否则会变很大。搬迁时可以删除这10张表,刷新页面会自动重建。当然,官方推荐的做法是TRUNCATE (empty, not remove)。
搬迁时遇到的问题
- 主页打开报如下错误:
Parse error: syntax error, unexpected 'CLASS' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /home/dotc/public_html/core/lib/Drupal/Core/Extension/ModuleInstaller.php on line 221
定位到指定行,是注释。从来没有修改过文件,不太可能出问题。搜索了下,是和php相关的问题。想起之前修改过旧主机的php版本,因为默认是5.4,而drupal 8需要5.5以上。于是看了下新主机php版本,是5.4(native),改为5.5后主页访问正常。 - 主页能访问,但访问任何clean url均是404,rewrite是启用的,服务器配置方面也肯定不存在问题,就想到.htaccess,ssh上去,果然网站目录下一个隐藏文件都没有,之前cp的时候漏掉了。复制过来,问题解决。
搬迁流程:
- TRUNCATE网站数据库里cache为前缀的10张表,备份数据库;
- ssh上旧主机,打包网站目录,直接rsync到新主机;
- 进入新主机cpanel,创建数据库,创建用户时生成一个很蛋疼的18位密码,不记录,直接复制到settings.php,然后连自己都不记得;
- 导入数据库。
批量删除用户及评论
网站有段时间开放了注册,很快就迎来近3000个机器人;而升级到drupal 8后,honeypot不像drupal 7中那么好用了,产生了大量垃圾评论。
趁这次大整,清理下垃圾用户和评论。drush应该能很轻松做到这些,可惜还不会。所以这里直接操作数据库。
drupal 8用户相关的表有3个:users、users_data和users_field_data,使用相同的uid,直接以uid操作即可:
评论就有点麻烦了:
Add new comment