天天看点

LAMP环境下搭建discuz论坛

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

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

1

2

3

<code>[root@yong src]</code><code># mkdir /data/www</code>

<code>[root@yong src]</code><code># cd /data/www/</code>

<code>[root@yong www]</code><code># wget  http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip</code>

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

<a href="http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip" target="_blank"></a>

<code>[root@yong www]</code><code># unzip Discuz_X3.2_SC_GBK.zip </code>

<code>[root@yong www]</code><code># ls</code>

<code>Discuz_X3.2_SC_GBK.zip  readme  upload  utility</code>

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

<code>[root@yong www]</code><code># mv upload/* .</code>

<code>[root@yong www]</code><code># rm -rf upload/</code>

启动apache

<code>[root@yong www]</code><code># /usr/local/apache2/bin/apachectl start</code>

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

<code>[root@yong www]</code><code># ln -s /usr/local/apache2/bin/apachectl /usr/bin/</code>

<code>[root@yong www]</code><code># apachectl -t</code>

<code>Syntax OK</code>

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,删除一段多余的;

&lt;VirtualHost *:80&gt;

    DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"    #存放文件的地址

    ServerName dummy-host.example.com         #网站域名,可以自定义一个;

    ErrorLog "logs/dummy-host.example.com-error_log"             #错误日志

    CustomLog "logs/dummy-host.example.com-access_log" common    #自定义的日志;

&lt;/VirtualHost&gt;

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

&lt;VirtualHost *:80&gt;

    DocumentRoot "/data/www"

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

4

<code>[root@yong www]</code><code># curl -x127.0.0.1:80 www.123.com</code>

<code>&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;</code><code>/h1</code><code>&gt;&lt;</code><code>/body</code><code>&gt;&lt;</code><code>/html</code><code>&gt;</code>

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

5

6

<code>[root@yong www]</code><code># apachectl graceful</code>

<code>httpd not running, trying to start</code>

<code>(98)Address already </code><code>in</code> <code>use: make_sock: could not bind to address [::]:80</code>

<code>(98)Address already </code><code>in</code> <code>use: make_sock: could not bind to address 0.0.0.0:80</code>

<code>no listening sockets available, shutting down</code>

<code>Unable to </code><code>open</code> <code>logs</code>

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

<code>[root@yong www]</code><code># ps aux |grep httpd</code>

<code>[root@yong www]</code><code># killall httpd</code>

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

7

8

<code>[root@localhost www]</code><code># curl -x127.0.0.1:80 www.123.com</code>

<code>[root@localhost www]</code><code># curl -x127.0.0.1:80 www.123.com -I</code>

<code>HTTP</code><code>/1</code><code>.1 302 Found</code>

<code>Date: Wed, 29 Apr 2015 07:37:13 GMT</code>

<code>Server: Apache</code><code>/2</code><code>.2.29 (Unix) DAV</code><code>/2</code> <code>PHP</code><code>/5</code><code>.3.28</code>

<code>X-Powered-By: PHP</code><code>/5</code><code>.3.28</code>

<code>location: </code><code>install</code>

<code>Content-Type: text</code><code>/html</code>

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

<code>[root@yong www]</code><code># curl -x127.0.0.1:80 www.123.com -I</code>

<code>HTTP</code><code>/1</code><code>.1 403 Forbidden</code>

<code>Date: Wed, 29 Apr 2015 07:24:34 GMT</code>

<code>Server: Apache</code><code>/2</code><code>.2.15 (CentOS)</code>

<code>Accept-Ranges: bytes</code>

<code>Content-Length: 4954</code>

<code>Connection: close</code>

<code>Content-Type: text</code><code>/html</code><code>; charset=UTF-8</code>

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

&lt;Directory /&gt;

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    Deny from all

&lt;/Directory&gt;

更改为:order allow,deny

       allow from all

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

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

<code>[root@yong www]</code><code># apachectl restart</code>

<code>[Thu Apr 30 09:49:15 2015] [warn] NameVirtualHost *:80 has no VirtualHosts</code>

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

NameVirtualHost *:80

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

    DocumentRoot "/data/www"

    ServerName www.123.com

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

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

来自 192.168.20.20 的回复: 字节=32 时间=6ms TTL=64

来自 192.168.20.20 的回复: 字节=32 时间=2ms TTL=64

来自 192.168.20.20 的回复: 字节=32 时间&lt;1ms TTL=64

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

<a href="http://s3.51cto.com/wyfs02/M01/6C/3C/wKioL1VB9LWzdznFAASRW-1bV_w057.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M02/6C/3C/wKioL1VB9ayCybA4AAKLESkBdSY265.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M02/6C/40/wKiom1VB9G_h940EAAPr8d8j4Yg160.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6C/3C/wKioL1VB9lTQQWzqAAGCSKUNas8303.jpg" target="_blank"></a>

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

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

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

<a href="http://s3.51cto.com/wyfs02/M02/6C/3C/wKioL1VB9nayV-7tAACPY3Xdx10074.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M02/6C/40/wKiom1VB8yTRhRNvAACoVqpxATM675.jpg" target="_blank"></a>

需要填写数据库信息

<a href="http://s3.51cto.com/wyfs02/M00/6C/3C/wKioL1VB9pDTEYkKAAE0QheQ1SI367.jpg" target="_blank"></a>

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

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

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

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

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

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

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

<code>[root@yong www]</code><code># mysqladmin -uroot password '123456'</code>

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

<code>[root@yong www]</code><code># mysql -uroot -p123456</code>

<code>[root@yong www]</code><code># mysql -uroot -p</code>

<code>Enter password:</code>

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

<code>mysql&gt; create discuz;</code>

<code>mysql&gt; create database discuz; </code>

<code>mysql&gt; grant all on discuz.* to </code><code>'yong'</code><code>@</code><code>'localhost'</code> <code>identified by </code><code>'yong123'</code><code>; </code>

<code>mysql&gt; quit</code>

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

<code>[root@yong www]</code><code># mysql -uyong -pyong123</code>

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

<a href="http://s3.51cto.com/wyfs02/M02/6C/3C/wKioL1VB9y-ifgrjAAFn-u4xwa4347.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/6C/3C/wKioL1VB91Tinz-7AAM2pFUaW5U008.jpg" target="_blank"></a>

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

<a href="http://s3.51cto.com/wyfs02/M01/6C/40/wKiom1VB9gSgCN46AAEqWwf8YuE964.jpg" target="_blank"></a>

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

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