Joomla 是一款灵活的开源内容管理系统,用于构建网站和在线出版物。基于 PHP 开发,可适用于多种场景,如论坛、图片库、电子商务及其他基于网络的应用程序。
本指南将演示如何在Ubuntu 24.04服务器上安装Joomla。您将使用 Nginx 作为 Web 服务器、MariaDB 数据库服务器和 PHP-FPM 运行 Joomla。同时通过 HTTPS 实现 Joomla 安全防护。
前提条件
完成本指南需满足以下条件:
- Ubuntu 24.04 服务器环境
- 具备管理员权限的非 root 用户
- 指向服务器 IP 地址的域名
安装依赖项
Joomla 是基于 PHP 的内容管理系统。安装前需在系统中配置 PHP。本节将安装 LEMP 堆栈(Linux、Nginx、MariaDB 和 PHP-FPM)作为 Joomla 的运行环境。
首先执行以下命令更新 Ubuntu 软件包索引:
sudo apt update

使用以下命令安装 LEMP 堆栈依赖项。输入 ‘Y’ 确认安装:
sudo apt install nginx mariadb-server php-fpm php-curl php-common php-json php-intl php-xml php-gd php-mysql php-imagick php-mbstring php-zip

安装完成后,通过以下命令检查 Nginx 服务状态:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
此时可见 Nginx 服务正在运行。

现在通过以下命令检查 MariaDB 服务是否运行且处于启用状态:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

最后运行以下命令验证 PHP-FPM 服务。PHP-FPM 默认应通过套接字文件运行。
sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm

配置 PHP-FPM
LEMP 堆栈安装完成后,需配置 PHP-FPM 安装并根据 Joomla 需求修改默认设置。
使用 ‘nano’ 编辑器打开 PHP-FPM 配置文件 ‘/etc/php/8.3/fpm/php.ini’。
sudo nano /etc/php/8.3/fpm/php.ini
按以下方式修改默认配置:
memory_limit=512M
upload_max_filesize=64M
post_max_size=64M
max_execution_time=120
output_buffering = Off
extension=intl
保存文件并退出编辑器。
现在重启PHP-FPM服务以应用更改。
sudo systemctl restart php8.3-fpm
最后,可通过以下命令检查PHP-FPM服务的套接字文件:
ss -pl | grep php
可见PHP-FPM的套接字文件位于'/var/run/php/php8.3-fpm.sock'。

配置MariaDB服务器
本节将对 MariaDB 服务器安装进行安全加固,并为 Joomla 创建新数据库及用户。您将使用 ‘mariadb-secure-installation’ 工具加固 MariaDB 服务器,随后通过 ‘mariadb’ 客户端创建新数据库和用户。
执行以下 ‘mariab-secure-installation’ 命令以加固 MariaDB 服务器:
sudo mariadb-secure-installation
系统将引导您完成以下配置:
- 若采用默认MariaDB安装方式(无root密码),在密码提示时直接按回车键。
- MariaDB root用户的本地认证默认已启用安全保护,当询问是否将认证方式改为'unix_socket'时输入'n'。
- 输入'Y'创建新的MariaDB root密码。随后输入 MariaDB root 用户的强密码并重复确认。
- 当询问是否禁用 MariaDB root 用户的远程认证时,输入 ‘Y’ 表示同意。
- 默认安装的 MariaDB 服务器包含 ‘test’ 数据库并允许匿名用户访问。
- 输入 ‘Y’ 同时执行两项设置:删除默认数据库 ‘test’ 并撤销匿名访问权限。
- 最后输入 ‘Y’ 确认重新加载表权限。
完成 MariaDB 安全配置后,将创建 Joomla 的新数据库及用户。
使用下方'mariadb'命令登录MariaDB服务器。按提示输入MariaDB root密码:
sudo mariadb -u root -p
现在执行以下查询创建新数据库'joomladb',并创建新用户'joomla'(密码为'p4ssword'):
CREATE DATABASE joomladb;
CREATE USER joomla@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON joomladb.* TO joomla@localhost;
FLUSH PRIVILEGES;
接下来,运行以下查询检查用户'joomla'的权限。您将看到'joomla'用户可访问数据库'joomladb'。
接下来,运行以下查询以检查用户'joomla'的权限。您将看到'joomla'用户可以访问数据库'joomladb'。
SHOW GRANTS FOR joomla@localhost;
最后输入'quit'退出MariaDB服务器。

