如何在 Ubuntu 18.04 上使用 Apache 安装 Joomla

2023-11-19

Joomla 是最流行的开源内容管理系统之一,为数十万个网站提供支持。它是用 PHP 编写的,包含大量可以通过免费和高级扩展和主题进行扩展的功能。使用 Joomla,您可以轻松构建电子商务商店、个人网站、社交网站或博客。

在本教程中,我们将解释如何在 Ubuntu 18.04 上安装 Joomla。我们将使用灯堆栈使用 Apache 作为 Web 服务器、SSL 证书、最新的 PHP 7.2 和 MySQL/MariaDB 作为数据库服务器。

先决条件#

在继续本教程之前,请确保满足以下先决条件:

  • 有一个域名指向您的服务器公共IP。我们将使用example.com.
  • 登录身份为具有 sudo 权限的用户 .
  • Apache按以下方式安装这些说明 .
  • 您已为您的域安装了 SSL 证书。您可以按照以下步骤安装免费的 Let’s Encrypt SSL 证书这些说明 .

创建 MySQL 数据库#

Joomla 可以将文章、类别、用户、扩展和主题设置等数据存储在 MySQL、PostgreSQL 或 MS SQL 数据库中。

我们将使用 MySQL 作为后端数据库。如果你没有MySQL安装在你的 Ubuntu 服务器上,你可以通过输入以下命令来安装它:

sudo apt-get updatesudo apt-get install mysql-server

输入以下命令登录 MySQL 控制台:

sudo mysql

在 MySQL shell 中,运行以下 SQL 语句创建数据库 :

CREATE DATABASE joomla CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

接下来,创建一个新的MySQL用户并授予权限对于新数据库上的该用户:

GRANT ALL ON joomla.* TO 'joomlauser'@'localhost' IDENTIFIED BY 'change-with-strong-password';

完成后,输入以下命令退出 mysql 控制台:

EXIT

安装PHP#

默认 PHP 7.2PHP版本Ubuntu 18.04 中的 Joomla 完全支持并推荐。

安装PHP使用以下命令安装所有必需的 PHP 扩展:

sudo apt updatesudo apt install php7.2 php7.2-cli php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-intl php7.2-xml php7.2-gd  php7.2-zip php7.2-curl php7.2-xmlrpc php7.2-xmlrpc

通过编辑以下内容来设置推荐的 PHP 选项php.ini文件与sed :

sudo sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/7.2/apache2/php.inisudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/apache2/php.inisudo sed -i "s/post_max_size = .*/post_max_size = 256M/" /etc/php/7.2/apache2/php.inisudo sed -i "s/output_buffering = .*/output_buffering = Off/" /etc/php/7.2/apache2/php.inisudo sed -i "s/max_execution_time = .*/max_execution_time = 300/" /etc/php/7.2/apache2/php.inisudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/apache2/php.ini

重新启动 apache,以便加载新安装的 PHP 扩展:

sudo systemctl restart apache2

下载 Joomla#

在撰写本文时,Joomla 的最新版本是 3.9.4 版。

在下载 Joomla 存档之前,首先创建一个用于保存 Joomla 文件的目录,然后navigate to it:

sudo mkdir -p /var/www/example.comcd /var/www/example.com

接下来,从以下位置下载 Joomla 的当前版本:Joomla 下载页面使用以下内容wget命令 :

sudo wget https://downloads.joomla.org/cms/joomla3/3-9-4/Joomla_3-9-4-Stable-Full_Package.zip

下载完成后,解压存档并将文件移动到域的文档根目录中:

sudo unzip Joomla_3-9-4-Stable-Full_Package.zip

将目录的所有者更改为www-data使用chown命令以便 Web 服务器可以完全访问站点的文件和目录:

sudo chown -R www-data: /var/www/example.com

配置阿帕奇#

到目前为止,您的系统上应该已经安装了带有 SSL 证书的 Apache,如果还没有,请检查本教程的先决条件。

