Joomla

来自 ArchWiki

此条目或章节需要语言、wiki 语法或风格改进。请参考 Help:Style

原因: 此条目需要一些语言改进 (在 Talk:Joomla 中讨论)

Joomla! 是一个自由开源的内容管理系统 (CMS),用于发布网络内容。它使用 PHP 编写,并将数据存储在 MySQLPostgreSQL 或 MS SQL 数据库中。

支持的功能包括页面缓存、RSS 订阅、页面打印版本、新闻快讯、博客、搜索以及对语言国际化的支持。

安装

为了使 Joomla 能够运行,需要安装和配置以下组件

  • 支持 PHP 的 HTTP 服务器(以下示例将使用 Apache HTTP 服务器
  • PHP 库
  • SQL 引擎 (PostgreSQL, MySQL)

代替 PHP 服务器

安装 joomlaAUR 软件包。

从零开始

首先安装所有必要的软件包: apache php php-apache mariadb

对于 MySQL (MariaDB) 或 PostgreSQL,请参阅 #MySQL 和 PostgreSQL 的选择

配置

Apache

请参阅 Apache HTTP 服务器#配置

按照说明操作后,您应该有一个正在运行的 Apache 副本。

现在要启用 PHP 支持,我们需要回到编辑 /etc/httpd/conf/httpd.conf:已知 PHP 无法与 mod_mpm_event.so 模块一起工作。因此我们需要禁用它,转而使用 mod_mpm_prefork.so,如下所示

#LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

现在我们需要在 mod_dir.so 模块之后添加(取消注释)以下行

LoadModule php_module modules/libphp.so

添加处理器

AddHandler php-script php

Include 列表的末尾追加

Include conf/extra/php_module.conf

完成!

MySQL

MySQL 和 PostgreSQL 的选择

MySQL(MariaDB) 和 PostgreSQL 之间进行选择时,应考虑 MySQL 的设计旨在快速和轻量级,而 PostgreSQL 则更注重稳定和一体化。本文选择 MySQL 是因为

  • 它更轻量级
  • 它在 GPL 许可下(而 PostgreSQL 是 MIT 许可)

请参阅 MariaDB 进行安装。

完成基本安装和配置后,现在可以执行更详细的设置。

首先,为您的未来网站创建数据库

$ mysqladmin -u root -p create joomla

命名约定是可选的,但为了清晰起见,数据库将被称为 'joomla'

建议避免对日常任务使用 root MySQL 帐户。为了创建另一个用户,必须首先调用 mysql 接口,使用

$ mysql -u root -p

它将提示您输入 MySQL 的 root 密码。如果一切正常并且 MySQL 服务器正在运行,您应该最终得到类似于这样的 MariaDB 提示符

MariaDB [(none)]>

为了创建一个特权用户,请发出以下命令

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, \
LOCK TABLES ON joomla.* TO '$USER'@'localhost' IDENTIFIED BY '$PASSWD';

如果您正在设置个人服务器,请随意尝试 $USER 和 $PASSWD 值。

警告
  • 您在此处输入的密码将保存在 ~/.mysql_history 中;
  • 当务之急是从该文件中删除包含密码的行;

现在,应用这些设置

FLUSH PRIVILEGES;
quit

PHP

现在设置我们的 PHP 服务器。我们将使用 Apache 运行它。编辑 /etc/php/php.ini

最简配置如下

  • 注释掉
;output_buffering = 4096
  • 编辑以下值以获得更详细的错误报告
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = On
  • 可选:启用日志记录
log_errors = On
  • 启用 MySQL 支持(取消注释以下选项)
extension=pdo_mysql
extension=mysqli

要测试 PHP 是否配置正确,请在简单的 html 页面文件的正文中添加此行

<?php echo '<p>Hello World</p>'; ?>

将其另存为 some_page.php

现在重启 httpd 并导航到 https://127.0.0.1/some_page.php

Joomla

至此,您应该有一个正在运行的 Apache 实例,其中 PHP 和 MySQL 已经启动并运行。

现在开始使用 joomla,将 /usr/share/webapps/joomla 的内容复制到您的文档根目录。

导航到您的 localhost

您应该看到 Joomla! 安装界面。

故障排除

注意: 本节旨在解决与 joomla 相关的问题。有关通用问题,请参阅:Apache HTTP 服务器#故障排除MariaDB#故障排除

此平台不支持文件缓存存储

很可能是 Apache 对 $DocumentRoot/cache 没有写入权限

由于默认情况下 Apache 以 'http' 用户身份运行,因此必须相应地调整 $DocumentRoot/cache$DocumentRoot/administrator/cache 的权限