LAMP平台部署及应用(一)

 

1. LAMP平台概述

LAMP架构是目前应用最为成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP这个词是一个缩写,具体包括:Linux操作系统、Apache网站服务器、MySOL数据库服务器,PHP (或PerI、Python)网页编程语言。

1.1 LAMP平台的构成组件

在LAMP平台的四个构成组件中,每一个组件都承担着一部分关键应用。经过过去十几年的发展,各组件间的兼容性得到了不断的完善,协作能力和稳定性也不断增强,可以构建出非常优秀的Web应用系统。各组件的主要作用如下。

➣  (平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。

➣  (前台)Apache:作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。

➣  (后台)MySOL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。

➣  (中间连接)PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。

 

1.2 LAMP平台的应用优势

构成LAMP平台的四个组件中,每一个都经历了数十年之久的企业应用的考验,各自都是同类软件中的佼佼者,从而成为典型的“黄金搭档”,其主要优势体现在以下几个方面:

➣   成本低廉:构成组件都是开放源代码的软件,可以自由获得和免费使用,在技术上和许可证方面没有太严格的限制,大大降低“企业实施成本。

➣   可定制:拥有大量的额外组件和可扩展功能的模块,能够满足大部分企业应用的定制需求,甚至可以自行开发,添加新的功能。

➣   易于开发:基于LAMP平台的动态网站中页面代码简洁,与HTML标记语言的结合度非常好,即便是非专业的程序员也能够轻松读懂乃至修改网页代码。

➣   方便易用:PHP,Perl等属于解释性语言,开发的各种程序不需要编译,方便进行移植使用。整套的网站项目程序,通常只要复制到网站目录中,就可以直接访问了。

➣   安全和稳定:得益于开源的优势,大量的程序员在关注并持续改进着LAMP平台的各个组件,发现的问题能够很快得到解决。LAMP架构已经历了数十年的长期验证,在安全性和稳定性方面表现得非常优秀。

在构建LAMP平台时,各组件的安装顺序依次为Linux、Apache、MySQL,PHP。其中Apache和MySQL的安装并没有严格的顺序;而PHP环境的安装一般放到最后,负责沟通Web服务器和数据库系统以协同工作。

 

2. 构建PHP运行环境

PHP即"PHP Hypertext Preprocessor"(超级文本预处理语言)的缩写,是一种服务器端的HTML嵌入式脚本语言。PHP的语法混合了C,Java,Perl以及部分自创的新语法,拥有更好的网页执行速度,更重要的是PHP几乎支持所有流行的数据库。在数据库层面的操作功能十分强大,而且能够支持UNIX、Windows、Linux等多种操作系统。

本节将学习如何构建PHP运行环境以实现LAMP协同架构。其前提条件是服务器已经编译安装好”Apache HTTP Server“和MySQL数据库。

HTTP网站服务和MySQL数据库服务的安装请参考前面的章节。

 

2.1 安装PHP软件包

PHP项目最初由Rasums Lerdorf在1994年创建,1995年发布第一个版本PHP1.0,目前已更新到5.3.×版本。本章将以最新的稳定版源码包PHP-5.3.6.tar.gz为例,该版本可以从PHP官方站点http://www.php.net/downloads/下载。

 

1. 准备工作

为了避免发生程序冲突等现象,建议先将RPM方式安装的pnp及相关依赖包(如里有的话)卸载。例如,根据实际安装情况可卸载php、pnp-cli、php-ldap、php-common、pnp-mysql等。 


[root@mysql mysql]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps


 

2.安装扩展工具库

在实际企业应用中,一部分基于PHP开发的Web应用系统会需要额外的扩展工具,如数据加密工具libmcrypt,mhash,mcrypt等(可以从站点sf.net下载)。安装php软件包之前,应先安装好这些扩展工具程序。

 

1)安装libmcrypt


[root@mysql home]# tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/

[root@mysql home]# cd /usr/src/libmcrypt-2.5.8/

[root@mysql libmcrypt-2.5.8]# ./configure

[root@mysql libmcrypt-2.5.8]# make && make install

[root@mysql libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/


 

2)安装mhash 


[root@mysql home]# tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/

[root@mysql home]# cd /usr/src/mhash-0.9.9.9/

[root@mysql mhash-0.9.9.9]# ./configure

[root@mysql mhash-0.9.9.9]# make && make install

[root@mysql mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash* /usr/lib/


 

3)安装mcrypt


