在虚拟机的 Linux 系统(CentOS 7)中搭建一个「虚拟机本地网站」

前提:先确定你的虚拟机可以联网,可以先ping www.baidu.com试一下

一、系统环境初始化:为建站做基础准备

在开始安装 Web 服务前,需要先对 CentOS 7 系统做基础配置,避免后续出现权限、依赖冲突问题。

  1. 更新系统软件包首先执行系统更新,确保所有软件包是最新版本,减少依赖兼容问题:

    复制代码
    sudo yum update -y

    等待终端显示 "Complete!",说明系统更新完成。

  2. 处理 SELinux 安全限制CentOS 7 默认开启的 SELinux 会阻止 Web 服务访问文件,需要临时关闭并设置永久禁用(选用一个就好):

    • 临时关闭(立即生效,重启虚拟机后失效):

      复制代码
      sudo setenforce 0
    • 永久禁用(修改配置文件,重启后仍有效):

      复制代码
      sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  3. 配置防火墙放行 Web 端口WordPress 依赖 80 端口(HTTP 协议),需在防火墙中放行该端口:

    复制代码
    # 永久放行80端口
    sudo firewall-cmd --permanent --add-port=80/tcp
    # 重载防火墙使配置生效
    sudo firewall-cmd --reload

    执行后终端返回 "success",说明端口放行成功。

二、安装 LAMP 环境:直接部署兼容版 PHP(规避核心坑)

LAMP(Linux+Apache+MariaDB+PHP)是 WordPress 的基础运行境,核心避坑点:CentOS 7 默认安装 PHP 5.4,无法兼容新版 WordPress,因此直接安装 PHP 8.0(无需先装旧版本再升级)。

1. 安装 PHP8.0 依赖源

CentOS 7 官方源无 PHP8.0,需先安装第三方依赖源:

复制代码
# 安装EPEL基础源
sudo yum install epel-release -y
# 安装REMI源(提供PHP 7+安装包)
sudo rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm

2. 启用 PHP 8.0源并安装完整 LAMP 组件

php 复制代码
# 启用PHP 8.0源
sudo yum-config-manager --enable remi-php80
# 安装Apache、MariaDB、PHP 8.0及WordPress必需扩展
sudo yum install httpd mariadb-server php php-mysqlnd php-gd php-xml php-mbstring php-json php-common php-cli -y

扩展说明:php-mysqlnd(PHP 连接 MariaDB 的核心扩展)、php-gd(处理图片)、php-mbstring(支持中文等多字节字符),均为 WordPress 必需。

3. 启动并设置服务自启

安装完成后,启动 Apache 和 MariaDB 服务,并设置开机自启(避免虚拟机重启后服务失效):

复制代码
# 启动httpd(Apache)和mariadb服务
sudo systemctl start httpd mariadb
# 设置开机自启
sudo systemctl enable httpd mariadb
# 验证服务状态(可选,确保显示active (running))
sudo systemctl status httpd mariadb

显示绿色就好

4. 初始化 MariaDB 数据库

新安装的 MariaDB 默认无密码,需通过安全脚本设置 root 密码并优化配置:

复制代码
sudo mysql_secure_installation

按照终端提示操作:

  • 输入当前 root 密码:直接回车(默认无密码)
  • 询问是否设置 root 密码:输入 "y",设置密码(如 "1234",记牢该密码,建议简单一点)
  • 后续所有询问(删除匿名用户、禁止 root 远程登录、删除测试数据库等):均输入 "y",完成数据库初始化。

三、部署 WordPress:从下载到配置

完成环境准备后,开始下载并配置 WordPress 文件,规避 "未解压改权限、路径错误" 等坑。

1. 下载并解压 WordPress 安装包

进入 Apache 的网站根目录(/var/www/html),下载最新版 WordPress:

复制代码
cd /var/www/html
# 下载WordPress压缩包(若未安装wget,先执行sudo yum install wget -y)
sudo wget https://wordpress.org/latest.tar.gz

下载完成后,先解压再设置权限

复制代码
# 解压压缩包,生成wordpress目录
sudo tar -zxvf latest.tar.gz

2. 设置 WordPress 目录权限

给解压后的 WordPress 目录赋予 Apache 运行用户(apache)权限,避免 403 访问被拒:

复制代码
# 递归设置目录所有者为apache用户
sudo chown -R apache:apache /var/www/html/wordpress
# 递归设置目录权限(所有者可读可写可执行,其他用户可读可执行)
sudo chmod -R 755 /var/www/html/wordpress

3. 创建 WordPress 专属数据库和用户

不建议直接用 root 用户连接 WordPress,创建专用数据库和用户更安全:

复制代码
# 以root身份登录MariaDB
sudo mysql -u root -p

输入 MariaDB 的 root 密码(如 "1234",你设置的是啥就输啥),进入数据库命令行后,执行以下 SQL 语句(具体的名字和密码如果是自己设置的要记住):

