Drupal10的两种安装方法(图文教程)

涂红伟, 2023年01月03日 22:28:42

2022年12月25日,Drupal全球社区发布了drupal10正式版,一个面向新一代用户的领先CMS的更新,这个最新版本通过现代化的前后端外观和面向未来的平台升级,将drupal提升到一个新的水平。Drupal10的主要目标之一是更加坚定地致力于开放网络的价值,这反映在许多最新的战略计划中,以及最近drupal平台愿景的调整,该平台旨在为雄心勃勃的网站建设者。

本文将向你介绍drupal10的安装方法,在此之前我们先简要了解一下drupal10的新功能和环境要求。

Drupal10的主要新功能:

  1. 更好看的前后端主题  
    新的Olivero主题为前端提供了现代的外观和体验,包括内置对响应式网格中的多级菜单和列表的支持,新的管理主题Claro为站点管理提供了一个可访问、干净的界面,如果你希望使用之前的默认主题Bartik和Seven,可以作为贡献项目使用它们。
  2. 新的内容编辑器CKEditor5  
    随着CKEditor4在2023年底结束生命周期,得益于开发人员的出色合作,Drupal10内置了CKEditor5。新版本带来了现代编辑体验,具有就地控件并支持任意输入和输出格式,还提供可选的高级功能,例如实时协作编辑。
  3. 删除对Internet Explorer的支持  
    微软已经结束了对Internet Explorer的支持,Drupal也是如此,这允许drupal10主题使用现代化技术和方案来解决用户面临的问题,对开发人员来说是福音。
  4. 入门套件主题生成工具  
    Drupal10引入了一个新的命令工具,可以从兼容的基本主题生成独立的主题。使用该工具生成独立主题,以防止在基本主题更改时破坏子主题。运行时主题扩展仍然受支持,但建议仅在完全控制基本主题时使用(例如,通过使用starterkit命令创建)
  5. 要求Symfony6.2和PHP8.1  
    Drupal10.0依赖于Symfony6.2框架,后来的drupal10次要版本将更新为symfony6的未来次要版本,这将drupal与最新版本的底层平台捆绑在一起。  
    由于PHP7在2022年11月28日结束了生命周期,Symfony6.2需要PHP8.1,因此drupal10必须至少需要PHP8.1,这也为drupal10本身提供了最佳的支持时间表,当然drupal10也完全支持最新的PHP8.2。
  6. 删除了非必要功能  
    快速编辑、聚合器、HAL、RDF和颜色模块已从核心中删除,它们可作为贡献项目继续使用,这使得drupal10能够专注于系统核心的开发。
  7. 自drupal9.0以来添加的所有功能仍然保留  
    Drupal10.0.0包括自9.0以来添加到drupal的所有功能,例如延迟图像加载支持以获得更好的前端性能、图像样式对WebP的支持、专用的内容编辑器用户角色、实体捆绑包的“管理权限”选项卡,以及PHP级别的捆绑包类以获得更好的代码封装,以及众多其他改进。
  8. 数以千计的贡献项目在drupal10发布时已准备就绪  
    由于drupal社区在过去两年半中在自动代码更新工具,移植事件和关键项目的专门工作方面的辛勤付出,Drupal10推出了近三千个兼容扩展,比drupal9发布时的数量多26%。

Drupal10的未来,所有功能都将添加到drupal10中。作为贡献项目,一些关键的改进已在进行中,扩展浏览器贡献项目现在处于测试阶段,包括一个基于composer的用户界面,用于安装贡献项目及其所有依赖项。自动更新贡献项目已稳定,允许用户将修补程序级别的核心更新应用于站点……

Drupal10的运行环境要求:

#数据库要求:

  • MySQL、MariaDB或Percona Server(推荐)
    • drupal10支持的数据库版本  
      MariaDB 10.3.7+  
      MySQL/Percona 5.7.8+  
      所需配置  
      InnoDB作为主要存储引擎  
      PDO数据库扩展  
      设置MySQL事务隔离级别(Drupal站点推荐事务隔离级别为“READ COMMITTED”),关于隔离级别设置可参阅《Drupal10要求的MySQL数据库事务隔离级别的设置方法
  • PostgreSQL
    • Drupal10需要启用pg_trgm扩展的PostgreSQL12或更高版本。
  • SQLite
    • Drupal10需要启用json1扩展的SQLite3.26或更高版本。

