前几天在升级 Drupal 7 模块时遇到了一个问题,本来应该就像 WordPress 插件那样,完全可以点了之后自动下载安装升级的,可是这次却出错了,提示如下图:

HTTP error 0 截图

HTTP error 0 ...,我按照这个错误提示搜索了下,看来这个问题非常普遍,但是却没能找到一个可以解决问题的答案。有的说是因为虚拟主机 PHP 禁用了 “allow_url_fopen”,curl 什么的,有的说是因为临时文件夹的权限不够,可是这些我都试过了,还是照样会出错。

最后没办法了,就想着先手动升级一下吧。手动升级 Drupal 模块跟手动升级 WordPress 插件差不多的,只不过 WordPress 可以在后台直接选择上传本地的插件压缩包,而 Drupal 只能是先把模块下载到本地,然后再手动上传到(虚拟主机里)Drupal 站点下的模块文件夹内。把旧的模块文件夹删掉,然后解压新版的模块,然后再到浏览器里手动执行 yoursite.com/update.php 更新数据库即可。

网上说用 Drush 升级模块比较好,可是虚拟主机显然不行。还有的说在删除或者覆盖旧模块之前,最好先在后台把这个模块停用,我也觉得这么做比较保险。但是有没有确切的例子,来证明在未停用模块的状态下直接删除(或者覆盖)模块后运行升级出错的?我没有搜索,不知道了。

当然,整个过程必须在站点维护状态下进行,在升级前最好先备份下网站,以防万一。