下一步是编辑 Apache 虚拟主机配置:

sudo nano /etc/apache2/sites-available/example.com.conf

以下 Apache 配置 [将 HTTP 重定向到 HTTPS] 并将 www 重定向到域的非 www 版本并启用 HTTP2。别忘了更换example.com与您的 Joomla 域并设置 SSL 证书文件的正确路径。

/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com

  Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
  ServerName example.com
  ServerAlias www.example.com

  Protocols h2 http/1.1

  <If "%{HTTP_HOST} == 'www.example.com'">
    Redirect permanent / https://example.com/
  </If>

  DirectoryIndex index.html index.php
  DocumentRoot /var/www/example.com

  ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
  CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined

  SSLEngine On
  SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

  <Directory /var/www/example.com>
      Options FollowSymLinks
      AllowOverride All
      Require all granted
  </Directory>

</VirtualHost>

如果未启用,请为域启用虚拟主机。该命令将创建一个符号链接sites-available to the sites-enabled目录:

sudo a2ensite example.com

为了使新配置生效,请通过键入以下内容重新启动 Apache 服务:

sudo systemctl restart apache2

完成 Joomla 安装#

现在 Joomla 已下载并且服务器配置已完成,是时候使用 Web 界面完成 Joomla 安装了。

打开浏览器,输入您的域名,将出现类似于以下内容的屏幕:

选择您要使用的语言并填写以下信息:

  • 站点名称- 您的新 Joomla 网站的名称。
  • 描述- 网站的描述。这是一个后备元描述,将在每个页面上使用,无需具体描述。
  • 管理员电子邮件地址- 管理用户电子邮件地址。使用有效的电子邮件。如果您忘记密码,您将在此电子邮件地址收到更改密码的链接。
  • 管理员用户名- 管理用户的用户名。出于安全目的,请将用户名设置为“admin”以外的其他名称。
  • 管理员密码- 管理用户密码。确保您使用强密码。在中输入相同的密码确认管理员密码 field.
  • 网站离线- 保留默认的“否”。如果选择“是”,安装完成后,网站会显示“站点离线”。

完成后,单击“下一步”按钮。

在下一个屏幕上,设置向导将要求您输入数据库连接详细信息。

  • 数据库类型- 保留默认的“MySQLi”。
  • Hostname- 保留默认的“localhost”。如果本教程的数据库位于同一服务器上。
  • Username, Password, 数据库名称- 输入您之前创建的 MySQL 用户和数据库详细信息。
  • 表前缀- 保留自动生成的前缀。
  • 旧数据库进程- 保留默认的“备份”选项。

单击“下一步”按钮后,您将被重定向到“概述”页面:

在这里您可以选择安装示例数据并验证所有检查是否已通过。单击Install按钮,安装完成后,您将进入一个页面,通知您 Joomla 已安装。

如果您想安装其他语言,请单击“额外步骤:安装语言”按钮。

出于安全原因,您需要删除安装目录。为此,请返回终端并运行以下命令rm命令:

sudo rm -rf /var/www/example.com/installation

要访问您的 Joomla 后端,请单击Adminstrator按钮。从这里,您可以通过安装新主题和插件开始自定义 Joomla 安装。

结论#

恭喜,您已经在 Ubuntu 18.04 服务器上成功安装了带有 Apache 的 Joomla。Joomla 文档是了解有关如何开始使用新 Joomla 网站的更多信息的良好起点。

