Drupal
“Drupal 是一个用 PHP 编写的自由开源的内容管理系统 (CMS) 和内容管理框架 (CMF),并根据 GNU 通用公共许可证分发。” - Wikipedia
本文介绍如何安装 Drupal 并配置 Apache HTTP Server、MySQL 或 PostgreSQL、PHP 和 Postfix 以使其正常工作。假定您已经安装了某种 LAMP (Linux, Apache, MySQL, PHP)、LAPP (Linux, Apache, PostgreSQL, PHP) 或 LASP (Linux, Apache, SQLite, PHP) 服务器。
安装
配置
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,例如 Sendmail、Postfix 或 Exim。 或者,有多种解决方案可以通过 SMTP 或其他方式(如 SMTP 或 PHPMailer)通过外部邮件服务器发送邮件。 使用搜索页面查找更多可能性。
使用 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。