Discuz!是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的论坛服务。Discuz! 的基础架构采用世界上最流行的web编程组合PHP+MySQL实现,是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。
1、下载discuz!安装包 创建www目录存放discuz安装文件
[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目录。
[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目录下
[root@yong www]# mv upload/* . [root@yong www]# rm -rf upload/
启动apache
[root@yong www]# /usr/local/apache2/bin/apachectl start
可以给apachectl命令做一个软连接,以后就不用输绝对路径了
[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 [email protected] #邮箱地址,可以删除这一行;
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!说明没有成功;
[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,报错:提示端口已经在使用,不能绑定到指定的端口上。
[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
解决方法:ps查看httpd进程,然后杀掉,杀掉之后再重启,就不会报错;
[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,说明解析正确。
[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的话,需要进行如下的排错
[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中了。
[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 !安装向导界面。
点击我同意到下一个页面,红色叉叉代表当前目录不存在或不可写。
ps aux 查看httpd进程,发现apache的运行账号为daemon
根据提示,修改对应目录的权限,让这几个目录支持apache运行账号可写操作;
[root@yong www]# chown -R daemon data/ config/ uc_server/data/ uc_client/data/
回到IE浏览器,按F5刷新,发现状态为可写
下一步,选择全新安装Discuz!( UCenter 用户中心,保存用户的数据信息)
需要填写数据库信息
3、配置mysql,给Discuz !增加一个账户
给mysql root账户设置密码,然后命令行进入mysql,创建新的库,并创建一个新的帐号对该库有所有权限:
> grant all on discuz.* to 'username'@'localhost' identified by '123456';
命令解释: 允许所有权限针对discuz库的所有表 用户@本地 定义用户的密码
mysql里面的执行命令较多,可以写到PATH里面,或添加到/etc/profile里面。
[root@yong www]# PATH=$PATH:/usr/local/mysql/bin/
首先给mysql设置一个密码,实际环境中要设置复杂密码,安全性考虑。
[root@yong www]# mysqladmin -uroot password '123456'
使用用户名密码登录,-p后面直接输入密码,或者在交互时输入密码。
[root@yong www]# mysql -uroot -p123456 [root@yong www]# mysql -uroot -p Enter password:
使用mysql命令进入终端,创建一个discuz库,创建一个discuz数据库,创建一个新用户及密码;
mysql> create discuz; mysql> create database discuz; mysql> grant all on discuz.* to 'yong'@'localhost' identified by 'yong123'; mysql> quit
使用新建立的用户登录mysql测试是否正常。
[root@yong www]# mysql -uyong -pyong123
填写数据库信息,然后点击下一步就安装完成啦!
admin 账号密码登录,选择管理中心后台,登录之后可以进行后台操作。
Discuz!论坛搭建完毕,论坛后台设置及功能设置有需要的朋友自行查找资料了解。