天天看點

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,如需轉載請自行聯系原作者