trackleft/az_quickstart

亚利桑那快速启动

安装: 2

依赖项: 1

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 20

类型:drupal-custom-profile

5.3.0 2023-01-19 17:14 UTC

This package is auto-updated.

Last update: 2024-09-18 20:23:13 UTC


README

演示/启动 Drupal 发行版和安装配置文件,集成了符合社区最佳实践和亚利桑那大学品牌战略的各种功能。

完整的自定义 Drupal

AZ 快速启动是流行的 Drupal 内容管理系统的一个完整自定义版本,不是现有基于 Drupal 的网站的附加组件。以前,要启动一个新的 Drupal 网站,您需要准备一个 Web 服务器和数据库,然后按照其《安装 Drupal》文档和用户指南中的《安装章节》说明安装核心软件。这将产生一个功能最基本且没有内容的网站,然后您可以通过添加主题和模块来自定义它以满足您的需求。然而,您越来越多地可以安装 Drupal 发行版,这不仅包含核心,还包括一系列的附加组件,使其几乎立即可用于特定的目的,例如在线商店。AZ 快速启动是提供许多亚利桑那大学特定功能的发行版,并且不是空网站,还可以包含一些演示内容(尽管这些内容可以立即关闭)。

如何贡献

请参阅我们的贡献文档,其中包含详细的贡献说明,包括

安装您的快速启动网站的位置

大学的校园网络服务小组为不熟悉网络开发或系统管理的人员提供基于快速启动的现成网站。幕后,一个名为 Pantheon 的网络托管服务托管这些网站,因此当人们需要比这些提供更多的控制性和灵活性时,他们也有办法在 Pantheon 上独立托管它,许多重要的大学网站已经在那里。然而,还有许多其他基于亚利桑那快速启动的网站托管选项;唯一的缺点是,遵循这些选项的人必须承担维护系统及其网站安全性和更新性的责任。存在多年的通用托管选项被称为 LAMP:Linux 操作系统、Apache 网络服务器、MySQL 数据库和 PHP 脚本语言的组合,因此值得更详细地说明这一点,但许多变体都很常见(例如,用 Nginx 替换 Apache 网络服务器软件)。

系统需求

亚利桑那快速启动的系统需求几乎与Drupal 的要求完全相同,特别是 Drupal 9 的要求。需要强调或检查的一些额外事项包括

  • 确保系统有足够的内存:即使运行中的网站消耗很少,更新和安装都需要大量的内存。
  • 请检查PHP的配置是否允许其使用内存(请参阅内存需求部分)。
  • 重新检查是否已添加所需的PHP扩展:在较新的系统上,通常的打包机制(例如Debian或Ubuntu版本的Linux上的apt)足以添加它们。
  • 检查Apache配置是否启用了mod_rewrite模块以及允许其与PHP一起工作的模块。
  • 检查正在运行的Web服务器的用户和组:在许多基于Debian的Linux系统中,这些将是www-data,但并非所有系统都如此(此信息稍后设置文件和目录权限时需要)。
  • 以普通(非root)用户身份安装和配置软件,并在需要提升权限时具有使用sudo的能力;将该用户添加到Web服务器使用的同一组(因此您可以在/etc/group文件中看到类似www-data:x:33:normaluser的内容)。
  • Composer的最新版本是必需的,而不是可选的 — 删除任何之前安装但已过时的版本,并按照https://getcomposer.org/download/说明进行安装,或者如果可以升级,请尝试执行命令sudo -H composer self-update --2

Web服务器配置