注:以上数据库选择一种即可,对数据库不太熟悉的用户,推荐使用最新版MariaDB或MySQL。

#PHP要求:

Drupal10至少要求PHP8.1,官方建议使用PHP8.1.6及以上版本。

需要的PHP扩展:

  • 数据库扩展  
    必须激活PHP Data Objects(PDO)扩展,才能正确安装和运行drupal10。
  • XML扩展  
    PHP XML extension,这个扩展在标准PHP安装中默认处于启用状态,用于博客API、Drupal和Ping模块。
  • 图片库  
    PHP自带的图像库如GD库,或者第三方图片工具如ImageMagick,这是drupal10的必要扩展,用于调整用户上传的各种图片。
  • OpenSSL  
    建议使用PHP OpenSSL扩展,以允许drupal使用HTTPS加密收发请求数据,这在使用Update Manager(更新管理模块)时是必须的。
  • JSON  
    Drupal10需要使用JSON编译的PHP,JSON的支持通常是PHP核心编译的一部分,但如果遇到错误,可尝试手动添加JSON扩展。
  • cURL  
    PHP cURL扩展是drupal10自动测试以及Aggregator和一些贡献的模块所必须的,许多Linux发行版和开发堆栈默认启用它,但如果系统没有,可在php.ini(通常在windows上)或使用包管理器(通常在Linux上)启用它。
  • Mbstring  
    PHP mbstring扩展提供了多字节特定字符串函数,用于除英语以外的其他语言的drupal安装及drupal多语言站点。还可以处理基于Unicode的编码,如UTF-8或UCS-2。

#WEB服务器要求

  • Apache  
    大多数drupal的开发和部署都是在apache上完成的,因此apache是drupal最常用的web服务器,drupal10最低支持的版本为apache2.4.7。  
    Apache “mod_rewrite”扩展是必须的,用于干净的网址(在国内常称为伪静态)  
    Apache Virtualhost配置必须包含允许使用drupal10的.htaccess文件的指令:AllowOverride All
  • Nginx/Tengine  
    Nginx/Tengine是一种常用的web服务器,专注于高并发,性能和低内存使用率,Nginx/tengine是apache的流行替代品。  
    如果使用nginx服务器需要添加drupal10的nginx伪静态规则才能正常运行,配置文件参阅《Drupal10的Nginx伪静态配置

其他像微软IIS及PHP内置的web服务器由于不常用于drupal,本文就不做介绍。对于nginx配置不太熟悉的用户,推荐使用apache服务器。

#Composer(可选)

从drupal8开始,drupal核心的构建是建立在众多如symfony、guzzlehttp、masterminds、pear、ralouphie、twig等第三方开源组件之上的,官方推荐使用composer来管理,包括用composer安装和升级drupal核心、贡献主题和模块。  
Drupal10需要composer2.3.6或更高版本,这也是后续版本中自动更新功能的要求,如果你的composer版本低,可执行命令composer self-update 升级到composer最新版本。

总结drupal10的运行环境:php8.1.6+、apache2.4.7+/nginx1.16+、MySQL5.7.8+/MariaDB10.3.7+,像国内目前常用的宝塔面板、oneinstack、lnmp.org只要按照这些要求的软件版本配置即可支持drupal10。

下面介绍drupal10的两种安装方法,传统方法安装drupal10和使用composer安装drupal10。

Drupal10传统安装的方法

安装前提条件,已根据上述要求配置好了drupal10的运行环境,以atuwe.com域名绑定了/data/wwwroot/atuwe.com目录为例:

1.访问https://www.drupal.org/download或点击https://www.drupal.org/download-latest/zip 下载最新版drupal10。

2.将下载的压缩包解压上传到网站根目录,也就是本教程的/data/wwwroot/atuwe.com目录中。

3.将网站根目录下所有文件和文件夹改成正确的所属用户和组,并将sites文件夹权限改成755,在本教程中网站用户和组为www。

Image
Drupal10安装方法图文教程

4.访问域名进入drupal10安装引导页面。

