当前位置:首页 > 技术 > 正文内容

基于Ubuntu 22.04部署WordPress博客

访客 技术 2026年6月15日 1

环境准备与依赖安装

本方案基于 Ubuntu 22.04 系统,目标是搭建一个运行在 Nginx + PHP-FPM + MySQL 8.4 环境下的 WordPress 博客系统。由于服务器内存限制(1GB),需谨慎选择组件版本以避免资源耗尽。

安装 PHP 及 FPM 支持

使用 APT 安装兼容的 PHP 版本:

sudo apt update
sudo apt install -y php8.1 php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-xml php8.1-zip php8.1-intl

部署 MySQL 8.4 LTS

从官方下载 MySQL 8.4.0 LTS 的 Debian 包,包含核心组件和客户端工具:

  • mysql-common_8.4.0-1ubuntu22.04_amd64.deb
  • mysql-community-client-core_8.4.0-1ubuntu22.04_amd64.deb
  • mysql-community-server-core_8.4.0-1ubuntu22.04_amd64.deb
  • mysql-community-server_8.4.0-1ubuntu22.04_amd64.deb

按顺序安装:

sudo dpkg -i mysql-common_*.deb
sudo dpkg -i mysql-community-client-core_*.deb
sudo dpkg -i mysql-community-server-core_*.deb
sudo dpkg -i mysql-community-server_*.deb

启动并验证服务状态:

sudo systemctl start mysql
sudo systemctl status mysql

配置数据库与用户权限

通过命令行登录 MySQL 并创建专用数据库及用户:

mysql -u root -p

-- 创建数据库
CREATE DATABASE wp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建应用用户
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'strong_password';

-- 授予全部权限
GRANT ALL PRIVILEGES ON wp_db.* TO 'wp_user'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;

-- 退出
EXIT;

部署 WordPress 核心文件

下载最新中文版 WordPress:

wget https://cn.wordpress.org/latest-zh_CN.tar.gz
tar -xzf latest-zh_CN.tar.gz
cd wordpress

复制示例配置文件并编辑:

cp wp-config-sample.php wp-config.php
vim wp-config.php

修改以下内容:

define('DB_NAME', 'wp_db');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'strong_password');
define('DB_HOST', 'localhost');

配置 Nginx 代理与 PHP 处理

创建站点目录结构,并编写 Nginx 配置:

mkdir -p /home/ubuntu/blog/www
cp -r * /home/ubuntu/blog/www/

cat > /home/ubuntu/blog/conf/nginx.conf <<EOF
server {
    listen 8080;
    server_name localhost;
    root /home/ubuntu/blog/www;
    index index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    access_log /home/ubuntu/blog/logs/access.log;
    error_log /home/ubuntu/blog/logs/error.log;
}
EOF

启动 Nginx 服务:

nginx -p /home/ubuntu/blog -c conf/nginx.conf

完成安装向导

打开浏览器访问:

http://your-server-ip:8080/wp-admin/install.php

按照提示完成初始化设置,包括站点标题、管理员账号等。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。