如果您有疑问,请随时在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 18.04 上使用 Apache 安装 Joomla 的相关文章

  • 从多个表中选择 - 一对多关系

    我有这样的表 表产品 身份证 姓名 表格图像 产品 ID 网址 订单号 表价 产品 ID 组合 货币 价格 表数量 产品 ID 组合 数量 表 Product 与其他表是一对多关系 我需要查询表并得到类似这样的结果 伪数组 ProductI
  • MySql如何通过过滤多列来限制多个数字?

    我想从数据库中获取 4 个不同类别的 50 个问题 我想要 4 个不同类别中每个类别的不同数量的问题 我的结果集必须包含第一类 12 个问题 第二类 20 个问题 第三类 10 个问题和第四类 8 个问题 我的问题表中总共有 50 个问题
  • SQL:比较不同表中的两个计数

    我有 3 张桌子 一张桌子上有世界上每个国家及其代币 NAME CODE Afghanistan AFG Albania AL Algeria DZ American Samoa AMSA Andorra AND Angola ANG An
  • MySQL中是否有类似Oracle中“level”的函数[重复]

    这个问题在这里已经有答案了 我面临一个场景 如果输入是 10 我想要一个数字序列 1 2 3 10 在甲骨文中levelfunction 提供了该功能 我想知道如何在 MySQL 中执行相同的任务 谢谢 您可以在 mysql 中使用此查询
  • 如何在 MariaDB 10 中启用大索引?

    在 Debian Jessie 中 我安装了 MariaDB 服务器 10 0 30 并尝试增加最大密钥长度 AFAIU 这取决于配置参数innodb large prefix正在启用 根据docs https mariadb com kb
  • 使用 pip3 安装 mysqlclient 时遇到问题

    我正在尝试使用 Django 设置 python 3 6 环境 安装说明说我应该安装 mysqlclient 才能连接到 mySQL 我明白了 dennis django sudo H pip3 install mysqlclient Co
  • WooCommerce:在数据库中查找产品

    我正在使用 WooCommerce 创建一个网站 我想根据用户在主页搜索表单中输入的邮政编码来限制用户可用的产品 为了能够实现这一目标 我必须在 phpMyAdmin 的数据库中指定每个产品的条件 但我似乎找不到它 有谁知道 phpmyAd
  • 基于列顺序的查询速度

    数据库中列类型的顺序对查询时间有影响吗 例如 具有混合排序 INT TEXT VARCHAR INT TEXT 的表的查询速度是否会比具有连续类型 INT INT VARCHAR TEXT TEXT 的表慢 答案是肯定的 这确实很重要 而且
  • 使用 PHP 代码和 HTML 表单将 Excel (.csv) 导入 MySQL

    我知道还有其他类似的帖子 但每个人都建议直接在 PHPMyAdmin 中将其导入 MySQL 这工作完美 但我需要通过 HTML 表单导入 PHP 到 MySQL 我想要一个收集文件的 HTML 表单 然后将该文件传递给 PHP 脚本 我想
  • 如何在 Laravel 中编写联合查询?

    我正在使用 laravel 5 0 并且我有 mysql 查询 SELECT surat masuk id surat surat masuk nomor surat FROM surat masuk WHERE EXISTS SELECT
  • 如何在MySQL中查找上周的数据

    我想显示来自 Q1 每个学生只有最后一周 Q2 每个学生只有最后一个月 我怎样才能实现这个目标 一周演示 http sqlfiddle com 2 f1fbb 3 当月演示 http sqlfiddle com 2 f1fbb 4 CREA
  • Ubuntu 上的 Tomcat8 .log.gz 已存在且未覆盖

    在我们的 Tomcat 服务器上 我经常看到如下警告 etc cron daily tomcat8 gzip var log tomcat8 app1 app1 log gz already exists not overwritten g
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • Spark SQL/Hive 查询通过 Join 永远持续下去

    所以我正在做一些应该很简单的事情 但显然它不在 Spark SQL 中 如果我在 MySQL 中运行以下查询 查询将在不到一秒的时间内完成 SELECT ua address id FROM user u inner join user a
  • 物理写入文件已满 - mysql 错误

    我正在使用xampp 每次启动mysql时 我都会在xampp中收到以下错误 Error MySQL shutdown unexpectedly 13 16 14 mysql This may be due to a blocked por
  • Laravel Sum 列数据库 Eloquent

    尝试获取我的一个表中 int 字段的总和应该非常容易 不幸的是 事实并非如此 因为无论我使用 Laravel MySQL 还是 Excel 我都会得到不同的结果 Laravel 5 4 给了我20506 Table sum field na
  • PHP/MySQL:如何在网站中创建评论部分[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我不会问 如何使用 PHP MySQ
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • 哪个是识别关系或非识别关系中的子表?

    在表之间的识别和非识别关系的上下文中 MySQL 文档大量将表称为父表和子表 如何判断哪个表是父表 哪个表是子表 子表 A K A 弱实体 http en wikipedia org wiki Weak entity 是一个表 其主键属性d

随机推荐

  • DUF – 适用于 Linux、BSD 和 macOS 的跨平台磁盘使用/免费实用程序

    随着数据的指数级增长 管理存储和分析磁盘使用情况已成为系统管理员和日常计算机用户的一项基本任务 了解磁盘空间的利用方式有助于您优化系统并就存储分配做出明智的决策 DUF 即磁盘使用 空闲实用程序 是一款功能强大的跨平台工具 旨在帮助您做到这
  • 如何在 Shell 脚本中检查 Python 版本

    Python 是由 Guido van Rossum 创建的一种高级通用编程语言 它于 1991 年首次发布 通常 基于 Linux 的发行版都预装了 Python 版本 本教程将帮助您在脚本中查找 Python 版本详细信息 此外 您还可
  • 如何在 Debian 11 上安装和配置 Fail2ban

    每台可通过互联网访问的服务器都面临着遭受暴力破解和恶意软件攻击的巨大风险 黑客尝试使用暴力尝试来访问可在公共网络上访问的应用程序 Fail2ban 是一种工具 用于通过提高基于 Linux 的计算机的安全性来保护其免受自动攻击 它监控任何恶
  • 使用 MySQL 中的预准备语句防止 SQL 注入攻击

    SQL 注入攻击是当今 Web 应用程序面临的最常见的安全威胁之一 当恶意行为者使用特制的输入来操纵数据库查询并获得对敏感数据的未经授权的访问时 就会发生这些攻击 为了防止 SQL 注入攻击 开发人员可以在 MySQL 中使用准备好的语句
  • 如何在 Bash 脚本中使用 ${} 提取子字符串

    Bash Bourne Again SHell 是一种流行的 shell 脚本语言 尤其是在 Linux 和 Unix 世界中 shell 脚本中最常见的任务之一是操作字符串 包括从给定字符串中提取子字符串 在本文中 我们将探讨如何使用强大
  • 如何在 Fedora 34/33 上安装 Magento2

    Magento 是最好的企业级电子商务软件和解决方案 它由开放 灵活的下一代架构提供支持 使用 Magento 开发的应用程序将为用户提供最佳且引人入胜的购物体验 其性能优于其他可用的电子商务应用程序 Magento 2 是最新版本 该版本
  • 什么是 SHA-256 算法?

    安全哈希算法 256 位 SHA 256 是 SHA 2 安全哈希算法 2 系列中的加密哈希函数之一 由美国国家安全局 NSA 设计并于2001年首次发布 广泛应用于各种安全应用和系统 在深入了解 SHA 256 的细节之前 我们首先了解什
  • 如何在 Fedora 和 RHEL 系统中安装 Google Chrome

    Google Chrome 是一款功能强大 快速且流行的网络浏览器 以其简约的设计和强大的功能套件而闻名 虽然 Fedora 和 Red Hat Enterprise Linux RHEL 系统配备了默认的 Web 浏览器 大多数情况下为
  • 如何在 Ubuntu 上创建 sudo 用户

    The sudo命令旨在允许用户以另一个用户 默认为 root 用户 的安全权限运行程序 在本指南中 我们将向您展示如何在 Ubuntu 系统上创建具有 sudo 访问权限的新用户 然后 您可以使用此用户帐户执行管理命令 而无需以 root
  • Linux 中的 lsmod 命令(列出内核模块)

    lsmod是一个命令行实用程序 显示有关已加载的 Linux 内核模块的信息 内核模块 内核是操作系统的核心组件 它管理系统的资源 是计算机硬件和软件之间的桥梁 Linux内核采用模块化设计 内核模块 通常称为驱动程序 是扩展内核功能的一段
  • 如何 Grep 查找多个字符串和模式

    grep是一种功能强大的命令行工具 允许您在一个或多个输入文件中搜索与正则表达式匹配的行 并将每个匹配行写入标准输出 在本文中 我们将向您展示如何使用 GNUgrep搜索多个字符串或模式 Grep 多种模式 GNU grep支持三种正则表达
  • 如何在Linux上挂载ISO文件

    ISO 文件是一种存档文件 通常包含 CD 或 DVD 的完整映像 例如 大多数操作系统 例如 Windows Linux 和 macOS 都以 ISO 映像的形式分发 ISO 文件可以使用流行的存档程序提取 安装在循环设备上并写入 USB
  • 如何在 Ubuntu 18.04 上安装 Ruby

    Ruby 是当今最流行的语言之一 它具有优雅的语法 并且是强大的 Ruby on Rails 框架背后的语言 在本教程中 我们将向您展示在 Ubuntu 18 04 系统上安装 Ruby 的三种不同方法 先决条件 在开始学习本教程之前 请确
  • 使用 PuTTYgen 在 Windows 上生成 SSH 密钥

    Secure Shell SSH 是一种加密网络协议 用于客户端和服务器之间的安全连接 支持各种身份验证机制 两种最流行的机制是基于密码的身份验证和基于公钥的身份验证 使用 SSH 密钥比传统的密码身份验证更安全 更方便 本教程介绍如何使用
  • 如何在 CentOS 7 上设置 Apache 虚拟主机

    Apache 虚拟主机允许多个网站在一台 Web 服务器上运行 使用虚拟主机 您可以指定站点文档根 包含网站文件的目录 为每个站点创建单独的安全策略 为每个站点使用不同的 SSL 证书等等 在本教程中 我们将提供有关如何在 CentOS 7
  • Linux 文件命令

    Linuxfile命令显示文件的类型 当您必须找出以前从未见过的文件类型或文件没有文件扩展名时 这会很有帮助 Linux 文件命令语法 Linux 的语法file命令如下 file OPTION FILE 它可以采用一个或多个文件名作为其参
  • 如何在 Ubuntu 20.04 上配置静态 IP 地址

    本文介绍如何在 Ubuntu 20 04 上设置静态 IP 地址 通常 在大多数网络配置中 IP 地址由路由器 DHCP 服务器动态分配 在不同情况下可能需要设置静态 IP 地址 例如配置端口转发或运行媒体服务器 使用 DHCP 配置静态
  • 如何在 Bash 中将 stderr 重定向到 stdout

    将命令的输出重定向到文件或通过管道将其传输到另一个命令时 您可能会注意到错误消息打印在屏幕上 在 Bash 和其他 Linux shell 中 当程序执行时 它使用三个标准 I O 流 每个流都由一个数字文件描述符表示 0 stdin 标准
  • 如何在 Ubuntu 18.04 上安装 PHP

    在本教程中 我们将介绍在 Ubuntu 18 04 上安装发行版的默认 PHP 7 2 并将其与 Nginx 和 Apache 集成所需的步骤 我们还将向您展示如何安装 PHP 7 1 和 7 3 大多数流行的 PHP 框架和应用程序包括W
  • 如何在 Ubuntu 18.04 上使用 Apache 安装 Joomla

    Joomla 是最流行的开源内容管理系统之一 为数十万个网站提供支持 它是用 PHP 编写的 包含大量可以通过免费和高级扩展和主题进行扩展的功能 使用 Joomla 您可以轻松构建电子商务商店 个人网站 社交网站或博客 在本教程中 我们将解