[root@mysql home]# tar zxf mcrypt-2.6.8.tar.gz -C /usr/src/

[root@mysql home]# cd /usr/src/mcrypt-2.6.8/

[root@mysql mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH

[root@mysql mcrypt-2.6.8]# ./configure

[root@mysql mcrypt-2.6.8]# make && make install




3.编泽安装PHP 

 

1)解包

将下载获得的PHP源码包解压并释放至/usr/src/目录下,切换到展开后的源码目录。


[root@mysql home]# tar zxf php-5.3.6.tar.gz -C /usr/src/

[root@mysql home]# cd /usr/src/php-5.3.6/



2)配置

在定制PHP的配置选项时最关键的是要指定httpd,mysqld的安装路径,以便添加相关支持设置,使LAMP各组件协同工作。除此以外还可以指定安装路径启用多字节支持,加密扩展支持等。

[root@mysql php-5.3.6]# yum install libxml2

[root@mysql php-5.3.6]# yum -y install libxml2-devel

[root@mysql php-5.3.6]# ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php5 --enable-mbstring

 

上述配置命令中,各选项的含义如下所述。

➣   --prefix:指定将PHP程序安装到哪个目录,如/usr/local/php5。

➣   --with-mcrypt:加载数据加密等扩展工具支持。

➣   --with-apxs2:设置“Apache HTTP Server”提供的apxs模块支持程序的文件位置。

➣   --with-mysql:设置MySOL数据库服务程序的安装位置。

➣   --with-config-file-path:设置PHP的配置文件php.ini将要存放的位置。

➣   --enable-mbstring,启用多字节字符串功能,以便支持中文等代码。

 

3)编译及安装

[root@mysql php-5.3.6]# make

[root@mysql php-5.3.6]# make install

编译的过程可能会需要较长时间,需耐心等待。若期间未出现锗误,郡么程序的安装过程就基本完成了。接下来需要对LAMP组件环境进行适当的配置并验证是否能够协同工作。

 

2.2 设置LAMP组件环境

在设置LAMP组件环境时主要包括对PHP的配置文件php.ini,Apache的配置文件httpd.conf的调整。前者用来确定PHP的运行参数,后者用来加载libphp5.so模块,以便支持PHP网页。

 

1.  php.ini配置调整

1)php.ini的建立及基本设置

安装好php软件包以后服务器并不会自动创建php.ini配置文件,但在源码目录下提供了两份样例,配置文件分别对应于开发环境,生产环境。

[root@mysql ~]# ls /usr/src/php-5.3.6/php.ini-*

/usr/src/php-5.3.6/php.ini-development   <==开发版样例文件,用于学习,测试

/usr/src/php-5.3.6/php.ini-production <==开发版样例文件,用于实际运营

 

选择其中一个样例文件并复制到PHP的配置文件目录(如/usr/local/php5/,应确保与configure步骤中指定的路径一致),并改名为php.ini。在php.ini配置文件中,以分号开头的内容表示注释信息。


[root@mysql ~]# cp /usr/src/php-5.3.6/php.ini-development /usr/local/php5/php.ini

[root@mysql ~]# grep -v "^;" /usr/local/php5/php.ini | grep -v "^$"

[PHP]

engine = On

short_open_tag = Off

asp_tags = Off



......  //省略部分内容


通过修改php.ini文件中的配置内容,可以控制PHP网页的执行特性。如是否允许用户上传文件、设置上传文件的大小限制、设置默认使用的字符集,加载额外的扩展模块等。如果没有特别要求,可以直接沿用默认配置,不做任何修改。


[root@mysql ~]# vim /usr/local/php5/php.ini 

......  //省略部分内容

default_charset = "utf-8"     <==设置默认字符集为utf-8 

file_uploads = On             <==允许通过PHP网页上传文件

upload_max_filesize = 2M      <==允许上传的文件大小限制

max_file_uploads = 20         <==每个HTTP请求最多允许上传的文件数

post_max_size = 8M            <==每次通过表单POST提交的数据量限制

short_open_tag = On           <==允许识别PHP短语法标记,即<?...?>


 

2)添加ZendGuardLoader优化模块

为了进一多提高程序的执行效率,优化页面加载速度,可以为PHP添加Zend公司开发的ZendGuardLoade”优化模块。若需要加密PHP代码以限制未经授权的分发,还可以购买该公司的ZendGuard软件。

 

