以前安裝過一個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剛剛推出不久,可以嘗試了解,但不建議馬上采用,等待幾個月讓其核心程序及第三方插件成熟後再用到生産環境的正式網站比較好。
评论