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

image


使用以下命令安装 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

image


安装完成后,通过以下命令检查 Nginx 服务状态:

sudo systemctl is-enabled nginx
sudo systemctl status nginx

此时可见 Nginx 服务正在运行。


image


现在通过以下命令检查 MariaDB 服务是否运行且处于启用状态:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

image


最后运行以下命令验证 PHP-FPM 服务。PHP-FPM 默认应通过套接字文件运行。

sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm

image



配置 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'。


image


配置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'。image

接下来,运行以下查询以检查用户'joomla'的权限。您将看到'joomla'用户可以访问数据库'joomladb'。

SHOW GRANTS FOR joomla@localhost;


最后输入'quit'退出MariaDB服务器。

image


下载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

image


通过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/),将显示安装向导界面。


选择默认语言并输入站点名称。


image


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


image


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


image


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


image


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


image


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


image


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

image


结论


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

你可能还喜欢阅读