LAMP架构搭建Discuz 论坛网站

一、环境概述

  • 架构组成:Linux(CentOS7)+ Apache(httpd)+ MariaDB(MySQL 兼容)+ PHP

  • 核心用途:搭建动态网站(如 Discuz、WordPress)、企业内部系统

  • 适配场景:中小型项目、测试环境、内部业务系统(高并发场景建议优化或换用 LNMP / 容器架构)

二、前置准备

1. 系统初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 1. 更新系统依赖

yum update -y

# 2. 安装基础工具

yum install -y vim wget net-tools

# 3. 防火墙配置(开放80/443/22端口)

firewall-cmd --permanent --add-port=80/tcp

firewall-cmd --permanent --add-port=443/tcp

firewall-cmd --permanent --add-port=22/tcp

firewall-cmd --reload

#或者停止防火墙服务

systemctl stop firewalld
systemctl disable firewalld

# 4. SELinux配置(关键!避免权限拦截)

# 临时关闭(测试用)

setenforce 0

# 永久关闭(编辑配置文件)

vim /etc/selinux/config

# 修改为:SELINUX=disabled(需重启生效)

2. 组件版本说明

组件 推荐版本 兼容范围 安装方式
Apache 2.4.x(系统默认) CentOS7 自带 yum 安装
MariaDB 5.5.x/10.x 兼容 MySQL 协议 yum 安装
PHP 5.4.x(默认)/7.4.x 5.4 适配老系统,7.4 适配新应用 yum / 第三方源

三、核心组件安装与配置

(一)Apache(httpd)安装配置

1. 安装与启动

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装

yum install -y httpd mod_ssl

# 启动并设置开机自启

systemctl start httpd

systemctl enable httpd

# 验证状态(确保active (running))

systemctl status httpd

2. 关键配置(解决 PHP 解析问题,正常解析可以不用管)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 编辑PHP解析配置文件

vim /etc/httpd/conf.d/php.conf

# 确保以下配置存在(核心!)

LoadModule php5_module modules/libphp5.so # PHP5.x版本

# 或 LoadModule php7_module modules/libphp7.so(PHP7.x版本)

AddType application/x-httpd-php .php # 识别PHP文件

<IfModule dir_module>

DirectoryIndex index.php index.html # 优先加载index.php

</IfModule>

# 验证配置语法

httpd -t

# 重启生效

systemctl restart httpd

3. 虚拟主机配置(可选,多网站部署)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 创建虚拟主机配置文件

vim /etc/httpd/conf.d/vhost.conf

# 配置示例(替换为实际域名/路径)

<VirtualHost *:80>

ServerName www.example.com

DocumentRoot /var/www/discuz

ErrorLog /var/log/httpd/discuz_error.log

CustomLog /var/log/httpd/discuz_access.log combined

<Directory "/var/www/dsicuz">

Require all granted # 允许所有访问

Options Indexes FollowSymLinks

</Directory>

</VirtualHost>

# 创建网站目录并重启

mkdir -p /var/www/discuz

4. 修改httpd主配置文件

1
2
3
4
5
6
7
8
9
10
11
12
#关闭主服务器工作目录,添加默认索引文件 index.php

vi /etc/httpd/conf/httpd.conf
……
#DocumentRoot "/var/www/html"
……
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
……

systemctl restart httpd

(二)MariaDB 安装配置

1. 安装与初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 安装

yum install -y mariadb-server mariadb

# 启动并设置开机自启

systemctl start mariadb

systemctl enable mariadb

# 安全初始化(设置root密码、禁用匿名用户)

mysql_secure_installation

# 按提示操作:设置root密码→删除匿名用户→禁止root远程登录(按需关闭)→删除测试库

2. 数据库用户与权限配置(应用部署必备)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 登录数据库

mysql -u root -p

# 创建应用数据库(如WordPress/Discuz)

CREATE DATABASE wordpress_db;

# 创建专用用户并授权(避免使用root)

CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'StrongPass123!';

GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';

#或 grant all privileges on *.* to root@'%' identified by "000000";

FLUSH PRIVILEGES;

# 退出数据库

EXIT;

(三)PHP 安装与扩展配置

1. 基础安装(PHP5.4.x 默认版本)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装PHP及核心扩展

yum install -y php php-mysql php-gd php-mbstring php-xml php-curl

# 验证版本


php -v # 输出PHP 5.4.16等版本信息

# 验证扩展加载(创建测试文件)

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

# 浏览器访问:http://服务器IP/phpinfo.php,查看mysql/mysqli扩展是否存在

2. PHP 版本升级(可选,适配新应用)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 安装Remi源(支持高版本PHP)

yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

# 启用PHP7.4源

yum-config-manager --enable remi-php74

# 安装PHP7.4及扩展

yum install -y php74 php74-php-fpm php74-php-mysqlnd php74-php-gd php74-php-mbstring

