构筑LAMP框架之apache
来源:asp之家 时间:2010-05-09 17:55:00
LAMP框架是当前软件开发的一种重要模式,LAMP中的L代表开源的操作系统Linux,A代表最著名的WWW服务器,也是开源软件的Apache, M代表性能优越的开源数据库软件Mysql,而P代表开源的网络脚本语言PHP,也代表Perl和Python,后两者也都是著名的开源软件.LAMP都是免费的自由软件,但是性能毫不输于相应的商业软件---比如说Apache强于微软的IIS这是众所周知的事实---所以在信息领域非常流行,同时有很多具体的应用系统也是构筑在LAMP框架之上.
1 Apache的安装、配置
Apache 是 UNIX 系统中普遍使用的WWW服务器软件。根据Netcraft的统计 (http://news.netcraft.com/archives/web_server_survey.html),目前因特网中,有超过百分之六十的服务器是使用Apache来提供网页浏览的服务。Apache可以说是目前世界上使用人数最多的网页服务器软件,它不仅可以在 FreeBSD、UNIX、Linux 中运行,也可以安装在 Windows 操作系统中。
Apache和FreeBSD一样,在软件版本上也有多个分支,目前较稳定的版本有1.3及2.0。Apache1.3系列开发已久,已经十分稳定了,不会再有重大的修改。而Apache2 系列是一个开发较活跃的版本,它和1.3最大的不同在于对多线程(multithreaded)的支持。目前Apache2.0.58是最主要的稳定版本,而2.2.2则还处于开发中的状态。
在Debian上安装Apache软件非常方便,比在Windows系统上安装同类软件更为简单,我只用一行命令就搞定了:
#apt-get install apache2
在Etch中存在Apache的两个版本,Apache1和apache2,前者是一个久经考验的稳定版本,目前仍然有许多的实际应用;后者则具有很多新的功能,处于与时俱进的考虑,我们上面安装的是后者,安装的版本是apache2.0.55。
以下是一些在实际使用中常常会遇到的问题:1)配置文件的位置:在Etch中位于/etc/apache2/apache2.conf在其他版本可能位置和名称有所不同,与apache1的位置也不同。
在/etc/apache2/下面,还有两个目录,分别是mods-available和mods-enabled,显然前者是提供的模块,后者是启动了的能正常起作用的模块。如果需要把提供的模块使起作用,需要在后者的目录下做一个前者的符号连接。
2)缺省的主目录:/var/www/系统安装好后,我在/var/www目录下写入了一个简单的index.html文件,只一句:#catindex.htmlThisisaDebianserver然后在客户端检查是否输出正确。
3)log文件的位置log文件的作用是很大的,Apache有二个log文件,一个是所有登陆本apache服务器的记录,/var/log/httpd-access.log,文件记录了登陆的ip,时间,浏览器类型等;另一个是联机错误记录文件,/var/log/httpd-error.log,这个文件对于调试apache参数是很有作用的。两个文件都是文本文件,可以由nano等文本编辑器来浏览、编辑,记录文件的位置及文件名是由httpd.conf中的相应配置来改变。
3)启动、停止和重新启动httpd服务器的运行:apapche2ctlstart(stoprestart)
这个命令比较有用,尤其是在修改配置文件之后。
4)个人用户目录的问题:不同于apache1,重要修改配置文件中的UserDir,apache2把个人用户作为一个模块,则需要先:cd/etc/apache2/mods_enabledln-s/etc/apache2/mods_available/userdir.confuserdir.confln-s/etc/apache2/mods_available/userdir.loaduserdir.loadapache2ctlrestart同时修改主配置文件,注释掉#UserDirpublic_html这句,再在用户test的主目录/home/test下面创建一个index.html文件,就可以浏览:http://yourip/~test了。
5)自动支持中文的问题网页的缺省字符集有参数AddDefaultCharsetISO-8859-1这时候在浏览器浏览中文网页的时候,会乱码,需要手动设置编码方式为GBK或GB2312才能显示中文去掉注释,修改为AddDefaultCharsetGB2312就可以了。
6)Apache状态信息在安装完Apache后,我们需要不断了解服务器的系统各方面的情况。Apache2内建了server-status及server-info二种查看服务器信息的方法。server-status是指服务器状态信息,我们可以了解Apache目前运行的情形,包括占用的系统资源、目前联机数量等。server-info主要是显示Apache的版本、加载的模块信息等。
为使用这两项功能,我们必须先修改/etc/apache2/apache2.conf.首先要自己手动添加一行ExtendedStatusOn,否则得到的信息会不够详细。
然后分别找到和这两段,把两段内前面的注释都去掉,并设置好访问权限。不重视安全的话,可以设置allowfromall.再:cd/etc/apache2/mods_enabledln-s/etc/apache2/mods_available/info.loadinfo.load
然后就可以在浏览器以http://hostname/server-info访问了。
6)其他一些我认为比较重要的配置参数:ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。
Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。
HostnameLookups:指定记录用户端的名字还是IP地址