Linux系统中搭建LAMP动态博客网站

来源:互联网 发布:雷军投资知乎 编辑:程序博客网 时间:2024/05/01 19:37
在新Web2.0革命中,博客是最早出现的,也被更多的人所了解。博客的中文有两重含义,既指撰写个人网络日志的人(Blogger),也指承载个人网络日志的网站(Blog)。用全球最大博客网站Blogger.com的解释:“blog 可以是个人日记、每日道坛、合作空间、政治讲坛、特发新闻集散地、各种链接的汇集地、您的个人想法、世界大事备忘录等”,“简单地说,blog 是一个网站,您可以源源不断地往里填充内容。新内容显示在顶部,以便访问者能够阅读到最新内容。然后他们可以发表评论、进行链接或给您发电子邮件”。 显然最早的博客是作为网络“过滤器”的作用出现的,那就是挑选一些特别的网站,并作简单的介绍。因此有人认为浏览器发明人Marc Andreesen开发的Mosaic的What’s New网页就是最早的博客网页。Justin Hall的(http://www.links.net/vita/web/story.html)也是最早的博客网站原型之一。1998年诞生了博客这个概念并有了固定的网站。在美国2000年前后博客发展如火如荼,受到了社会普遍关注。美国很多政治、经济和文化届的名流都有自己的博客,并且这些博客有时就是一些重大新闻事件的源头,对社会有着深远的影响。

  目前LAMP (Linux + Apache + MySQL + PHP) 近几年来发展迅速,已经成为Web 服务器的事实标准。现在的Web网站已经不再是仅向浏览者或用户提供静态网页内容的浏览,而是要求能够和用户进行动态的信息交流的动态Web网站,所以,搭建Web网站平台不仅要支持简单的HTML网页浏览,更重要的是使Web站点能和用户实现一种动态的交互式操作。这就要求Web服务器在提供标准的HTML网页浏览之外提供一种能和用户交流的技术。这种技术不但要能够收集和反馈用户信息,还要支持数据库操作(把信息存入数据库和从数据库中检索信息)。PHP是一种跨平台的服务器端的嵌入式脚本语言,它大量的借鉴C、Java和Perl语言的语法,并加入了PHP自己的特性,使Web开发者能够快速地写出动态页面。PHP支持所有主流数据库。它是完全免费的,使用时不需要支付任何费用。本文将要搭建LAMP动态网站博客是基于Linux的完全免费的PHP技术的实现方法。

  一、软件的获得安装

    在整个配置过程中,我们使用的软件都是完全免费的开放源代码软件,可以从互联网上免费下载。在Linux下开发Web应用,一定要有一个HTTP服务器,这就是著名的Apache。当然数据库是一定少不了的,Linux支持多种数据库,包括像Oracle、DB2等这样大型的数据库。不过与PHP最为相配、也是运用最多的数据库当属MySQL了。另外PHP语言本身也是必不可少的。下面是它们相应的网站: Apache http://www.apache.org  ;MySQL http://www.mysql.com  ;PHP http://www.php.net 。就Apache而言,有1.3.X版本与2.X版本两个分支。由于2.X是在1.3.X上进行重写,因此在结构和功能上都有很大的改进。关于Apache 1.3.X的安装介绍比较多,故本文选用了Apache 2.X版本。同样,也选用了支持Apache 2.X版本的PHP版本。如何用Red Hat Enterprise Linux AS4.0+Apache+PHP +MySQL+bblog来架构动态网站论坛,所选取的是目前最新版本的软件,均从源代码开始编译,而不是下载二进制文件来进行安装。LAMP的具体安装过程,由于这方面文章比较多笔者就不赘述了。

   二、搭建bblog博客网站

  下面以Linux发行版Red Hat Enterprise Linux AS 4.0为例,介绍搭建bblog博客网站从安装到使用。

  bblog官方网站是http://www.bblog.com/ 最新版本:0.7.6。

  1. bblog软件下载:

#cd var/www/html

wegt http://jaist.dl.sourceforge.net/sourceforge/bblog/bBlog-0.7.6.tar.gz

#tar –zxvf bBlog-0.7.6.tar.gz  “建立一个目录”

  2.为bblog建立数据库:

# mysql –u root –p

Enter password: xxxxxxxxx

Your Mysql connection id is 3 to server version: 4.11

Type ‘help;’ or ‘/h’ for help. Type ‘/c’ to clear the buffer.

Mysql> create database bblog ;  “为phpbb2建立数据库”

Query OK, 1 row affected (0.01 sec)

Mysql>grant all privileges on bblog.* to bblog@localhost identified by ‘76543981’ ; “将建立的 bblog 权限给bblog 帐号,并且设定密码”

mysql>quit
Bye


  3. 测试刚建立的数据库与帐号是否可以使用:

# mysql –u bblog –p
Enter password: xxxxxxxxx

Your Mysql connection id is 3 to server version: 4.11

Type ‘help;’ or ‘/h’ for help. Type ‘/c’ to clear the buffer.

Mysql> connect bblog ;
Connection id:  5
Current database: bblog 

mysql>show databases;

+--------------+

| Database |

+--------------+

| mysql |

| bblog |

+--------------+

2 rows in set (0.00 sec)

mysql>quitquit
Bye


  2.为bblog建立数据库:

# mysql –u root –p

Enter password: xxxxxxxxx

Your Mysql connection id is 3 to server version: 4.11

Type ‘help;’ or ‘/h’ for help. Type ‘/c’ to clear the buffer.

Mysql> create database bblog ;  “为phpbb2建立数据库”

Query OK, 1 row affected (0.01 sec)

Mysql>grant all privileges on bblog.* to bblog@localhost identified by ‘76543981’ ; “将建立的 bblog 权限给bblog 帐号,并且设定密码”

mysql>quit
Bye


  3. 测试刚建立的数据库与帐号是否可以使用:

# mysql –u bblog –p
Enter password: xxxxxxxxx

Your Mysql connection id is 3 to server version: 4.11

Type ‘help;’ or ‘/h’ for help. Type ‘/c’ to clear the buffer.

Mysql> connect bblog ;
Connection id:  5
Current database: bblog 

mysql>show databases;

+--------------+

| Database |

+--------------+

| mysql |

| bblog |

+--------------+

2 rows in set (0.00 sec)

mysql>quitquit
Bye

#tar –zxvf bBlog-0.7.6.tar.gz  “建立一个目录”

  2.为bblog建立数据库:

# mysql –u root –p

Enter password: xxxxxxxxx

Your Mysql connection id is 3 to server version: 4.11

Type ‘help;’ or ‘/h’ for help. Type ‘/c’ to clear the buffer.

Mysql> create database bblog ;  “为phpbb2建立数据库”

Query OK, 1 row affected (0.01 sec)

Mysql>grant all privileges on bblog.* to bblog@localhost identified by ‘76543981’ ; “将建立的 bblog 权限给bblog 帐号,并且设定密码”

mysql>quit
Bye


  3. 测试刚建立的数据库与帐号是否可以使用:

# mysql –u bblog –p
Enter password: xxxxxxxxx

Your Mysql connection id is 3 to server version: 4.11

Type ‘help;’ or ‘/h’ for help. Type ‘/c’ to clear the buffer.

Mysql> connect bblog ;
Connection id:  5
Current database: bblog 

mysql>show databases;

+--------------+

| Database |

+--------------+

| mysql |

| bblog |

+--------------+

2 rows in set (0.00 sec)

mysql>quitquit
Bye


  2.为bblog建立数据库:

# mysql –u root –p

Enter password: xxxxxxxxx

Your Mysql connection id is 3 to server version: 4.11

Type ‘help;’ or ‘/h’ for help. Type ‘/c’ to clear the buffer.

Mysql> create database bblog ;  “为phpbb2建立数据库”

Query OK, 1 row affected (0.01 sec)

Mysql>grant all privileges on bblog.* to bblog@localhost identified by ‘76543981’ ; “将建立的 bblog 权限给bblog 帐号,并且设定密码”

mysql>quit
Bye


  3. 测试刚建立的数据库与帐号是否可以使用:

# mysql –u bblog –p
Enter password: xxxxxxxxx

Your Mysql connection id is 3 to server version: 4.11

Type ‘help;’ or ‘/h’ for help. Type ‘/c’ to clear the buffer.

Mysql> connect bblog ;
Connection id:  5
Current database: bblog 

mysql>show databases;

+--------------+

| Database |

+--------------+

| mysql |

| bblog |

+--------------+

2 rows in set (0.00 sec)

mysql>quitquit
Bye

  4.开始安装bblog :

  安装前需要说明的是:Mysql服务器名称为 localhost ,这个是 Mysql 的服务器名称,不是 Linux服务器名称。通常 Mysql 的服务器名称是: localhost 。Mysql 数据库名称为 bblog ,Mysql 帐号为 bblog 且密码为上面设定值。

#cd /var/www/html/bblog  #进入到Apache 服务器的确省目录中#
#chmod 777 cache#赋予文件和目录的可以执行权限#

#chmod 777 config.php 

#chmod 777 compiled_templates ;#chmod 777 cache/favorites.xml

#chmod 777 install.php  ;#chmod 777 install


  进行网络安装安裝非常简单,打开Linux的Firefox火狐浏览器在地址栏直接输入:http://主机名/bblog/install.php 后,出现一个协议书,选择同意后点击“NEXT”按钮,会出现对话框让你填写一些系统信息见图-1。

Linux系统中搭建LAMP动态博客网站

图-1 填写系统信息

  为了读者填写方便笔者把它作一个列表,填写内容分见表-1:

  表-1系统信息

填写系统信息

填写内容

说明

General Config

基本设定

Blog Name

Cjk

博客名称

Blog Description

My cjk

博客描述

Full Name

Caojh

全名

Username

Admin

管理员名称

Password

XXXXXXX

管理员口令

Re-enter Password

XXXXXXX

再次输入管理员口令

Email address

goodcjh@2911.net

系统管理员电子邮件

Mysql Setting

Mysql数据库设定

 

 

 

Mysql  Username

bblog

Mysql数据库用户帐号

Mysql  Password

XXXXXXXXXXX

Mysql数据库用户帐号密码

Mysql database name

bblog

 Mysql数据库用户帐号

Mysql  Host

localhost

Mysql数据库主机名称

table Prefix

Bb_

Mysql数据库表格字首

 

Server Config

服务器设定

Url to your blog

http://192.168.1.16/

Blog的完整URL

Path to bBlog

/var/www/html/bblog/

Bblog目录的完整UNIX路径

  填写结束后按“Next ” 按钮继续,所有配置结束后系统如果出现图2表示安装成功,如果有错误会自动退回到开始的对话框让你从新设定。

Linux系统中搭建LAMP动态博客网站

图-2系统设定成功

  5.安全设定

  测试成功后系统提醒你出于安全考虑,删除安装文件(防止他人使用这些文件修改系统信息)

#chmod 644 config.php

# rm –rf install ;# rm –rf install.Php

  6.博客的常规设置

  以系统管理员的身份登录,登录后对话框下边会出现“博客的管理员控制面板”(见图-3)。

Linux系统中搭建LAMP动态博客网站

图-3博客的管理员控制面板

  博客的管理员控制面板,一共十一个大版面:Post(邮局)、comments(注释)、Archives(管理)、RSS Links(RSS链接)、RSS Fetcher(RSS联播)、Links(链接)Section、Plugins (插件)、Option(选项)、About(声明)、docs(在线帮助,http://www.bblog.com/docs)。通过这些版面这样你也可以自己管理博客了。点击“Post”按钮就可以写自己的博客了,界面见图4。另外在在线帮助页有常见问题回答。可以通过点击“Archives”管理文章。

Linux系统中搭建LAMP动态博客网站

 图4 博客书写的界面

  博客写完后就可以发布了,可以点击“Vist you Site”进行浏览了,见面见图5。

Linux系统中搭建LAMP动态博客网站

图5 Web页面浏览

  Bblog的RSS选项:RSS就是互联网信息相互交流引用的通用语言,是一种简单的新闻聚合标准,一种将信息推送到用户端的推送技术。RSS是基于文本的格式。它是XML(可扩展标识语言)的一种形式,所以通常RSS文件都标为XML。目前有很多根据RSS标准开发的阅读器软件,或者内容聚合主页。RSS技术最早是由NetScape设计出来的,目的是建立一种新闻频道标准,遗憾的是当时NetScape和微软在浏览器两强争霸中节节败退,也就没有多余的心思和精力去发展完善RSS技术,RSS也因此沉寂多年,直到这两年网络中博客(Blog)横行,RSS才重新找到了用武之地,使其成为Blog间相互传递新闻主题和内容的方式,RSS也由此随着Blog的日渐盛行而被新闻网站认同并加以应用。Bblog内置了RSS Linker和RSS Fetcher。方便用户使用RSS阅读器浏览博客。RSS应用最火爆的当属博客、播客等网站支持RSS。在传统网站中,目前只有一部分支持RSS,而且一般只提供很简单的内容提要,要阅读全文还需要打开相应的网页。因此,RSS应用仍然受到了很大的局限,故此更多地与新型的网络应用播客、博客等紧密结合。

  7. bblog博客的一些安全措施

  1.管理员权限

  bblog博客的系统管理员具有最大的权限,而该权限可能会与其它的板主权限相冲突而造成不可预期的错误,所以最好不要让系统管理员当版主。另外用root权限运行MYSQL也不太安全,这里推荐使用其他用户运行MYSQL。方法是:

# mysql -u root -p
Enter password:xxxxxxxxx

………

mysql>update user set user="cao" where user="root";
mysql> flush privileges;
mysql>quit
Bye

 

  以后就得通过cao帐号访问mysql数据库了。

  2. 关闭Mysql远程连接

  首先,应该关闭3306端口,这是MySQL的默认监听端口。由于此处MySQL只服务于本地脚本,所以不需要远程连接。尽管MySQL内建的安全机制很严格,但监听一个TCP端口仍然是危险的行为,因为如果MySQL程序本身有问题,那么未授权的访问完全可以绕过MySQL的内建安全机制。关闭网络监听的方法很简单,mysqld进程启动时,会自动寻找/etc/my.conf这个配置文件。在/etc/my.cnf文件中的[mysqld]部分,去掉#skip-networking前面的“#”即可。另外要尽量养成在mysql下输入密码的习惯,因为Shell下面输入的时候可能会被其它人看见。

  3.php配置文件的安全设定:

  phpinfo和get_cfg_var函数主要用于调试程序是否正常,当LAMP安装结束后应当禁用,在php.ini文件加入一行:

disable_functions = phpinfo,get_cfg_var


  这样可以避免泄漏系统服务信息。关于php和Apache其他安全措施可以查看笔者的:教您如何应用PHP开发出安全的应用程序,链接:http://tech.ccidnet.com/pub/article/c1113_a239881_p1.html

  4.关注补丁问题

  bBlog功能强大包含系统信息也比较多,所以,您必须要了解到这个软件有可能会产生一些安全上的漏洞的。例如2004-10-12 bblog被发现bBlog包含的rss.php脚本不正确处理用户提交的URI输入,远程攻击者可以利用这个漏洞

  进行SQL注入攻击,可以获得敏感信息或更改数据库。rss.php脚本对用户提交的$p参数缺少过滤,就直接传递给$bBlog->make_post_query()函数,攻击者提交特殊的SQL数据作为$p参数数据,可以更改原有SQL逻辑,可以获得敏感信息或更改数据库。使用0.7.3和0.7.2版本的用户请马上下载补丁(http://www.servers.co.nz/security/patches/SCN200409-1/rss.php-patch.txt )或者升级到0.7.4版本以上。建议您随时注意bblog官方网站,这里不定期的会有一些安全技术公告,可以帮助您的博客使用更加安全。

    另外 你应该经常到你所安装的系统发行商的主页上去找最新的补丁。对于私有操作系统,如Windows/Solaris等,由于个人用户不能直接接触其源代码,其代码由公司内部开发人员维护,其安全性由同样的团队保证,内核的修正与其他应用程序一样,以patch/SP包的方式发布。对于Linux这样的开放式系统,是一种开放的结构。应该说,开放的模式是双刃剑。从机制上讲,全世界的开发人员都能获得源代码,从而找出其中的纰漏,似乎安全性应该更好;但是同时,如果网络管理人员不能及时更新内核,也会留下安全隐患。而且,影响操作系统安全的因素有很多。仅仅通过开放或者封闭源代码,都不能从根本上解决安全问题。如果你是一个Linux网管员,你经常需要上相应的网站看,是否有补丁,是否有了bug fix,是否需要升级。Linux服务器运行的软件主要包括:Samba,Mysql,Php,Apache,Firefox等,这些软件,大都是开源软件,而且都在不停升级,稳定版和测试版交替出现。在Apache等网站上,最新的ChangeLog中都写着:bug fix, security bug fix的字样。所以Linux网管员要经常的关注相关网站的bug fix和升级,及时升级或添加补丁。

  总结:LAMP和bblog可以组成一个优秀的博客网站,可以在互联网上运行,也可以在Linux局域网中运行。1999年,也是博客开始高速增长的一年,主要是包括Pita、Greymatter、Manila、Diaryland、Big Blog Tool,但是基本是基于Windows操作系统。Bblog是Linux网络环境下的为数不多的博客软件。有了Bblog一个博客就可以低成本地发布、更新和维护自己的博客网站。在预算短缺的今天,LAMP+bblog组成博客网站无疑具备明显的价格优势。

原创粉丝点击