Image
drupal10详细的安装教程

选择简体中文或需要的其他语言点“Save and continue”(保存并继续)。

Image
安装drupal10翻译文件下载出错

注:由于drupal安装包默认只包含英文语言,当用户选择其他语言如“简体中文”点“保存并继续”后会自动从drupal官方服务器下载语言包,有时因为网络或一些其他原因导致下载失败就会这样提示,滚动至页面底部,点击“try again”重新下载,如果多次重试都无法下载,则打开 https://localize.drupal.org/download 找到 Chinese, Simplified 点击 10.0.0 ,手动下载drupal10的简体中文语言包,下载后文件名为 drupal-10.0.0.zh-hans.po ,将文件上传到路径/data/wwwroot/atuwe.com/sites/default/files/translations/ 然后点“try again”即可进入中文安装引导。

Image
drupal10中文翻译文件下载地址
Image
drupal10的汉化包下载地址
Image
drupal10安装教程
Image
drupal10中文版安装教程

5.安装方式一般选择“标准”,也可以选择Demo: Umami Food Magazine 这是一个带数据的演示站点,用于向用户演示drupal10的一些功能配置,本案例选择“标准”点击“保存并继续”。

Image
drupal10中文版详细安装教程

6.填写数据库信息,点“保存并继续”。

Image
drupal10两种安装方法:填写数据库信息

等待drupal自动安装模块和翻译文件。

Image
drupal10中文安装教程
Image
drupal10简体中文安装详细教程

7.填写网站信息,包括站点名称、站点email地址、用户名、密码、区域设置,这些信息后期均可在网站后台更改,特别提示站点维护账号要记好,用于登录网站管理后台。

Image
drupal10中文安装教程

8.等待drupal10更新配置翻译。

Image
drupal10的两种安装方法图文教程

9.看到这个界面,恭喜你已经安装好drupal10。

Image
drupal10的安装教程

接下来点”状态“ - ”报告“。

Image
drupal10的安装方法

可以看到状态页面上有错误和警告信息,下面的教程应该能帮到你: 
Drupal10信任主机设置》  
Drupal10要求的MySQL数据库事务隔离级别的设置方法

使用composer安装drupal10的方法

上面提到过从drupal8开始,官方推荐使用composer安装和更新网站,对于没有了解composer的站长可能会认为很复杂,实际上花一点时间学习composer后你会发现这是一个很好用的PHP依赖项管理工具,Composer下载和安装方法见 https://getcomposer.org/download/ 

本教程前提条件是已经配置好drupal10运行环境,并安装好composer工具,网站的存放目录为/data/wwwroot/ ,服务器系统为linux。

1.使用SSH连接工具,如putty登录服务器,执行命令:

 cd /data/wwwroot/ 

进入要存放drual10的目录。

2.接着执行命令:   

 composer create-project drupal/recommended-project:10.0.0 "install-dir"

可将install-dir换成想要的名称,如: 

composer create-project drupal/recommended-project:10.0.0 "atuwe.com"

3.composer会在/data/wwwroot/目录下创建一个名为atuwe.com的文件夹,并自动开始下载drupal10的安装文件。

Image
用composer安装drupal10的教程

下载完会有提示,并提供了一些drupal官方入门文档的链接。

Image
drupal10用composer安装方法详细教程

接着分别执行:

chgrp -R www atuwe.com
chown -R www atuwe.com 

目的是将drupal10的安装包改成网站所属用户和组,本教程中网站所属用户和组均为 www。

4.细心的你可能已经发现,composer安装和传统方法安装的drupal10在目录结构上有些区别。

Image
drupal10用composer安装的详细教程

此时需要将域名绑定到/data/wwwroot/atuwe.com/web 而不是 /data/wwwroot/atuwe.com

5.然后访问域名即可进入安装引导页面,步骤和drupal10的传统安装方法一样。

Composer虽然好用,但服务器在国外,国内有时会因网络导致无法使用的情况,好在国内有一些企业提供了composer的镜像服务,使用方法见 《PHP Composer国内镜像列表和使用方法 》。

关于composer的一些其他问题可参阅:  
Composer诊断命令提示Checking pubkeys FAIL的解决方法