使用LAMP部署Discuz!社区论坛教程

上一篇文章提到安装Apache服务,这篇内容我们将使用LAMP架构部署Discuz!

环境准备

系统要求

  • Linux操作系统(推荐CentOS/RHEL 7+)
  • Apache Web服务器
  • MariaDB/MySQL数据库
  • PHP 5.6+(推荐7.0+)
  • 至少1GB可用磁盘空间

网络要求

  • 开放80端口(HTTP)或443端口(HTTPS)
  • 服务器可访问互联网以下载软件包

第一部分:安装LAMP基础环境

步骤1:安装Apache Web服务器

# 安装Apache
sudo yum install httpd -y

# 启动服务并设置开机自启
sudo systemctl start httpd
sudo systemctl enable httpd

# 验证安装
sudo systemctl status httpd
curl http://localhost

步骤2:安装MariaDB数据库

# 安装MariaDB
sudo yum install mariadb-server mariadb -y

# 启动服务并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb

# 设置root密码(将'your_password'替换为实际密码)
sudo mysqladmin -uroot password 'your_password'

步骤3:安装PHP及扩展

# 安装PHP核心
sudo yum install php -y

# 安装PHP-MySQL扩展
sudo yum install php-mysql -y

# 安装其他常用扩展
sudo yum install php-gd php-mbstring php-xml -y

# 重启Apache使PHP生效
sudo systemctl restart httpd

步骤4:测试PHP环境

# 创建测试文件
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/phpinfo.php

# 访问测试页面
curl http://localhost/phpinfo.php

第二部分:安装配置Discuz!论坛

步骤1:下载Discuz!安装包

# 创建临时下载目录
mkdir ~/discuz_temp && cd ~/discuz_temp

# 下载Discuz!(示例版本X3.4)
wget https://download.comsenz.com/DiscuzX/3.4/Discuz_X3.4_SC_UTF8.zip

# 验证下载完整性
unzip -tq Discuz_X3.4_SC_UTF8.zip

步骤2:解压并部署文件

# 解压安装包
unzip Discuz_X3.4_SC_UTF8.zip -d discuz

# 清空网站根目录
sudo rm -rf /var/www/html/*

# 移动文件到网站根目录
sudo mv discuz/upload/* /var/www/html/

# 设置权限
sudo chown -R apache:apache /var/www/html/
sudo chmod -R 755 /var/www/html/

步骤3:创建数据库

# 登录MySQL
mysql -u root -p

-- 创建Discuz!数据库
CREATE DATABASE discuzdb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建数据库用户
CREATE USER 'discuzuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';

-- 授权用户访问数据库
GRANT ALL PRIVILEGES ON discuzdb.* TO 'discuzuser'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;
exit

步骤4:Web安装向导

  1. 打开浏览器访问:http://your_server_ip/install
  2. 阅读许可协议并同意

Discuz安装向导

  1. 系统环境检查(确保所有检查通过)

环境检查

  1. 选择"全新安装Discuz! (含UCenter Server)"

安装类型选择

  1. 填写数据库配置:
    • 数据库服务器:localhost
    • 数据库名:discuzdb
    • 用户名:discuzuser
    • 密码:StrongPassword123!
    • 表前缀:保持默认或自定义

数据库配置

  1. 设置管理员账号:

    • 管理员用户名:admin(建议修改)
    • 设置强密码
    • 填写管理员邮箱
  2. 开始安装(等待进度条完成)

安装进度

步骤5:完成安装

  1. 安装成功后,删除安装目录:
    sudo rm -rf /var/www/html/install/
    
  2. 访问论坛首页:http://your_server_ip
  3. 使用管理员账号登录后台:http://your_server_ip/admin.php

Discuz论坛首页


第三部分:安全加固

1. 配置文件加固

# 保护配置文件
sudo chmod 640 /var/www/html/config/config_global.php
sudo chmod 640 /var/www/html/config/config_ucenter.php

2. 启用防火墙

# 开放HTTP端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

3. 设置定期备份

# 创建备份脚本
cat <<EOF | sudo tee /usr/local/bin/backup_discuz.sh
#!/bin/bash
DATE=\$(date +%Y%m%d)
mysqldump -u root -p'your_db_password' discuzdb > /backups/discuz_db_\$DATE.sql
tar czvf /backups/discuz_files_\$DATE.tar.gz /var/www/html/
find /backups/ -type f -mtime +30 -delete
EOF

# 设置可执行权限
sudo chmod +x /usr/local/bin/backup_discuz.sh

# 添加定时任务(每天2点执行)
(crontab -l ; echo "0 2 * * * /usr/local/bin/backup_discuz.sh") | crontab -

4. 启用HTTPS

# 安装Certbot
sudo yum install certbot python3-certbot-apache -y

# 获取SSL证书
sudo certbot --apache -d your_domain.com

# 设置自动续期
sudo certbot renew --dry-run

常见问题解决

1. 文件权限问题

# 重置文件所有者
sudo chown -R apache:apache /var/www/html/

# 重置权限
sudo find /var/www/html/ -type d -exec chmod 755 {} \;
sudo find /var/www/html/ -type f -exec chmod 644 {} \;

2. 数据库连接失败

  • 检查MySQL服务状态:systemctl status mariadb
  • 验证数据库用户权限
  • 确认防火墙未阻止3306端口(本地访问不需要开放)

3. 页面显示异常

  • 清除浏览器缓存
  • 检查PHP错误日志:/var/log/php-fpm/error.log
  • 确保安装了所有需要的PHP扩展

4. 验证码不显示

# 安装GD库
sudo yum install php-gd -y
sudo systemctl restart httpd

最佳实践建议

  1. 定期更新:保持Discuz!、PHP和系统更新
  2. 启用缓存:在Discuz!后台启用Redis/Memcached缓存
  3. 备份策略
    • 每日数据库备份
    • 每周完整备份
  4. 安全扫描:定期使用Discuz!官方安全工具扫描
  5. 禁用不必要插件:减少攻击面

提示:Discuz!安装完成后,务必进入后台http://your_server_ip/admin.php进行站点配置和安全设置