Drupal

出自 ArchWiki

“Drupal 是一个用 PHP 编写的自由开源的内容管理系统 (CMS) 和内容管理框架 (CMF),并根据 GNU 通用公共许可证分发。” - Wikipedia

本文介绍如何安装 Drupal 并配置 Apache HTTP ServerMySQLPostgreSQLPHPPostfix 以使其正常工作。假定您已经安装了某种 LAMP (Linux, Apache, MySQL, PHP)、LAPP (Linux, Apache, PostgreSQL, PHP) 或 LASP (Linux, Apache, SQLite, PHP) 服务器。

安装

安装 drupal 软件包。

配置

PHP

编辑 /etc/php/php.ini

  • 要启用图像处理支持,请取消注释行 extension=gd

为了数据库支持,请为您数据库启用 PDO 扩展

  • 要启用 SQLite 支持,请取消注释行 extension=pdo_sqlite
  • 要启用 MySQL 支持,请取消注释行 extension=pdo_mysql
  • 要启用 PostgreSQL 支持,请取消注释行 extension=pdo_pgsql

Apache 启动将会失败,并提示找不到 php_admin_value 的错误,以下步骤修复此问题

安装 php-apache 软件包。

/etc/httpd/conf/httpd.conf 中,注释掉行

#LoadModule mpm_event_module modules/mod_mpm_event.so

并取消注释行

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

将其放在 LoadModule 列表的末尾

LoadModule php7_module modules/libphp7.so
AddHandler php7-script .php

将其放在 Include 列表的末尾

Include conf/extra/php7_module.conf

使用 systemd 重启 httpd.service

Apache 启动将会失败,并提示找不到 open_basedir 的错误,以下步骤修复此问题

/etc/php/php.ini 中,取消注释并在 open_basedir 后添加后缀,使其看起来像这样

open_basedir = /etc/webapps

Apache

复制示例 Apache 配置文件

# cp /etc/webapps/drupal/apache.example.conf /etc/httpd/conf/extra/drupal.conf

并将其包含在 /etc/httpd/conf/httpd.conf 的底部

Include conf/extra/drupal.conf

/etc/httpd/conf/httpd.conf 中,同时取消注释 LoadModule rewrite_module modules/mod_rewrite.so 行。

Drupal

编辑 /usr/share/webapps/drupal/.htaccess 并将 Require all denied 替换为 Require all granted

最后,重启 Apache (httpd.service)。您现在可以通过 http://localhost/drupal 访问 Drupal 安装。

命令行工具

Drush

Drush 是 Drupal 的命令行 Shell 和 Unix 脚本接口。 Drush 核心附带了许多有用的命令,用于与模块/主题/配置文件等代码进行交互。 同样,它可以运行 update.php,执行 sql 查询和数据库迁移,以及运行 cron 或清除缓存等杂项实用程序。 Drush 可以通过第三方命令文件扩展。 可以使用 drush-launcherAUR 软件包安装。

Drupalconsole

Drupalconsole 是一个 CLI 工具,用于生成样板代码、与 Drupal 8 交互和调试 Drupal 8。 可以使用 drupalconsoleAUR 软件包安装。

PHP-Codesniffer-Drupal

PHP-Codesniffer-Drupal 根据编码标准和其他最佳实践检查您的 Drupal 代码。 可以使用 php-codesniffer-drupalAUR 软件包安装。

技巧与提示

发送邮件

如果您计划从本地设置发送邮件,Drupal 需要一个兼容 Sendmail 的 MTA,例如 SendmailPostfixExim。 或者,有多种解决方案可以通过 SMTP 或其他方式(如 SMTPPHPMailer)通过外部邮件服务器发送邮件。 使用搜索页面查找更多可能性。

使用 Cron 进行计划任务

Drupal 建议每小时运行一次 cron 作业。 可以通过访问 http://localhost/drupal/cron 从浏览器执行 Cron。 也可以通过脚本运行 cron,方法是将 “scripts” 文件夹中的相应文件复制到 /etc/cron.hourly 并使其可执行。

上传进度未启用

成功安装后,您可能会在状态报告中看到以下消息

Your server is capable of displaying file upload progress, but does not have the required libraries. It is recommended to install the PECL uploadprogress library (preferred) or to install APC.

首先,安装 php-pearAUR 软件包。 接下来,使用 pecl 命令自动下载、编译和安装库

# pecl install uploadprogress

最后,添加到 /etc/php/php.ini

extension=uploadprogress

重启 Apache。

参见