跳转至内容

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)。现在您可以通过 https:///drupal 访问 Drupal 安装。

命令行工具

Drush

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

Drupalconsole

Drupalconsole 是一个 CLI 工具,用于生成样板代码,与 Drupal 8 进行交互和调试。可以通过 drupalconsoleAUR 包进行安装。

PHP-Codesniffer-Drupal

PHP-Codesniffer-Drupal 根据编码标准和其他最佳实践检查您的 Drupal 代码。可以通过 php-codesniffer-drupalAUR 包进行安装。

技巧与提示

发送邮件

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

使用 Cron 调度

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

上传进度未启用

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

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。

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.