2022年12月25日,Drupal全球社区发布了drupal10正式版,一个面向新一代用户的领先CMS的更新,这个最新版本通过现代化的前后端外观和面向未来的平台升级,将drupal提升到一个新的水平。Drupal10的主要目标之一是更加坚定地致力于开放网络的价值,这反映在许多最新的战略计划中,以及最近drupal平台愿景的调整,该平台旨在为雄心勃勃的网站建设者。
本文将向你介绍drupal10的安装方法,在此之前我们先简要了解一下drupal10的新功能和环境要求。
Drupal10的主要新功能:
- 更好看的前后端主题
新的Olivero主题为前端提供了现代的外观和体验,包括内置对响应式网格中的多级菜单和列表的支持,新的管理主题Claro为站点管理提供了一个可访问、干净的界面,如果你希望使用之前的默认主题Bartik和Seven,可以作为贡献项目使用它们。 - 新的内容编辑器CKEditor5
随着CKEditor4在2023年底结束生命周期,得益于开发人员的出色合作,Drupal10内置了CKEditor5。新版本带来了现代编辑体验,具有就地控件并支持任意输入和输出格式,还提供可选的高级功能,例如实时协作编辑。 - 删除对Internet Explorer的支持
微软已经结束了对Internet Explorer的支持,Drupal也是如此,这允许drupal10主题使用现代化技术和方案来解决用户面临的问题,对开发人员来说是福音。 - 入门套件主题生成工具
Drupal10引入了一个新的命令工具,可以从兼容的基本主题生成独立的主题。使用该工具生成独立主题,以防止在基本主题更改时破坏子主题。运行时主题扩展仍然受支持,但建议仅在完全控制基本主题时使用(例如,通过使用starterkit命令创建) - 要求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。 - 删除了非必要功能
快速编辑、聚合器、HAL、RDF和颜色模块已从核心中删除,它们可作为贡献项目继续使用,这使得drupal10能够专注于系统核心的开发。 - 自drupal9.0以来添加的所有功能仍然保留
Drupal10.0.0包括自9.0以来添加到drupal的所有功能,例如延迟图像加载支持以获得更好的前端性能、图像样式对WebP的支持、专用的内容编辑器用户角色、实体捆绑包的“管理权限”选项卡,以及PHP级别的捆绑包类以获得更好的代码封装,以及众多其他改进。 - 数以千计的贡献项目在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数据库事务隔离级别的设置方法》
- drupal10支持的数据库版本
- 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。
4.访问域名进入drupal10安装引导页面。
选择简体中文或需要的其他语言点“Save and continue”(保存并继续)。
注:由于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”即可进入中文安装引导。
5.安装方式一般选择“标准”,也可以选择Demo: Umami Food Magazine 这是一个带数据的演示站点,用于向用户演示drupal10的一些功能配置,本案例选择“标准”点击“保存并继续”。
6.填写数据库信息,点“保存并继续”。
等待drupal自动安装模块和翻译文件。
7.填写网站信息,包括站点名称、站点email地址、用户名、密码、区域设置,这些信息后期均可在网站后台更改,特别提示站点维护账号要记好,用于登录网站管理后台。
8.等待drupal10更新配置翻译。
9.看到这个界面,恭喜你已经安装好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的安装文件。
下载完会有提示,并提供了一些drupal官方入门文档的链接。
接着分别执行:
chgrp -R www atuwe.com
chown -R www atuwe.com
目的是将drupal10的安装包改成网站所属用户和组,本教程中网站所属用户和组均为 www。
4.细心的你可能已经发现,composer安装和传统方法安装的drupal10在目录结构上有些区别。
此时需要将域名绑定到/data/wwwroot/atuwe.com/web 而不是 /data/wwwroot/atuwe.com
5.然后访问域名即可进入安装引导页面,步骤和drupal10的传统安装方法一样。
Composer虽然好用,但服务器在国外,国内有时会因网络导致无法使用的情况,好在国内有一些企业提供了composer的镜像服务,使用方法见 《PHP Composer国内镜像列表和使用方法 》。
关于composer的一些其他问题可参阅:
《Composer诊断命令提示Checking pubkeys FAIL的解决方法 》