(1)首先将下载的ZendcardLoader包释放,并将其中pnp-5.3.X目录下的模块文件复制到程序的模块文件夹。


[root@mysql home]# tar zxf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz -C /usr/src/

[root@mysql home]# cd /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/

[root@mysql php-5.3.x]# cp ZendGuardLoader.so /usr/local/php5/lib/php/


 

(2)然后修改php.ini配置文件,添加加载及启用ZendGuardLoader.so模块的配置语句。


[root@mysql php-5.3.x]# vim /usr/local/php5/php.ini 

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so

zend_loader.enable=1


 

2.httpd.conf配置调整

要让httpd服务器支持PHP页面解析功能,需通过LoadModule配置项加载程序的模块文件,并通过AddType配置项添加对”.php",类型网页文件的支持,除此以外还应修改Directoryindex配置行,添加inaex.php项,以识别常见的PHP首页文件。

[root@mysql php-5.3.x]# vim /usr/local/httpd/conf/httpd.conf

LoadModule php5_module        modules/libphp5.so

AddType application/x-httpd-php .php

DirectoryIndex index.php index.html

[root@mysql php-5.3.x]# /usr/local/httpd/bin/apachectl restart   <重启服务以更新配置

在上述配置内容中,LoadModule行应该会在安装php的过程中自动添加,其中的php5_module表示模块名称;modules/libphp5.so是模块文件位置。而AddType行需要手动添加,DirectaryIndex行在原有基础上对其进行修改即可。

 

2.3 测试LAMP协同工作

完成PHP相关软件的安装,调整配置以后,应进行必要的功能测试,以验证LAMP 平台各组件是否能够协同运作。在网站根目录下创建相应的PHP测试网页,然后通过浏览器进行访问,根据显示结果即可判断LAMP平台是否构建成功。

下面分别从PHP网页的解析,通过PHP页面访问mysql数据库这两个方面进行测试。

要想测试PHP环境是否能够正常工作,需要建立一个使用PHP语言编写的网页文件,并通过httpd服务器发布在浏览器中对其进行访问。由于PHP语言并非本章学习的重点,这里不做过多的讲解。用于测试时,只需要建立一个简短的PHP测试文件即可。

 

1. 测试PHP网页能否正确显示

编写一个".php"格式的测试网页文件,使用PHP内建的'phpinfo()”函数显示服务器的PHP环境信息,PHP代码应包括在”<?php...?>”标记之间。将测试网页文件放置到网站根目录下,如/usr/local/httpd/htdocs/test1.php。


[root@mysql ~]# vim /usr/local/httpd/htdocs/test1.php

<?php

phpinfo( );

?>


然后通过浏览器访问测试网页,如http://www.sky.com/test1.php。若能够看到程序的版本号,配置命令,运行变量等相关信息,如图所示,则表示此Web服务器已经能正常显示PHP网页。若还能看到Zend引擎相关信息,则表示ZendGuardLaader模块也已启用成功。

lamp架构和kep lamp平台构成组件_lamp架构和kep

 

2.测试PHP网页能否访问MySQL数据库

再编写一个测试网页文件test2.php,添加简单的数据库操作命令用于验证与MySQL服务器的连接,查询等操作,其中”mysql_connect()”函数用于连接MySQL 据库,需要指定目标主机地址以及授权访问的用户名,密码。


[root@mysql ~]# vim /usr/local/httpd/htdocs/test2.php

<?php

$link=mysql_connect('localhost','root','123456');     <==连接MySQL数据库       

