LAMP环境下搭建discuz论坛

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

Discuz!是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。Discuz! 的基础架构采用世界上最流行的web编程组合PHP+MySQL实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。


1、下载discuz!安装包 创建www目录存放discuz安装文件

1
2
3
[root@yong src] # mkdir /data/www
[root@yong src] # cd /data/www/
[root@yong www] # wget  http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip

解压下载的包,解压之后有3个目录,readme是安装信息,utility是升级的信息,可以删除这2个目录;只保留upload目录。

1
2
3
[root@yong www] # unzip Discuz_X3.2_SC_GBK.zip 
[root@yong www] # ls
Discuz_X3.2_SC_GBK.zip  readme  upload  utility

upload目录的所有文件移动到当前www目录下

1
2
[root@yong www] # mv upload/* .
[root@yong www] # rm -rf upload/

启动apache

1
[root@yong www] # /usr/local/apache2/bin/apachectl start

可以给apachectl命令做一个软连接,以后就不用输绝对路径了

1
2
3
[root@yong www] # ln -s /usr/local/apache2/bin/apachectl /usr/bin/
[root@yong www] # apachectl -t
Syntax OK


2、配置虚拟主机

编辑apache主配置文件# vim /usr/local/apache2/conf/httpd.conf

找到这一行

#Include conf/extra/httpd-vhosts.conf

删除前面的#号,让这个配置文件生效,保存退出;


编辑虚拟主机配置文件# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 

一共有2段VirtualHost,删除一段多余的;

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com    #邮箱地址,可以删除这一行;
    DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"    #存放文件的地址
    ServerName dummy-host.example.com         #网站域名,可以自定义一个;
    ServerAlias www.dummy-host.example.com    #网站别名,其他的域名地址;
    ErrorLog "logs/dummy-host.example.com-error_log"             #错误日志
    CustomLog "logs/dummy-host.example.com-access_log" common    #自定义的日志;
</VirtualHost>


更改设置,只保留下面的几行:

<VirtualHost *:80>

    DocumentRoot "/data/www"

    ServerName www.123.com

    ServerAlias www.a.com www.b.com

</VirtualHost>

保存退出后,检测apache是否正常工作,使用curl解析一下网站,出现It works!说明没有成功;

1
2
3
4
[root@yong www] # apachectl -t
Syntax OK
[root@yong www] # curl -x127.0.0.1:80 www.123.com
<html><body><h1>It works!< /h1 >< /body >< /html >


优雅地重启apache,报错:提示端口已经在使用,不能绑定到指定的端口上。

1
2
3
4
5
6
[root@yong www] # apachectl graceful
httpd not running, trying to start
(98)Address already  in  use: make_sock: could not bind to address [::]:80
(98)Address already  in  use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to  open  logs

spacer.gif解决方法:ps查看httpd进程,然后杀掉,杀掉之后再重启,就不会报错;

1
2
3
4
[root@yong www] # ps aux |grep httpd
[root@yong www] # killall httpd
[root@yong www] # apachectl graceful
httpd not running, trying to start

curl解析网站,没有任何信息输出,表示正确。加-I显示网站的信息,提示302错误;location为install,说明解析正确。

1
2
3
4
5
6
7
8
[root@localhost www] # curl -x127.0.0.1:80 www.123.com
[root@localhost www] # curl -x127.0.0.1:80 www.123.com -I
HTTP /1 .1 302 Found
Date: Wed, 29 Apr 2015 07:37:13 GMT
Server: Apache /2 .2.29 (Unix) DAV /2  PHP /5 .3.28
X-Powered-By: PHP /5 .3.28
location:  install
Content-Type: text /html


问题排错:如果解析结果报错为403的话,需要进行如下的排错   

1
2
3
4
5
6
7
8
[root@yong www] # curl -x127.0.0.1:80 www.123.com -I
HTTP /1 .1 403 Forbidden
Date: Wed, 29 Apr 2015 07:24:34 GMT
Server: Apache /2 .2.15 (CentOS)
Accept-Ranges: bytes
Content-Length: 4954
Connection: close
Content-Type: text /html ; charset=UTF-8

出现403错误,原因是没有权限访问网站,需要编辑apache配置文件,

[root@yong www]# vim /usr/local/apache2/conf/httpd.conf

<Directory />

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    Deny from all

</Directory>

更改为:order allow,deny

       allow from all

保存退出后,需要重启apache,问题解决;


当启动apache的时候,如果出现“NameVirtualHost *:80 has no VirtualHosts”错误时,大部分是因为修改了apache的httpd.conf配置文件,将extra/vhosts.conf文件引入到httpd.conf中了。

1
2
[root@yong www] # apachectl restart
[Thu Apr 30 09:49:15 2015] [warn] NameVirtualHost *:80 has no VirtualHosts

虚拟主机httpd-vhost.conf文件中有一句配置语句为

NameVirtualHost *:80

下面有一段代码<>内要配置和上面的语句一致,就不会出现错误了。

<VirtualHost *:80>
    DocumentRoot "/data/www"
    ServerName www.123.com
</VirtualHost>


在物理机C:\Windows\System32\drivers\etc\hosts 

手动增加一行 192.168.20.20 www.123.com    访问域名123.com就解析到本地的ip;

打开cmd窗口 ping www.123.com    是否解析正确
正在 Ping www.123.com [192.168.20.20] 具有 32 字节的数据:
来自 192.168.20.20 的回复: 字节=32 时间=6ms TTL=64
来自 192.168.20.20 的回复: 字节=32 时间=2ms TTL=64
来自 192.168.20.20 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.20.20 的回复: 字节=32 时间<1ms TTL=64


