WordPress 搭建博客

共计 3678 个字符,预计需要花费 10 分钟才能阅读完成。

前言

前些天看见京东云有折扣,一时冲动买了个轻量服务器。

买都买了不能空闲着,折腾一下部署点服务,整个博客玩一玩。

Mariadb数据库部署方式选择

因为想到多个应用可能会使用数据库,如果每个数据库都单独使用docker安装会导致性能损失严重。

使用 Docker 部署多个 MariaDB 容器

  • 优势:每个容器独立运行,拥有独立的进程、内存和磁盘空间(若挂载不同卷)。
  • 劣势
    • 内存开销:每个 MariaDB 实例会占用独立的内存池(如 innodb_buffer_pool_size),总内存占用可能更高。
    • CPU 竞争:多个容器共享宿主 CPU,高负载时可能因上下文切换增加延迟。
    • I/O 争用:若所有容器共享同一物理磁盘,频繁的读写操作可能引发 I/O 瓶颈。
  • 典型性能损耗
    • 内存:每个容器额外占用约 100-300 MB(基础进程 + 缓存)。
    • CPU:容器化带来的额外开销约 5-10%(取决于负载类型)。
    • 磁盘:若使用独立卷,随机写入性能可能下降(取决于存储驱动类型,如 overlay2)。

单个 MariaDB 实例中创建多个数据库

  • 资源共享性
    • 优势
      • 内存利用率高:共享 innodb_buffer_pool_size,缓存池统一管理,减少重复缓存。
      • I/O 优化:所有数据库的请求由同一实例调度,可能合并写入操作。
      • 连接池共享:复用数据库连接池,减少连接建立开销。
    • 劣势
      • 资源竞争:若某数据库负载过高(如复杂查询),可能影响其他数据库性能。
      • 单点故障:实例崩溃会导致所有数据库不可用。
  • 典型性能损耗
    • 几乎无额外开销,性能损耗主要取决于实例的全局配置和负载均衡策略。

所以我直接安装到Debian系统中。

Mariadb安装

以root用户执行安装,非root用户需要在命令前添加sudo

1、更新apt 列表

apt install update

2、安装Mariadb

apt install mariadb-server -y

3、启用mariadb并设置开机启动(一般默认就开启了)

systemctl start mariadb 
systemctl enable mariadb

4、运行安全脚本(脚本会设置 root 密码、移除匿名用户、禁止 root 远程登录等)

mysql_secure_installation
root@JD-2C4G:~# mysql_secure_installation 

#默认没有密码,直接回车
Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.


#询问是否使用'unix_socket'进行身份验证,建议不开启,默认Y,选n:n
Switch to unix_socket authentication [Y/n] n
 ... skipping.


#创建root密码,默认Y,直接回车
Change the root password? [Y/n] 
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!



#移除匿名用户,默认Y,直接回车
Remove anonymous users? [Y/n] 
 ... Success!


#拒绝用户远程登录,我开启了,默认Y,直接回车
Disallow root login remotely? [Y/n] 
 ... Success!


#删除测试库,直接回车,默认Y
Remove test database and access to it? [Y/n] 
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!


#重新加载权限,默认Y,直接回车
Reload privilege tables now? [Y/n] 
 ... Success!

Cleaning up...
#显示这段话就完成了
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Mariadb创建用户名、数据库、授予权限、解除访问限制

root@JD-2C4G:~# mdydsql -u root -p  #使用root用户登录

Enter password:                     #输入设置的root密码
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 39
Server version: 10.11.11-MariaDB-0+deb12u1 Debian 12

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


#创建wordpress数据库实例
MariaDB [(none)]> CREATE DATABASE wordpress;   
Query OK, 1 row affected (0.000 sec)

#创建wordpress用户,并设置密码,@'%'代表允许远程登录,@'localhost'代表只能本机访问
MariaDB [(none)]> CREATE USER 'wordpress'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.001 sec)
#对wordpress用户授予wordpress实例所有权限,.*代表不限制表
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'%';
Query OK, 0 rows affected (0.001 sec)
#刷新权限使配置生效。
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)
#退出mariadb
MariaDB [(none)]> exit

#修改配置文件,找到bind-address改为0.0.0.0 
nano /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address         = 0.0.0.0

docker-compose安装WordPress

version: '3.8'
services:
  wordpress:
    image: wordpress:latest
    container_name: wordpress
    restart: unless-stopped
    environment:
      WORDPRESS_DB_HOST: 输入数据库地址 ip:3306
      WORDPRESS_DB_USER: 用户名
      WORDPRESS_DB_PASSWORD: 密码
      WORDPRESS_DB_NAME: 数据库实例名
    volumes:
      - data:/var/www/html
    network_mode: bridge
    ports:
      - "8080:80"

#创建持久化卷,默认路径/var/lib/docker/volumes,文件夹名为 容器名_卷名
volumes:
  data:

防火墙放行8080端口

访问 https://ip:8080 ,进行语言、账号的设置。

调整wordpress上传文件大小限制

创建custom.ini 文件 并复制到php配置路径/usr/local/etc/php/conf.d

#创建custom.ini 文件
root@JD-VPS:~# nano custom.ini

#文件中写入以下信息
#单个上传文件的最大限制
upload_max_filesize = 64M
#所有通过 POST 请求提交的数据总大小(包括文件 + 表单字段)
post_max_size = 128M
#PHP 脚本可使用的最大内存
memory_limit = 500M
#PHP 脚本最长运行时间
max_execution_time = 300

#将custom.ini拷贝到容器内
root@JD-VPS:~# docker cp custom.ini wordpress:/usr/local/etc/php/conf.d
Successfully copied 2.05kB to wordpress:/usr/local/etc/php/conf.d

#重启docker容器
root@JD-VPS:~# docker restart wordpress


验证配置是否生效

WordPress 搭建博客

正文完
 0
跃迁
版权声明:本站原创文章,由 跃迁 于2025-04-03发表,共计3678字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码