if($linkecho "恭喜你,数据库连接成功啦!!";          <==连接成功时的反馈消息                 

mysql_close();                                        <==关闭数据库连接                                   

?>


然后通过浏览器访问测试网页,如http://www.aaa.com/test2.php。若能看到成功连接的提示信息,如图所示,则表示能够通过PHP网页访问MySQL数据库。当使用了错误的用户名密码,或者mysql未运行而导致连接失败执行时将会报错。

lamp架构和kep lamp平台构成组件_PHP_02

 

3. LAMP架构应用实例

在企业Web应用系统中动态网站已经逐步成为主流,而基于LAMP架构的Web动态网站更是其中的佼佼者。本节将介绍一个LAMP架构协同应用的实例——phpMyAdmin 管理套件的部署及使用。

3. 1 部署phpMyAdmin系统

phpMyAdmin是一个使用PHP语言编写,用来管理MySQL数据库的Web应用系统。通过该套件提供的网页界面,即便是对SQL语句不太熟悉的人,也能够非常容易地对MySQL数据库进行管理和维护。

phpMyAdmin的源码包可以从其官方站点http://www.phpadmin.net中下载。下面以多国语言版源码包pnpMyAdmin-3.3.10-all-languages.tar为例介绍ppMyAdmin套件的部署过程。

 

1.解包并复制到网站目录

对于大部分PHP应用系统来说,只需要解包后复制到网站目录下即可完成部署,之后再根据需要调整配置,或者访问安装页面以完成进一步的安装、例如若要将phpMyAdmin 套件部署到网站根目录下以便通过地址http://www.sky.com/phpMyAdmin/访问,可以参考以下步骤。


[root@mysql home]# tar zxf phpMyAdmin-3.3.10-all-languages.tar.gz 

[root@mysql home]# mv phpMyAdmin-3.3.10-all-languages/ /usr/local/httpd/htdocs/phpMyAdmin


 

2.建立配置文件config.inc.php 

将phpMyAdmin套件复制到网站目录以后,还需要创建配置文件方可正常使用。默认提供的样例配置文件为config.sample.inc,需参照该文件内容建立config.inc.php配置文件。查找并修改配置文件中的”blowfish_secret行“并设置一个短语密钥,此密钥用于网页cookie认证,不需要用户记忆)。


[root@mysql home]# cd /usr/local/httpd/htdocs/phpMyAdmin/

[root@mysql phpMyAdmin]# cp config.sample.inc.php config.inc.php

[root@mysql phpMyAdmin]# vim config.inc.php

$cfg['blowfish_secret'] = 'qwe.123';


 

3.访问phpMyAdmin的Web管理界面

在浏览器中访问http://www.sky.com/phpMyAdmin/如果能够看到phpMyAdmin系统的登录界面,如图所示,则表示部署成功。使用MySQL数据库的用户(不能是密码为空的用户)登录后即可在授权范围内对数据库进行管理。

lamp架构和kep lamp平台构成组件_lamp架构和kep_03

phpMyAdmin系统默认使用cookie认证方式,在首次访问时页面下方可能会提示"必须启用cookies才能登录",要求客户机的浏览器启用cookies机制。实际上大多数浏览器默认都是支持cookies的,因此按F5键刷新页面后该提示信息即会消失。

 

3.2 使用phpMyAdmin系统

需要使用phpMyAdmin系统时应先通过MySQL服务器中授权的数据库用户(如roo)进行登录,认证成功后可以看到管理界面,如图所示。通过phpMyAdmin套件,用户可以在授权的范围内执行各种数据库管理操作,使界面更加直观,友好,大大降低了远程维护MySQL数据库服务器的难度。

lamp架构和kep lamp平台构成组件_mysql_04

如果报错:#2002 无法登录 MySQL 服务器   解决方法如下:


[root@mysql ~]# vim /usr/local/httpd/htdocs/phpMyAdmin/config.inc.php

$cfg['Servers'][$i]['host'] = 'localhost'

将localhost改为127.0.0.1

$cfg['Servers'][$i]['host'] = '127.0.0.1';



管理页面的初始界面是一个典型的分栏结构,左侧部分包括一排导航按钮(主页、退出、查询,帮助,SOL文档)库列表;右侧部分是主体窗口,其中显示了若干导航链接、操作面板、界面控制等组件,以及网站服务器中phpMyAdmn的版本信息。下面仅简单介绍phpMyAdmin系统中几个常见的数据库操作。

 

1.创建新的库、新的表

若要创建新的库,可以在管理主页中的创建部分进行操作,如图所示,或者单击右侧的数据库链接,然后在下方的新建数据库部分进行操作。例如指定新建的库名称为ceshi,使用的校对规则选择utf-8_general_ci,然后单击“创建”按钮即可新建ceshi库。

lamp架构和kep lamp平台构成组件_mysql_05

回到管理界面主页,选择左侧列表中新建的ceshi库,在右侧的结构标签页下方,可以输入新的表名,字段数,如图所示。单击”执行“按钮然后根据页面内容设置各字段的名称,类型(对于要包含中文数据的字段类型应选用STRING栏下的CHAR、VCHAR等),长度等要素后,单击"保存"按钮即可新建指定的表。

lamp架构和kep lamp平台构成组件_PHP_06

 