继续下面的操作,打开IE浏览器输入 www.123.com 自动添加/install/ 出现Discuz !安装向导界面。

spacer.gifwKioL1VB9LWzdznFAASRW-1bV_w057.jpg

点击我同意到下一个页面,红色叉叉代表当前目录不存在或不可写。

spacer.gifwKioL1VB9ayCybA4AAKLESkBdSY265.jpg

ps aux 查看httpd进程,发现apache的运行账号为daemon

spacer.gifwKiom1VB9G_h940EAAPr8d8j4Yg160.jpg

spacer.gifwKioL1VB9lTQQWzqAAGCSKUNas8303.jpg

根据提示,修改对应目录的权限,让这几个目录支持apache运行账号可写操作;

1
[root@yong www] # chown -R daemon data/ config/ uc_server/data/ uc_client/data/

回到IE浏览器,按F5刷新,发现状态为可写

spacer.gifwKioL1VB9nayV-7tAACPY3Xdx10074.jpg

下一步,选择全新安装Discuz!( UCenter 用户中心,保存用户的数据信息)

spacer.gifwKiom1VB8yTRhRNvAACoVqpxATM675.jpg

需要填写数据库信息

spacer.gifwKioL1VB9pDTEYkKAAE0QheQ1SI367.jpg


3、配置mysql,给Discuz !增加一个账户

给mysql root账户设置密码,然后命令行进入mysql,创建新的库,并创建一个新的帐号对该库有所有权限:

> grant all on discuz.* to 'username'@'localhost' identified by '123456';

命令解释: 允许所有权限针对discuz库的所有表 用户@本地 定义用户的密码


mysql里面的执行命令较多,可以写到PATH里面,或添加到/etc/profile里面。

1
[root@yong www] # PATH=$PATH:/usr/local/mysql/bin/

首先给mysql设置一个密码,实际环境中要设置复杂密码,安全性考虑。

1
[root@yong www] # mysqladmin -uroot password '123456'

使用用户名密码登录,-p后面直接输入密码,或者在交互时输入密码。

1
2
3
[root@yong www] # mysql -uroot -p123456
[root@yong www] # mysql -uroot -p
Enter password:

使用mysql命令进入终端,创建一个discuz库,创建一个discuz数据库,创建一个新用户及密码;

1
2
3
4
mysql> create discuz;
mysql> create database discuz; 
mysql> grant all on discuz.* to  'yong' @ 'localhost'  identified by  'yong123'
mysql> quit

使用新建立的用户登录mysql测试是否正常。

1
[root@yong www] # mysql -uyong -pyong123

填写数据库信息,然后点击下一步就安装完成啦!

spacer.gifwKioL1VB9y-ifgrjAAFn-u4xwa4347.jpg

spacer.gifwKioL1VB91Tinz-7AAM2pFUaW5U008.jpg

admin 账号密码登录,选择管理中心后台,登录之后可以进行后台操作。

wKiom1VB9gSgCN46AAEqWwf8YuE964.jpg

Discuz!论坛搭建完毕,论坛后台设置及功能设置有需要的朋友自行查找资料了解。






本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1641011,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
开发框架 Java 中间件
.NET/.NET Core相关面试题
.NET/.NET Core相关面试题
276 0
|
存储 机器学习/深度学习 图形学
位图秘境:解析位图表示法及其在文件系统中的应用(一)
位图秘境:解析位图表示法及其在文件系统中的应用
289 0
|
关系型数据库 Shell Linux
ACL(访问控制列表)权限管理
一、ACL权限 二、rwx权限 三、mask权限 四、ACL备份和恢复
|
弹性计算 Linux 数据库
快速用Discuz搭建论坛网站教程
Discuz! 是全球成熟度最高、覆盖率最大的论坛网站软件系统之一,被200多万网站用户使用,本文教你一步一步快速用阿里云免费的Discuz官方系统搭建论坛网站。
44626 0
|
12月前
|
运维 持续交付 开发工具
基础设施即代码(IaC):自动化基础设施管理的未来
基础设施即代码(IaC):自动化基础设施管理的未来
420 0
|
域名解析 弹性计算 监控
用阿里云服务器搭建论坛教程
```markdown 1. 购买阿里云ECS实例 2. 配置域名解析至服务器IP 3. 安装Nginx/Apache,部署论坛文件 4. 安装MySQL,创建数据库和用户 5. 选择论坛程序(如Discuz!),完成安装配置 6. 自定义论坛参数,设置功能 7. 可选:启用SSL证书增强安全性 8. 定期备份数据,监控服务器性能 确保更新维护,顺利搭建安全论坛!求助阿里云客服或文档以获取支持。 ```
381 0
|
NoSQL Redis 数据库
12)Redis 的游标迭代器(scan)
12)Redis 的游标迭代器(scan)
193 1
|
数据可视化 数据挖掘 定位技术
在服务中收集和测试数据
【6月更文挑战第16天】本文讨论了数据收集和测试的重要性,指出样本量应根据时间和预算调整。数据分析涉及比较结果与假设,可视化数据以增强理解,并通过统计测试确认显著性。设计的持续优化是关键,适应变化的业务、技术和用户需求,数据驱动的方法能提供最佳用户体验。
168 5
在服务中收集和测试数据
|
人工智能 自然语言处理 机器人
瓴羊亮相2024全球数字经济大会,并参与编纂《数字原生应用基于大模型的智能客服》标准
瓴羊亮相2024全球数字经济大会,并参与编纂《数字原生应用基于大模型的智能客服》标准
323 1
|
Java
“解密Netty中的BossGroup与WorkerGroup:他们之间的默契和配合“
“解密Netty中的BossGroup与WorkerGroup:他们之间的默契和配合“
1283 0