如果您的快速入门网站将公开供公众查看,并且不仅仅是临时的开发网站,则应使用TLS(SSL,URL中的https://而不是http://)。现在有几种简单且成本较低的方法可以实现这一点,例如通过大学获得InCommon证书、AWS环境中的证书或免费的自动续订的Let's Encrypt证书。Apache的默认设置通常需要一些加固(至少禁用已过时的协议),但是有很多指南说明了如何操作,以及在线工具可以帮助您。将快速入门站点的配置包裹在Apache的<VirtualHost>指令中是一个好习惯,即使服务器上只有一个。您还可以从快速入门站点本身添加与安全相关的头信息,但使用Apache配置预先设置这些选项并没有坏处,例如

    Header always set Content-Security-Policy "frame-ancestors 'self'"
    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
    Header always set X-XSS-Protection 1

Drupal的更一般的Web服务器要求并不特别苛刻。在尝试快速入门安装之前,请确保Web服务器能够正确地运行一个简单的静态网站(例如一个放在某处的index.html文件),但请注意,在初始测试之后,您应更改Apache的DocumentRoot指令到新位置:快速入门的DocumentRoot将是安装期间创建的目录(该目录不能已存在)。

数据库服务器配置

Drupal的数据库要求的主要点是它不支持旧版本的数据库服务器软件,但支持软件本身的多种不同变体。快速入门需要配置MySQL或类似的数据库,并在数据库服务器中设置具有访问此数据库完全权限的用户。在几个较新的Linux发行版中,最高系统管理账户(root)无需密码即可完全访问数据库服务器,但无法将这些权限传递到快速入门的配置中,而且无论如何,为这种目的创建一个专用管理用户是最佳实践。一个典型的设置可能如下

sudo /usr/bin/mysql -e "DROP DATABASE IF EXISTS azqslampdb;"
sudo /usr/bin/mysql -e "CREATE USER 'azqslampdbadmin'@'localhost' IDENTIFIED BY 'turn_over_an_old_leaf_at_Ardtun';"
sudo /usr/bin/mysql -e "GRANT ALL ON azqslampdb.* TO 'azqslampdbadmin'@'localhost' WITH GRANT OPTION;"

一些旧的代码示例将CREATE USERGRANT合并到一条命令中,但MySQL 8已不再支持这种方式。《WITH GRANT OPTION》在实际应用中可能是不必要的,但它并不包含在《ALL》中。

使用Composer安装

最好创建一个目录,该目录允许非特权系统用户写入,同时允许Web服务器访问。例如:

cd /var/www
sudo mkdir drupalsites
sudo chown normaluser drupalsites

然后可以直接在这个目录中安装Quickstart

cd /var/www/drupalsites
composer create-project az-digital/az-quickstart-scaffolding:2.0.x-dev azqs --no-interaction --no-dev

这将产生一个很长的消息列表,看起来像这样:

Creating a "az-digital/az-quickstart-scaffolding:2.0.x-dev" project at "./azqs"
Installing az-digital/az-quickstart-scaffolding (2.0.x-dev 238cc222d24ca1fdcbd1dbfc5ea249f4ae0ac440)
  - Downloading az-digital/az-quickstart-scaffolding (2.0.x-dev 238cc22)
  - Installing az-digital/az-quickstart-scaffolding (2.0.x-dev 238cc22): Extracting archive
Created project in /var/www/drupalsites/azqs
> QuickstartProject\composer\ScriptHandler::checkComposerVersion
Loading composer repositories with package information
Updating dependencies                                 
Lock file operations: 240 installs, 0 updates, 0 removals
  - Locking alchemy/zippy (0.4.9)
  - Locking asm89/stack-cors (1.3.0)
  - Locking az-digital/arizona-bootstrap (v2.0.11)
  - Locking az-digital/az-quickstart-dev (dev-main 01fcacb)
  - Locking az-digital/az_quickstart (2.0.0-rc1)
 ...
   - Copy [web-root]/site.webmanifest from assets/site.webmanifest
Scaffolding files for az-digital/az-quickstart-scaffolding:
  - Copy [project-root]/.editorconfig from web/core/assets/scaffold/files/editorconfig
  - Copy [project-root]/.gitattributes from web/core/assets/scaffold/files/gitattributes
PHP CodeSniffer Config installed_paths set to ../../drupal/coder/coder_sniffer,../../phpcompatibility/php-compatibility,../../pheromone/phpcs-security-audit,../../sirbrillig/phpcs-variable-analysis
> QuickstartProject\composer\ScriptHandler::createRequiredFiles
Created a sites/default/settings.php file with chmod 0666
Created a sites/default/files directory with chmod 0777

这将创建一个顶级目录(在这个例子中是azqs),其中包含一个web子目录,该子目录作为Web服务器的实际DocumentRoot。此时更新Apache配置以反映这一点非常重要,因此示例中会有一个DocumentRoot /var/www/drupalsites/azqs/web指令,以及一个相应的<Directory /var/www/drupalsites/azqs/web>(以设置如AllowOverride All等设置)。一旦Apache使用新的配置重新启动,有两种方式可以完成安装。网站本身将显示一个变体的初始Drupal安装表单(标题为“Arizona Quickstart”),允许您填写各种字段,例如数据库用户名和密码;但初始构建包括流行的drush实用程序(在供应商子目录中),因此可以使用类似以下内容进行纯命令行安装:

/var/www/drupalsites/azqs/vendor/drush/drush/drush si --db-url=mysql://azqslampdbadmin:turn_over_an_old_leaf_at_Ardtun@localhost/azqslampdb --account-name=azadmin --account-pass=flour_85_percent_extraction --account-mail=webmaster@lamp.arizona.edu --site-mail=admin@development.lamp.arizona.edu --site-name='LAMP Development' --verbose --yes az_quickstart

在这个例子中,请注意数据库凭据与之前设置的相匹配(此处显示的其他详细信息也应使用您的自定义设置进行自定义)。目前的一个复杂细节是,您可能必须手动创建一个顶级config/sync目录(例如,在这个例子中是/var/www/drupalsites/azqs/config/sync)。如果一切顺利,您将能够使用您设置的凭据登录到新网站。登录后需要立即关注的是位于/admin/reports/status#error的报告。可能有一个受信任的主机设置错误,需要手动更改设置文件,并通知一些需要放宽权限的目录权限,以便Web服务器可以写入。

在Lando和VSCode中使用Xdebug

此存储库包含在lando应用程序容器中运行Xdebug所需的配置。

要开始调试会话,请执行以下步骤:

  1. 在VSCode中,转到扩展标签。
  2. 在搜索栏中输入@recommended
  3. 安装所有工作区推荐的扩展。
  4. 使用lando start启动lando。
  5. 使用lando xdebug-on启动Xdebug。
  6. 在VSCode窗口的左下角,单击那个小绿色图标。
  7. 选择Attach to Running Container...并选择您正在运行的lando实例的appserver
  8. 一旦新的VScode窗口弹出,回到扩展标签。
  9. 在搜索栏中输入@recommended
  10. 安装所有工作区推荐的扩展。
  11. 在VSCode中,转到调试标签。
  12. 点击右上角的Listen for XDebug旁边的绿色三角形。
  13. 在VSCode中,回到代码标签。
  14. 设置任何所需的断点。
  15. 您现在可以继续调试了。

分发更新

在现有网站上更新您的代码库时,您应始终检查是否需要应用分发更新。

这可以通过您网站上具有管理员角色的用户在此路径上完成:/admin/config/development/distro

在应用“高级”选项卡下的“合并”策略来更新您的代码库后,您应该能够看到要应用的上游更新。