2. 表及数据记录的管理

选中指定库中的表,单击操作栏的

lamp架构和kep lamp平台构成组件_lamp架构和kep_07

按钮可分别进行浏览数据,修改表结构,搜索数据,插入数据,清空表,删除表的操作,如图所示。 

lamp架构和kep lamp平台构成组件_mysql_08

值得注意的是,如果数据库,表中需要记录包含中文的数据,应确保LAMP平台各组件使用相同的字符集(如UTF-8),否则可能会出现乱码的情况,在编码一致的前提下,新建数据库,表以及插入,浏览记录时,都可以正常使用中文,如图所示。

lamp架构和kep lamp平台构成组件_mysql_09

 

3. 直接执行MySQL查询语句

在管理界面的主页中,单击左侧导航栏的图标,可以打开SQL查询窗口。在该窗口中,可以直接输入MySQL操作语句,如图所示,并通过单击右下方的”执行“按钮来完成相应的管理任务。

lamp架构和kep lamp平台构成组件_php_10

lamp架构和kep lamp平台构成组件_lamp架构和kep_11

对于非常熟悉MySQL语句的维护人员来说,直接使用查询窗口将更加有效率。如果有已经编写好的SQL脚本文件,还可以切换到"导入文件"标签页,选择文件位置并导入后再执行,非常方便。

lamp架构和kep lamp平台构成组件_lamp架构和kep_12

 

 

LAMP平台部署及应用(二)

1. 网站社区概述

交流和服务功能的网站,都可以称之为“社区“网站。这其中包括各种技术论坛,校友录、交友网站、在线游戏平台等。

下面介绍常见的几种社区网站类型。

 

1.BBS,论坛

坛“,表示可以自由发言、讨论交流的网站平台。通过论坛系统,每个参与的用户都能够发表自己的言论(即”发帖”),也可以回复他人的言论(即”回帖“)。论坛广泛应用于技术交流、售前/售后服务、资源发布,聊天交友等各种领域。

术交流论坛有51CTO,ChinaUnix、CSDN、Net130,54master等,综合娱乐社区有猫扑,天涯、泡泡、网易等。

 

2.BLOG,博客;PodCast,播客

后简写为BLOG,在国内一般称为"博客"表示可以撰写,展示个人日记的网站平台。对于用户来说,博客就相当于自己的个人网站,可以在博客中发表自己写的文章,生活照片,技术资料等各种图文信息(电子版的日记),并与访问自己博客的其他用户进行交流。国内的新浪,搜狐,网易等大型门户网站,以及51CTO,ChinaUnix、CSDN等众多专业技术网站也都提供个人博客服务。

目前比较流行的"微博"指的是微型博客 ·  ·  · 每条博客记录往往只有一两句话,字数较少对版面要求不高,因此更方便移动终端(如手机,平板电脑)用户的使用。

       PodCast的名字来源于苹果的iPod(一款多媒体播放器)与broadcast(广播),在国内一般称为播客。表示可以通过声音和视频来展现个人生活看法的网站平台、播客相当于博客的多媒体版,不仅可以记录图片和文字,而且还可以记录声音和视频,为用户提供更丰富的内容表达形式。播客服务网站主要集中在视频分享等娱乐领域,如新浪,土豆,六间房,优酷等,而技术方面的播客相对比较少。

 

3.SNS,社交网络

为”社交网络’,表示可以为人们提供一个社交圈子的网站应用平台,主要基于熟人,朋友,同学,共同兴趣者等关系进行构筑。

       SNS网络的含义比较宽泛不仅包括论坛、博客,博客圈等子系统还会提供社交式的游戏(如种菜,经营牧场,虚拟婚姻)等网站应用,以加强用户之间的相互沟通。较知名的社交网站有人人网,开心网,中国同学录,QQ社区等。

       对于广大IT技术学习者来说,若要获得技术上的不断进步,可以多参与相关的技术交流论坛,创建并编写自己的技术博客;若要获得更好的人脉关系,拓展人际交往能力可以参与各种社交网站。

 

2. 安装Discuz!论坛系统

       Crossday Discuz!Board论坛系统(简称Discuz!论坛)是一个采用PHP和MySQL等数据库构建的高效论坛解决方案。作为商业软件产品,Discuz!在代码质量、运行效率,负载能力,安全性能及可操控性等方面都拥有良好的口碑。

       Discuz!的源代码可以免费获得,任何人都可以对其进行安装,使用,并在授权协议范围内对其进行更改。只要不将该论坛程序应用于商业用途,用户则无需购买商业授权。通过Discuz!可以在最短的时间内架设一个功能全面、性能稳定的社区论坛平台。

