LAMP论文.docx
《LAMP论文.docx》由会员分享,可在线阅读,更多相关《LAMP论文.docx(31页珍藏版)》请在冰点文库上搜索。
![LAMP论文.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/bc6ce5f6-1949-44a7-9299-8f5f5b88a862/bc6ce5f6-1949-44a7-9299-8f5f5b88a8621.gif)
LAMP论文
目录:
【摘要】———————————————————————————————1
【关键字】——————————————————————————————2
一、LINUX概述———————————————————————————3
1 、Linux具有内核编程接口———————————————————————3
2、 Linux支持多用户——————————————————————————3
3 、Linux支持多任务——————————————————————————4
4、 Linux支持安全的分层文件系统—————————————————————4
5 、shell:
命令解释器和编程语言—————————————————————5
6 、大量有用的工具集——————————————————————————5
7 、进程间的通信———————————————————————————6
8、 系统管理—————————————————————————————7
二、Apache的概述—————————————————————————7
1、apache服务器的功能—————————————————————————————8
2、apache服务器的安全特性———————————————————————————8
3、apache服务器的安全配置———————————————————————————8
4、apacheServer基于主机的访问控制———————————————————————9
5、apacheSever的用户认证与授权————————————————————————10
6、在apache中使用DBM用户认证————————————————————————11
三、Mysql数据库的概述———————————————————————11
1、MySQL的开源————————————————————————————————12
2、MySQL的服务器———————————————————————————————13
3、MySQL服务器工作环境————————————————————————————14
4、MySQL软件的使用—————————————————————————14
四、PHP的概述——————————————————————————15
1、PHP的特性————————————————————————————————15
2、PHP 3与PHP 4的比较———————————————————————————6
五、RedHatLinux9平台下搭建LAMP
1、安装环境—————————————————————————————17
2、软件需求—————————————————————————————17
3、安装过程—————————————————————————————17
【结束语】——————————————————————————————17
【参考资料】—————————————————————————————17
【致谢】———————————————————————————————17
[摘要]
Linux+Apache+Mysql+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。
随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。
LAMP是基于Linux,Apache,MySQL和PHP的开放资源网络开发平台,PHP是一种有时候用Perl或Python可代替的编程语言。
这个术语来自欧洲,在那里这些程序常用来作为一种标准开发环境。
名字来源于每个程序的第一个字母。
每个程序在所有权里都符合开放源代码标准:
Linux是开放系统;Apache是最通用的网络服务器;mySQL是带有基于网络管理附加工具的关系数据库;PHP是流行的对象脚本语言,它包含了多数其它语言的优秀特征来使得它的网络开发更加有效
[关键字]LinuxApacheMysqlPHP
Linux概述
Linux操作系统具有许多独特而强大的功能。
与其他操作系统一样,它是控制计算机的系统程序。
但同时也与UNIX一样,是一个精心设计的工具程序的集合,而且提供了大量的工具使得用户可连接和使用这些工具,以构建系统和应用程序。
1 Linux具有内核编程接口
Linux内核是Linux操作系统的核心,负责分配计算机资源和调度用户作业,尽可能使得每个作业都能平等地使用系统资源,如对CPU的访问,对磁盘、DVD、CD-ROM存储器、打印机和磁带驱动器等外围设备的使用等。
应用程序通过系统调用(有着大家熟知的名称的特殊函数)与内核交互。
程序员可使用一个系统调用实现与多种设备的交互。
例如,系统调用write只有一个,但它可向多个设备实现写操作。
当某个程序发出write请求时,内核将根据程序的上下文把请求传递给相应的设备。
这种灵活性使得一些旧版本的工具能够适用于新出现的设备,并且使得在不重写程序的情况下,可以将程序较容易地移植到新操作系统下(假设新旧版本的操作系统可使用相同的系统调用)。
2 Linux支持多用户
根据硬件和计算机所执行任务的不同,Linux操作系统可支持一个到一千个以上的用户,其中的每个用户可同时运行不同的程序集合。
若多个用户同时使用一台计算机,那么平均到每个用户上的费用比一个用户单独使用这台计算机的费用要低。
因为单个用户通常不能充分利用计算机所提供的资源。
例如任何人都不可能做到:
使打印机一直处于打印状态;使系统内存完全被占用;使磁盘一直忙于读写操作;使Internet联接一直处于使用状态;使终端同时处于忙碌状态。
而多用户操作系统允许多个用户可几乎同时使用所有的系统资源。
这样,系统资源可最大程度地被利用,相应地,每个用户的花费就将减到最小。
这正是多用户操作系统的根本目标所在。
3 Linux支持多任务
Linux是一个完全受保护的多任务操作系统,它允许每个用户同时运行多个作业。
进程间可相互通信,但每个进程是受到完全保护的,即不会受到其他进程的干扰,就如内核不会受到其他任何进程干扰一样。
用户在集中精力于当前屏幕所显示作业的同时,在后台还可运行其他作业,而且还可以在这些作业之间来回切换。
如果运行的是XWindow系统,那么同一屏幕上的不同窗口可运行不同的程序,并且可监视它们。
这一功能提高了用户的工作效率。
4 Linux支持安全的分层文件系统
“文件”是指一组信息的集合。
例如,备忘录或报告的文本信息、一组销售额的信息、一张图片、一首歌曲、一个可执行程序。
每个文件都以一个唯一的名称存放在存储设备(如硬盘)上。
Linux以目录结构的方式组织文件。
这里的目录类似于文件夹、文件柜。
每个目录具有一个名称,它可包含其他的文件和目录。
目录按照一定的顺序组织在其他目录之下,形成了一种树状结构的组织形式。
这种结构可使用户通过将相关文件放到一个目录下,实现对大量文件的管理。
每个用户拥有一个主目录,根据需要可在该目录下建立更多的子目录,如图1-2所示。
图1-2 Linux文件系统结构
标准 为了便于系统管理和软件开发,一些人通过网络组织在一起,开发了Linux文件系统标准(FilesystemStandard,FSSTND),该标准逐渐演化为文件系统层次标准(FilesystemHierarchyStandard,FHS)。
在采用这种标准之前,关键程序在Linux的不同发布版中所处的位置是不同的。
现在,在装有Linux系统的计算机上,很容易就可以找到所需的标准程序。
链接 Linux文件系统提供了“链接”机制,该机制使得一个给定的文件可以通过两个或多个不同的名称访问(Windows系统中使用术语“快捷方式”来代替“链接”)。
链接文件与原来的文件可在相同的目录下,也可在不同的目录下。
“链接”机制使同一个文件可以出现在不同的用户目录中,这为用户间进行文件共享提供了可能。
安全 与大部分多用户操作系统类似,Linux允许用户对各自的数据进行保护,以防止其他用户的访问。
Linux也允许用户通过一种简单而有效的保护措施来与其他一些用户共享被选择的数据和程序。
这个安全级别可通过文件的访问权限来设定,其中文件的访问权限包括读、写和执行。
最近,Linux内核已经加入了访问控制列表(AccessControlList,ACL),该列表使得用户和管理者对文件访问权限可进行较细粒度的控制。
5 shell:
命令解释器和编程语言
在文本环境下,shell作为命令解释器,建立了用户和操作系统之间的接口。
当输入一个命令后,shell将对命令进行解释,并调用相应的程序。
Linux中有许多shell,其中最常用的两个是:
● bash(BourneAgainShell):
是最初UNIXshell之一的BourneShell的增强版本。
● tcsh(TCShell):
作为BSDUNIX系统一部分而开发的CShell的增强版本。
由于用户常常喜欢选择使用各种不同的shell,因此多用户操作系统在任何时候都在使用多个不同的shell。
多种shell充分体现了Linux操作系统的一项重要功能——提供用户可定制界面。
shell除了具有解释键盘命令并发送到操作系统的功能外,它还是一种高级编程语言。
shell命令可组织在一个文件中供以后执行,这些文件在Linux系统中称为shell脚本,在DOS和Windows系统中被称为批处理文件。
这种灵活性使得用户利用相对短而简单的命令就可进行复杂操作,并且使得用户轻而易举就可创建完成复杂操作的精巧程序。
(1)文件名的生成
在输入让shell处理的命令时,可使用对shell具有特殊意义的字符来构造模式。
这些特殊意义的字符称为通配符(wildcard)。
这些模式为用户提供了一种简便方式,使用户不必输入完整的文件名,而只输入模式,然后由shell将模式拓展为匹配的文件名。
这些模式称为模糊文件引用(AmbiguousFileReference),该引用可节省因输入长文件名或者一长串相近的文件名而耗费的精力。
对于只知道文件名称的一部分或不能记起文件名精确拼写的情况,模式便非常有用。
(2)设备无关的输入和输出
重定向 设备(如打印机、终端)和磁盘文件在Linux程序中都以文件的形式出现。
当向Linux操作系统发出命令时,可指示操作系统将输出发送到任何一个设备或文件,这称为输出重定向(redirection)。
类似地,通常来自键盘的程序输入可重定向为来自某个磁盘文件。
输入和输出都是设备无关的,输出可被重定向到任何合适的设备,来自任何设备的输入也可被重定向。
例如,cat工具通常用于在屏幕上显示文件内容。
运行cat命令可以很容易地将其输出重定向到某个磁盘文件而不是屏幕上。
(3)shell函数
shell的一个非常重要的特性是它可作为一种编程语言来使用。
因为shell是一个解释器,所以它不能对为它编写的程序进行编译,而是在每次从磁盘加载这些程序时,对它们进行解释。
而程序的加载和解释都是非常耗时的。
针对此问题,许多shell(如BourneAgainShell)都包含shell函数,shell把这些函数放在内存使得每次需要执行它们时,不必再从磁盘读入。
shell还以一种内部格式来存放这些函数使得不必耗费大量时间来解释它们。
(4)作业控制
作业控制(JobControl)是shell的另一个特性,它允许用户同时运行多个作业,并且根据需求可将前后台的作业进行切换。
当启动某个作业时,它通常是在前台运行,因此该作业是与终端相连接的。
利用作业控制这一功能,可将正处于前台工作的作业切换到后台去,在后台该作业可继续运行,并且在前台可以运行或监视另一个作业。
如果想关注一下某个正在后台运行的作业,那么,可将其切换到前台工作,以使其又一次与终端相连接。
作业控制的这一概念起源于BSDUNIX,后来又出现在CShell中。
6 大量有用的工具集
Linux包括几百个工具程序,这些程序通常被称为命令(command),可以提供用户普遍需要的功能。
例如sort程序可以按照字母表顺序或数字顺序对列表(或者是一组列表)进行排序,这样便于根据部件号码、姓、城市名、邮政编码、电话号码、年龄、大小、成本等关键字进行排序。
sort工具是一个非常重要的编程工具,也是标准Linux操作系统中的一部分。
还有些工具则允许用户创建、显示、打印、复制、查找和删除文件,有些则允许用户对文本进行编辑、格式化和排版。
man(即手册、指南)和info工具可提供Linux的联机文档。
7 进程间的通信
管道(pipe)和过滤器(filter) Linux允许用户在命令行上建立管道和过滤器。
管道可将一个程序的输出作为另一个程序的输入。
过滤器,作为管道的一种特殊形式,对输入数据流处理以得到输出数据流。
过滤器可对程序的输出进行修改。
过滤器的输出结果可作为另一个程序的输入。
管道和过滤器经常将多个工具连接起来以完成某个特定的任务。
例如,可使用管道将cat工具的输出作为sort工具的输入(此管道可称为过滤器),同时,也可使用另一个管道再将sort的输出发送给第3个工具lpr,即将数据打印输出。
这样,在一条命令行上,使用了3个工具,完成了排序和打印文件的工作。
8 系统管理
Linux系统的系统管理员通常是系统所有者和系统唯一的用户,具有很多职责,其中首要的应该是设置系统和安装软件。
一旦系统启动并运行,系统管理员应负责下载和安装软件(包括对操作系统的更新)、备份和恢复文件、管理系统设备(如打印机、终端、服务器、局域网等),也应负责为新用户建立账户(在多用户操作系统中),必要时启动和关闭系统,以及处理任何出现的问题
Linux的其他特性
Linux操作系统,除继承了BSD、SystemV和SunMicrosystem公司的Solaris系统的一些特性外,还具有一些新的特性。
虽然UNIX中的大多数工具在Linux中都存在,但在很多情况下,这些工具都被更先进的工具替代。
接下来,就介绍Linux下的许多流行的工具及其特性。
1 .GUI
XWindow系统(也称为X)的一部分是由麻省理工学院的研究人员开发的,这为Linux中的图形用户界面(GraphicalUserInterface,GUI)奠定了基础。
对于支持X的终端或者工作站显示器,用户可通过屏幕上的多个窗口实现与计算机的交互,也可显示图形信息,或者使用专门的应用程序来画图、监视进程和预览格式化的输出。
X是一种跨网络的协议,它允许用户在工作站或者某台计算机上打开一个由远离他们的某个CPU生成的窗口。
桌面管理器 X通常有两层:
桌面管理器和窗口管理器。
桌面管理器是一个面向图画(Picture)的用户接口,它使得通过控制图标而不用输入shell的对应命令,来实现与系统程序的交互。
GNOME(www.gnome.org)和KDE(www.kde.org)是比较流行的桌面控制器。
窗口管理器 窗口管理器是运行在桌面管理器下的程序,它主要负责:
窗口的打开和关闭;程序的启动和运行;对鼠标的设置,使得系统根据点击方式和位置来完成不同的工作。
窗口管理器可实现个性化显示。
微软公司的Windows只允许改变窗口关键元素的颜色,而X的窗口管理器可允许改变窗口的整个外观和感觉,如通过修改窗口的边框、按钮和滚动条来改变窗口的外观和工作方式,还允许建立虚拟桌面和创建菜单等。
除了Metacity(GNOME的默认窗口)和kwin(KDE的默认窗口)外,X和Linux系统下还存在很多流行的窗口管理器,如Sawfish和WindowMaker。
2 (互联)网络工具
Linux系统通过提供很多有价值的工具来实现对网络的支持,使得在Linux系统下可通过各种网络来访问远程系统。
除了给其他系统上的用户发送电子邮件外,还可像访问本地文件一样地访问其他计算机磁盘上的文件;也可以采用相似的方式让自己的文件对其他用户可见,实现计算机间文件的复制;还可以在远程计算机上运行程序而在本地计算机上显示结果;还可通过局域网和包括Internet在内的广域网完成许多其他的操作。
大量的应用程序都位于网络访问的顶层,它们将计算机资源拓展到全球。
这样可使我们能够同世界各地的人进行交流、可以搜集各门学科的信息、可以从Internet上迅速可靠地下载新的软件。
3 软件开发
丰富的软件开发环境是Linux系统的又一大优势。
除了C和C++语言,Linux系统也提供了其他计算机语言的编译器和解释器,如Ada、Fortan、Java、Lisp、Pascal、Perl和Python等。
bison工具生成的解析代码使得编译器(一种对包含结构化信息的文件进行解析的工具)的开发工作变得容易。
flex工具用于生成扫描器或者是生成能识别文本内词汇模式的代码。
make工具和GNU中进行自动配置的configure工具使得复杂项目的开发管理变得容易。
源代码的管理系统(如CVS)简化了控制版本。
除了ups和gdb外,还有一些调试器也可帮助追踪和修复软件的瑕疵。
GNUC的编译器gcc与进行信息剖析(profiling)的工具gprof协同工作,来帮助程序员识别影响程序性能的潜在瓶颈。
为了提高代码的可移植性和减少调试时间,C语言编译器中包含了是否进行C语言代码深入检测的选项。
Apache的的概述
一、apache服务器的功能
apacheServe的前身是NCSA的httpd,曾经在1995年成为最为流行的万维网的服务器。
因为强大的功能和灵活的设置及平台移植性,apacheServer取得了广泛的信赖。
apacheServer的主要功能有:
1、支持最新的HTTP1.1协议(RFC2616)。
2、极强的可配置和可扩展性,充分利用第三方模快的功能。
3、提供全部的源代码和不受限制的使用许可(License)。
4、广泛应用于Windows2000/NT/9x、Netware5.x,OS/2和UNIX家族极其他操作系统,所支持的平台多达17余种。
5、强大的功能,涵盖了用户的需求,包括:
认证中的DBM数据库支持;错误和问题的可定制响应的目录导向功能;不受限的灵活的URL别名机制和重定向功能;虚拟主机(多宿主主机)支持多个域主页共存一台主机;超强的日志文件功能;利用站点的分析;拓展于维护等等。
正因为这些强大的优势,使apacheServer与其他的Web服务器相比,充分展示了高效、稳定及功能丰富的特点。
apacheServer已用于超过600万个Internet站点。
二、apache服务器的安全特性
作为最流行的Web服务器,apacheServer提供了较好的安全特性,使其能够应对可能的安全威胁和信息泄漏。
1、采用选择性访问控制和强制性访问控制的安全策略
从apache或Web的角度来讲,选择性访问控制DAC(DiscretionaryAccessControl)仍是基于用户名和密码的,强制性访问控制MAC(MandatoryAccessControl)则是依据发出请求的客户端的IP地址或所在的域号来进行界定的。
对于DAC方式,如输入错误,那么用户还有机会更正,从新输入正确的的密码;如果用户通过不了MAC关卡,那么用户将被禁止做进一步的操作,除非服务器作出安全策略调整,否则用户的任何努力都将无济于事。
2、apache的安全模块
apache的一个优势便是其灵活的模块结构,其设计思想也是围绕模块(Modules)概念而展开的。
安全模块是apacheServer中的极其重要的组成部分。
这些安全模块负责提供apacheServer的访问控制和认证、授权等一系列至关重要的安全服务。
mod_access模块能够根据访问者的IP地址(或域名,主机名等)来控制对apache服务器的访问,称之为基于主机的访问控制。
mod_auth模块用来控制用户和组的认证授权(Authentication)。
用户名和口令存于纯文本文件中。
mod_auth_db和mod_auth_dbm模块则分别将用户信息(如名称、组属和口令等)存于Berkeley-DB及DBM型的小型数据库中,便于管理及提高应用效率。
mod_auth_digest模块则采用MD5数字签名的方式来进行用户的认证,但它相应的需要客户端的支持。
mod_auth_anon模块的功能和mod_auth的功能类似,只是它允许匿名登录,将用户输入的E-mail地址作为口令。
SSL(SecureSocketLager),被apache所支持的安全套接字层协议,提供Internet上安全交易服务,如电子商务中的一项安全措施。
通过对通讯字节流的加密来防止敏感信息的泄漏。
但是,apache的这种支持是建立在对apache的API扩展来实现的,相当于一个外部模块,通过与第三方程序的结合提供安全的网上交易支持。
三、apache服务器的安全配置
在前面的内容中提到过,apache具有灵活的设置。
所有apache的安全特性都要经过周密的设计与规划,进行认真地配置才能够实现。
apache服务器的安全配置包括很多层面,有运行环境、认证与授权设置及建立安全的电子交易链接等。
1、apache的安装配置和运行
(1)以Nobody用户运行一般情况下,apache是由Root来安装和运行的。
如果apacheServer进程具有Root用户特权,那么它将给系统的安全构成很大的威胁,应确保apacheServer进程以最可能低的权限用户来运行。
通过修改httpd.conf文件中的下列选项,以Nobody用户运行apache达到相对安全的目的。
Usernobody
Group#-1
(2)ServerRoot目录的权限
为了确保所有的配置是适当的和安全的,需要严格控制apache主目录的访问权限,使非超级用户不能修改该目录中的内容。
apache的主目录对应于apacheServer配置文件httpd.conf的ServerRoot控制项中,应为:
ServerRoot/usr/local/apache
(3)SSI的配置
在配置文件access.conf或httpd.conf中的确Options指令处加入IncludesNOEXEC选项,用以禁用apacheServer中的执行功能。
避免用户直接执行apache服务器中的执行程序,而造成服务器系统的公开化。
OptionsIncludesNoexec
(4)阻止用户修改系统设置
在apache服务器的配置文件中进行以下的设置,阻止用户建立、修改.htaccess文件,防止用户超越能定义的系统安全特性。
AllowOverideNone
OptionsNone
Allowfromall
然后再分别对特定的目录进行适当的配置。
(5)apache服务器的确省访问特性
apache的默认设置只能保障一定程度的安全,如果服务器能够通过正常的映射规则找到文件,那么客户端便会获取该文件,如http:
//localhost/~root/将