下载Joomla源代码
至此您已安装并配置好Joomla依赖项。接下来将下载Joomla源代码并设置文档根目录/网站根目录用于安装。
进入'/var/www'目录,使用下方'wget'命令下载Joomla源代码。请访问Joomla下载页面获取最新版本链接。
cd /var/www/
wget https://downloads.joomla.org/cms/joomla5/5-1-4/Joomla_5-1-4-Stable-Full_Package.zip
现在运行以下'unzip'命令,将Joomla源代码解压至'joomla'目录。
unzip Joomla_5-1-4-Stable-Full_Package.zip -d joomla
最后运行以下'chmod'命令,将'/var/www/joomla'目录的所有权更改为用户'www-data'。
sudo chown -R www-data:www-data /var/www/joomla
配置 Nginx 服务器块
现在将创建新的 Nginx 服务器块配置以运行 Joomla。请确保您的域名已准备就绪并指向服务器 IP 地址。
使用'nano'编辑器创建新Nginx服务器文件'/etc/nginx/sites-available/joomla':
sudo nano /etc/nginx/sites-available/joomla
插入以下配置并替换'server_name'选项为您的域名:
server {
listen 80;
server_name howtoforge.local;
server_name_in_redirect off;
access_log /var/log/nginx/localhost.access_log;
error_log /var/log/nginx/localhost.error_log info;
root /var/www/joomla;
index index.php index.html index.htm default.html default.htm;
# Support API
location /api/ {
try_files $uri $uri/ /api/index.php?$args;
}
# Support Clean (aka Search Engine Friendly) URLs
location / {
try_files $uri $uri/ /index.php?$args;
}
# add global x-content-type-options header
add_header X-Content-Type-Options nosniff;
# deny running scripts inside writable directories
location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
return 403;
error_page 403 /403_error.html;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi.conf;
}
# caching of files
location ~* \.(ico|pdf|flv)$ {
expires 1y;
}
location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
expires 14d;
}
}保存文件并退出编辑器。
现在运行以下命令激活'joomla'服务器块并验证Nginx配置。若配置正确,将显示输出'Syntax is OK'。
sudo ln -s /etc/nginx/sites-available/joomla /etc/nginx/sites-enabled/
sudo nginx -t
最后运行以下'systemctl'命令重启Nginx服务并应用变更:
sudo systemctl restart nginx
通过HTTPS保护Joomla
本指南将指导您使用HTTPS保护Joomla。若使用公共域名,可通过Certbot和Let's Encrypt获取SSL/TLS证书实现安全防护。
使用以下 ‘apt’ 命令安装 ‘Certbot’ 及 Nginx 插件。输入 ‘Y’ 确认安装:
sudo apt install certbot python3-certbot-nginx
安装完成后,运行以下 ‘certbot’ 命令生成 SSL/TLS 证书并启用 HTTPS:请确保将域名和邮箱地址替换为您的实际信息。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email kyrie@howtoforge.local -d howtoforge.local
完成后,您的Joomla安装将通过Letsencrypt提供的SSL/TLS证书实现HTTPS加密。
安装Joomla
打开浏览器访问您的Joomla域名(如https://howtoforge.local/),将显示安装向导界面。
选择默认语言并输入站点名称。

输入新管理员用户名、邮箱及密码。

输入MariaDB数据库及用户信息,点击“安装Joomla”继续安装流程。

安装完成后,点击“打开网站”访问默认主页,或点击“打开管理员”进入Joomla管理后台。

默认Joomla首页将显示如下内容:

请输入管理员用户名和密码,点击“登录”。

若用户名密码正确,将显示如下Joomla管理控制台界面:

结论
恭喜!您已在Ubuntu 24.04服务器上成功安装了Joomla。您已通过Nginx网页服务器、MariaDB数据库服务器和PHP-FPM使Joomla正常运行。同时,您还通过Certbot和Letsencrypt实现了HTTPS加密保护。