本节主要讲解在LAMP平台中Discuz!论坛的部署及安装测试过程。

 

2.1 服务器端的部署

在部署一台论坛服务器之前,需要完成相应的准备工作,然后下载Discuz!系统的程序文件并上传到网站相应的目录,下面分别讲解这些步骤。

 

1.准备工作

       首先应准备一台能够解析PHP网页,支持数据库的网站服务器,其中Apache,PHPMySQL组件的版本应符合Discuz!系统的最低要求(详见其官方说明),这里以此前源码编译构建的LAMP平台为例,默认首页设置为index.php。

       其次,应确定论坛服务器的域名、IP地址以及访问论坛的URL地址。Discuz!论坛支持作为独立的网站运行,如http://bbs.sky.com;也可以作为网站的一个目录,如http://www.sky.com/bbs/,具体访问方式由网站管理员根据所注册的DNS域名而定。在本节的案例中将使用http://www.sky.com/bbs/来访问Discuz!论坛系统。

       最后启动httpd,mysqld服务器程序,并创建数据库及授权用户。Discuz!论坛系统需要使用MySQL数据库来存放各种信息,因此在安装之前应提供一个可用的库以及能够读写该库的用户。例如,若要新建库bbsdb,并授权用户runbbs能从本机全权访问,密码设置为"adm123”,可以执行以下操作。

mysql> CREATE DATABASE bbsdb;

Query OK, 1 row affected (0.00 sec)

 

mysql> GRANT all ON bbsdb.* TO 'runbbs'@'localhost' IDENTIFIED BY 'adm123';

Query OK, 0 rows affected (0.00 sec)

 

2.下载并确认程序代码

访问Discuz!论坛的官方网站http://www.discuz.net下载Discuz!论坛程序的最新版本,在后续内容中将以UTF-8编码的简体中文完整版Discuz_7.2_FULL_SC_UTF-8为例。

解压Discuz_7.2_FULL_SC_UTF-8文件包,其中默认包括“readme、upload,utilpties”三个文件夹,readme目录下包括软件简介,安装说明,版本更新日志等文件,upload是需要上传到网站中的论坛代码目录,utilities目录下包括一些额外的工具网页,解压此文件包可以执行以下操作。


[root@mysql home]# unzip Discuz_7.2_FULL_SC_UTF8.zip -d DiscuzPkg

[root@mysql home]# ls -lh DiscuzPkg/

总用量 12K

drwxr-xr-x.  2 root root 4.0K 1月   6 2010 readme

drwxr-xr-x. 18 root root 4.0K 1月   6 2010 upload

drwxr-xr-x.  2 root root 4.0K 1月   6 2010 utilities


 

3.部署Discuz!论坛代码

Discuz!论坛代码对应解包后的upload目录,因此需要将此目录上传到网站中,具体位置由网站管理员指定。例如,若网站www.sky.com的根目录为var/www/html/,希望通过http://www.sky.com/bbs/的URL地址来访问Discuz!论坛,则应该将upload复制或移动到/var/www/html/目录下,并改名为bbs。具体操作如下。


[root@mysql home]# mv DiscuzPkg/upload/ /var/www/html/bbs



上述操作是针对由网站管理员在论坛服务器本机进行操作的情况。对于授权的个人网站用户来说则应该使用FlashFXP等FTP客户端软件来进行上传而不是直接复制。

将论坛代码部署到网站目录的相应位置以后,为了确保Discuz!论坛程序有权限写入数据(如用户发帖,上传图片等) ,还应该调整几个子目录的权限或属。所要调整的目录包括templates/、attachments/、forumdata/,uc_client/data/cache/以及配置文件config.inc.php。调整的原则是确保httpd的运行用户(默认为daemon)能够对上述目录及文件进行可读,可写操作。


[root@mysql home]# grep "^User" /usr/local/httpd/conf/httpd.conf      <==确认httpd运行用户

User daemon

[root@mysql home]# cd /var/www/html/bbs/

[root@mysql bbs]# chown -R daemon templates/ attachments/ forumdata/

[root@mysql bbs]# chown -R daemon uc_client/data/cache/ config.inc.php        <==调整目录及文件归属