sql 复制代码
-- 创建名为wordpress的数据库(支持中文)
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8;
-- 创建名为wp_user的专用用户,密码设为wp_pass123(可自定义)
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'wp_pass123';
-- 授予wp_user操作wordpress数据库的所有权限
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
-- 刷新权限使配置生效
FLUSH PRIVILEGES;
-- 退出数据库
EXIT;

4. 配置 WordPress 数据库连接文件

复制 WordPress 配置模板,填写数据库信息:

复制代码
# 进入wordpress目录
cd /var/www/html/wordpress
# 复制模板文件生成wp-config.php(核心配置文件)
sudo cp wp-config-sample.php wp-config.php
# 编辑配置文件(正确路径:/var/www/html/wordpress/wp-config.php)
sudo nano wp-config.php

找到下面的配置项,替换为上述创建的数据库信息:

php 复制代码
define( 'DB_NAME', 'wordpress' );       // 数据库名
define( 'DB_USER', 'wp_user' );         // 专用用户名
define( 'DB_PASSWORD', 'wp_pass123' );  // 专用用户密码
define( 'DB_HOST', 'localhost' );       // 数据库主机(默认localhost即可)

编辑完成后,按Ctrl+O保存,回车确认文件名称,Ctrl+X退出编辑器。

5. 调整 PHP 错误显示(可选,便于调试,如果你下面第五步成功就可以不用做)

若后续访问异常,可开启 PHP 错误显示辅助排查(编辑正确路径的 PHP 配置文件):

php 复制代码
# 编辑PHP主配置文件
sudo nano /etc/php.ini

找到以下配置项,删除行首的;(取消注释)并修改值:

复制代码
display_errors = On          // 显示运行时错误
display_startup_errors = On  // 显示启动时错误
error_reporting = E_ALL      // 显示所有级别错误

保存后重启 Apache 使配置生效:

复制代码
sudo systemctl restart httpd

四、解决数据库连接失败问题(可选,收尾调试)

若第五步访问时提示 "Error establishing a database connection",原因是 MariaDB 的 root 用户默认采用 socket 认证,需修改为密码认证(若用 root 连接时需操作,用专用用户可跳过):

复制代码
# 以root身份登录MariaDB
sudo mysql -u root -p
# 修改root认证方式为密码认证(密码设为1234,可自定义)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';
# 刷新权限
FLUSH PRIVILEGES;
# 退出数据库
EXIT;

五、成功验证+使用

完成所有配置后,在虚拟机浏览器中访问http://localhost/wordpress,会显示 WordPress 安装向导:

  1. 选择语言(如中文简体);
  2. 设置网站标题、管理员账号、密码、邮箱;
  3. 点击 "安装 WordPress",等待几秒即可完成安装;
  4. 安装完成后,可访问http://localhost/wordpress(前台)、http://localhost/wordpress/wp-admin(后台),验证网站正常运行

忘了截图,之后成功用你注册的用户名和密码登录之后就会出现仪表盘

可以在下面这里选择主题安装

举个栗子:

碎碎念

当然也可以自己上传主题,可以用finalshell和xshell,xftp之类的工具传到虚拟机上去。使用win+r输入mstsc可以进入自带的远程桌面连接,可以自己研究研究

如果是用服务器建站的话推荐以下主题,但是虚拟机不是很建议,因为压缩表都太大了

可以从这里面找:最全免费的开源WordPress主题汇总(超详细) - 知乎

这个也好看:https://github.com/mirai-mamori/Sakurairo

上面那个主题对应的文档:安装 WordPress | Fuukei 周边文档

如果有条件可以尝试使用服务器并买一个域名,上面就是我用Sakurairo这个主题弄的

相关推荐
努力努力再努力wz5 小时前
【Linux网络系列】:网络+网络编程(UDPsocket+TCPsocket)
java·linux·c语言·开发语言·数据结构·c++·centos
hkhkhkhkh1235 小时前
Linux 内核三大核心结构体详解(驱动开发视角)
linux·数据结构·驱动开发·字符设备
Smile灬凉城6665 小时前
TCP的四种计时器
运维·服务器·网络
R.lin5 小时前
Docker核心原理详解
运维·docker·容器
广东大榕树信息科技有限公司5 小时前
如何通过动环监控系统提升机房安全与管理效率?
运维·网络·物联网·国产动环监控系统·动环监控系统
怪我冷i5 小时前
wsl Ubuntu切换中科大源
linux·windows·ubuntu·ai编程·ai写作
FenceRain5 小时前
Linux 使用脚本删除文件
linux
QT 小鲜肉5 小时前
【Linux命令大全】001.文件管理之chgrp命令(实操篇)
android·linux·运维·笔记
qq13267029405 小时前
grafana 未授权访问漏洞设置iptables指定IP访问,拒绝其他所有IP
linux·服务器·网络·iptables·防火墙策略