# 重启Apache

systemctl restart httpd

四、网站部署实战

1. 下载与解压

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 进入网站根目录

cd /var/www/discuz

# 下载WordPress安装包

wget https://wordpress.org/latest.tar.gz

# 解压并授权

tar -xzvf latest.tar.gz

mv wordpress/* ./

cp -r upload/* ./

rm -rf wordpress latest.tar.gz

# 设置权限(关键!避免Forbidden错误)

chown -R apache:apache /var/www/discuz

chmod -R 755 /var/www/discuz # 目录权限

find /var/www/discuz -type f -exec chmod 644 {} \; # 文件权限

2. 配置与安装

  1. 浏览器访问:http://服务器IP,选择语言

  2. 填写数据库信息(前面创建的 wordpress_db、wp_user、密码)

  3. 设置网站标题、管理员账号密码,完成安装

3. 适配 PHP5.4.x 注意事项

  • PHP5.4.x 仅支持 WordPress 3.7-4.9.x 版本(新版 WordPress 需 PHP7.3+)

  • 若提示 “缺少 MySQL 扩展”,重新安装扩展:yum install -y php-mysql

  • 插件 / 主题优先选择兼容 PHP5.4 的旧版本

五、HTTPS 配置(双服务器架构:CA+Web)

(一)CA 服务器配置(192.168.227.135)

1. 生成根证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 创建CA工作目录(没有的就创建)

mkdir -p /etc/pki/CA/{private,certs,newcerts,crl}

touch /etc/pki/CA/index.txt

echo 01 > /etc/pki/CA/serial

# 生成根私钥(保密!)

openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048

chmod 600 /etc/pki/CA/private/cakey.pem

# 生成根证书(有效期10年)

openssl req -new -x509 -days 3650 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem

# 填写信息:国家(CN)→省份→城市→机构→部门→CA域名→邮箱

(二)Web 服务器配置(192.168.227.134)

1. 生成证书请求(CSR)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 创建证书目录

mkdir -p /etc/httpd/ssl

# 生成Web服务器私钥

openssl genrsa -out /etc/httpd/ssl/web.key 2048

# 生成CSR(Common Name填写Web服务器IP/域名)

openssl req -new -key /etc/httpd/ssl/web.key -out /etc/httpd/ssl/web.csr

# 上传CSR到CA服务器

scp /etc/httpd/ssl/web.csr root@192.168.227.135:/tmp/

2. CA 签署证书并传回

1
2
3
4
5
6
7
8
9
# CA服务器签署证书(有效期1年)

openssl ca -in /tmp/web.csr -out /etc/pki/CA/certs/web.crt -days 365

# 传回Web服务器

scp /etc/pki/CA/certs/web.crt root@192.168.227.134:/etc/httpd/ssl/

scp /etc/pki/CA/cacert.pem root@192.168.227.134:/etc/httpd/ssl/

3. Apache HTTPS 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 编辑SSL配置文件

vim /etc/httpd/conf.d/ssl.conf

# 修改关键配置

SSLCertificateKeyFile /etc/httpd/ssl/web.key

SSLCertificateFile /etc/httpd/ssl/web.crt

SSLCertificateChainFile /etc/httpd/ssl/cacert.pem

# 重启Apache

systemctl restart httpd

# 测试访问:https://服务器IP(首次提示证书不受信任,内部测试可忽略)

六、常见问题排查

1. 访问 PHP 显示源代码

  • 原因:Apache 未加载 PHP 模块或未配置解析规则

  • 解决

  1. 检查模块:httpd -M | grep php(无输出则重新安装 PHP)

  2. 确认 php.conf 配置(AddType/DirectoryIndex)

  3. 重启 Apache:systemctl restart httpd

2. 403 Forbidden(禁止访问)

  • 原因:文件权限不足、SELinux 拦截、Apache 配置限制

  • 解决

  1. 修复权限:chown -R apache:apache /var/www/html && chmod -R 755 /var/www/html

  2. SELinux 配置:chcon -R -t httpd_sys_content_t /var/www/html

  3. 检查 Apache 配置:<Directory>块添加Require all granted

3. 缺少 MySQL 扩展

  • 原因:未安装 php-mysql 扩展或版本不匹配

  • 解决

    • PHP5.4:yum install -y php-mysql

    • PHP7.x:yum install -y php74-php-mysqlnd

    • 重启 Apache:systemctl restart httpd

4. 数据库连接失败

  • 检查项
  1. MariaDB 服务是否运行:systemctl status mariadb

  2. 数据库用户权限:确认wp_user@localhost有权访问目标库

  3. 密码正确性:避免特殊字符,确保配置文件中密码无拼写错误


LAMP架构搭建Discuz 论坛网站
https://netguy6.github.io/2026/02/05/LAMP架构搭建Discuz 论坛网站/
作者
net06
发布于
2026年2月5日
许可协议