[root@mysql bbs]# ls -ld templates/ attachments/ forumdata/        <==确认读写权限

drwxr-xr-x.  2 daemon root 4096 1月   6 2010 attachments/

drwxr-xr-x.  9 daemon root 4096 1月   6 2010 forumdata/

drwxr-xr-x. 11 daemon root 4096 1月   6 2010 templates/


 

2.2 论坛的安装过程

完成2.1小节中的部署工作以后,接下来可以安装Discuz!论坛了。在浏览器中访问地址http://www.sky.com/bbs/install/,将会打开论坛的安装程序,然后根据页面提示即可逐步完成安装过程。

 

1.接受授权协议

单击’我同意"按钮,接受中文版授权协议,如图所示,以便正式开始安装,否则安装过程将无法继续。

lamp架构和kep lamp平台构成组件_mysql_13

 

2.检查环境及目录、文件权限

接下来在正式安装之前,安装程序会检查软件需求、磁盘空间、目录和文件权限、PHP函数支持等是否满足条件。所有的检查项目均应为lamp架构和kep lamp平台构成组件_lamp架构和kep_14状态,如图所示,否则可能会导致安装失败。

lamp架构和kep lamp平台构成组件_PHP_15

对于检测结果中发现的问题,必须先妥善解决以后再继续进行安装。例如,若在此处发现某些必需的目录为不可写状态,则应参照2.1小节中部署代码的过程设置相应目录的权限,然后刷新安装页面即可。确认所有检查结果都正常后,单击”下一步”按钮继续安装过程。

 

3.安装数据库、设置管理员账号

正确填写为Discuz!论坛准备的MySQL数据库相关信息,包括服务器地址,库名、授权用户及密码,确保与服务器端的部署设置一致,如图所示。除此以外还应为论坛管理员账号admin设置密码,若有必要也可以更改此账号名。

lamp架构和kep lamp平台构成组件_mysql_16

 

若设置无误则单击“下一步”按钮后将会执行数据库安装操作(时间很短) ,完成后会自动进入下一页面。

 

4.完成论坛安装

当出现“关于《康盛改善计划的说明》”的页面时表示Discuz!论坛已经成功安装完毕。在此页面中,用户可以输入QQ、MSN、E-mail等联系信息,保持与Discuz!厂商的沟通,若不需要相关功能,可直接单击"跳过本步"按钮,如图所示,以完成安装。

lamp架构和kep lamp平台构成组件_php_17

上一步骤结束后,界面通常会自动跳转Discuz!区的首页。当然,用户也可以直接访问http:/www.sky.com/bbs来打开此页面,如图所示。新安装的Discuz!论坛只包括一个“默认版块”,论坛名称、站点LOGO图片等也都是默认的。

lamp架构和kep lamp平台构成组件_mysql_18

5. 安装后的处理

完成Discuz!论坛的安装以后,为了避免重复安装,减少安全隐患。应该将install/目录进行转移,并限制访问权限。例如可将install改名为install.lock/,并将权限设置为600。


[root@sky ~]# cd /var/www/html/bbs/

[root@sky bbs]# mv install/ install.lock

[root@sky bbs]# chmod 600 install.lock/

[root@sky bbs]# ls -ld install.lock/

drw-------. 3 root root 4096 1月   6 2010 install.lock/


 

3. 使用Discuz!论坛系统

Discuz!论坛系统包括前台,后台两套网页程序。前台即正常的论坛入口,提供给所有用户访问:后台则作为管理员入口,只在执行论坛管理任务时才会使用。下面仅分别介绍Discuz!论坛的后台管理,前台使用这两个方面的基础知识,更多操作还需要大家自行探索和尝试。

3. 1 后台管理设置

在浏览器中访问http://www.sky.com/bbs/admincp.php可以进入Discuz!论坛的管理中心,登录界面如图所示。若提示"您无权访问管理面板 ·  ·  ·  ·  ·  · "请先以管理员用户登录论坛前台,然后单击右上方的"管理中心"链接也可以打开该页面。

lamp架构和kep lamp平台构成组件_lamp架构和kep_19

 

成功登录以后将会看到Discuz!管理中心的控制面板,如图所示,在此页面中能够执行各项论坛管理任务。

lamp架构和kep lamp平台构成组件_PHP_20

 

1. 全局设置

单击控制面板顶部的“全局”链接可以打开论坛站点的全局设置页,自行定义站点信息,注册与访问控制,优化设置、安全验证,时间设置等各种信息。如通过“站点信息”可以设置论坛名称,网站名称等论坛基本信息,如图所示。

lamp架构和kep lamp平台构成组件_php_21

 

通过‘注册与访问“可以设置是否开放注册,新用户是否需要验证,新用户的见习时间以及允许访问本论坛的IP地址等,如图所示。

lamp架构和kep lamp平台构成组件_php_22

 

通过”优化设置“可以启用搜索引擎优化,URL静态化,以及调整页面缓存,服务器优化等相关设置,如图所示。

lamp架构和kep lamp平台构成组件_mysql_23

 

2.定义论坛版块

版块的划分应根据论坛实际的定位和需求来定,以便用户在使用论坛时感觉层次清晰,一目了然。例如”学员交流中心”主要面向学员提供交流平台,分享和讨论的内容也只限于技术,因此可以划分三个大版块:网络及硬件,Windows技术、Linux技术。

单击控制面板顶部的”版块“链接,可以打开Discuz!论坛的版块管理页,便于新建,删除版块或子版块,以及设置版块显示顺序,指定版主账号等。例如可以参考以下设置来规划“学员交流中心”的论坛版块,如图所示,其中的站务公告区可作为管理员与论坛用户的交互区域。

lamp架构和kep lamp平台构成组件_lamp架构和kep_24

 

3.管理论坛用户

单击控制面板顶部的”用户“链接,可以打开Discuz!论坛的用户管理页,能够添加或删除用户,以及添加管理员用户,禁止用户发帖等。例如,通过”添加用户“可以添加用户账号,同时指定其所在的组,如图所示。

lamp架构和kep lamp平台构成组件_mysql_25

 

3.2 前台基本使用

通过Discuz!论坛的后台管理页面所做的修改,包括站点名称,版块调整,页面风格等,将会在前台页面中得到体现。在浏览器中访问http://www.sky.com/bbs/可以看到更新后的论坛首页,如图所示。

lamp架构和kep lamp平台构成组件_php_26

 

下面分别介绍最基本的论坛使用操作。

1. 注册论坛用户

几乎所有的论坛都要求用户进行注册,否则将视为”游客“,游客通常只能查看其他人所发的帖子,而不能发表自己的帖子。在Discuz!论坛中,单击页面上方的’注册”链接可以打开用户注册页面,用户根据表单内容填写相关内容并提交即可,如图所示。

lamp架构和kep lamp平台构成组件_php_27

根据论坛的安全性设置不同,部分论坛可能会要求进行邮件验证,还有一部分论坛会需要人工审核,在此之前会限制用户登录或限制发帖。注册及验证设置都可以通过Discuz!论坛的后台管理页面完成。

lamp架构和kep lamp平台构成组件_mysql_28

 

2.发表帖子、浏览帖子、回复帖子

单击Discuz!论坛上方的"登录"链接,使用已注册的用户账号进行登录,如图 所示,登录成功后就可以发表新的主题帖了。例如,注册用户若要在“Linux技术“版块中发表一个新的帖子,可以先进入“Linux技术"版块,然后单击上方的"发帖"按钮,将会打开”发新话题"编辑窗口,如图所示。输入帖子标题及内容后,单击下方的”发新话题"按钮即可完成发帖。

lamp架构和kep lamp平台构成组件_lamp架构和kep_29

单击“Linux技术"版块可以看到刚发表的帖子已经列出,如图所示,单击帖子标题即可查看帖子内容。

lamp架构和kep lamp平台构成组件_PHP_30

若要对指定的帖子内容进行回复,可以在主题帖的下方直接输入新的内容,然后单击“发表回复”按钮即可,如图所示。通过发帖与回帖机制,论坛中的所有用户都能够对某一主题发表各自的看法、相互交流意见,从而形成融洽的讨论氛围。

 

3.使用论坛短消息

在Discuz!论坛系统中,除了多人参与的发帖及回帖活动以外,注册用户之间还可以通过“短消息”进行点对点交流。登录论坛以后,单击上方的“短消息”链接将打开短消息面板,用户可以阅读收到的短消息、发表新短消息,如图所示。

发送给指定用户的短消息,对方会在刷新页面或下次登录时收到提醒。对于收到的短消息,用户可以进行回复。

lamp架构和kep lamp平台构成组件_lamp架构和kep_31