CentOS 6.2 LAMP系统集成与安全

起头打个广告:41405569 是一个IT相关交流群,欢迎大家加入,一起讨论和学习!

LAMP(Linux-Apache-Mysql-PHP)网站架构是目前国际流行的Web框架,该框架包括(Linux 操作系统),Apache网络服务器,Mysql数据库,Perl、PHP语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采用这个框架,与Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,与微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的有事,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台,LAMP网站优化架构如下图:

对于大流量、大并发量的网站系统架构来说,除了硬件上使用高性能的服务器、负载均衡、CDN等之外,在软件架构上需要终点关注下面几个环节:使用高性能的操作系统(OS)、高性能的网页服务器(Web Server)、高性能的数据库(Database)、高效率的变成语言等。

操作系统的选择

Linux 操作系统有很多不同的发行版本,如Red Hat Enterprise Linux 、SUSE Linux Enterprise 、Debian、Ubuntu、CentOS等,每一个发行版本都有自己的特色,比如RHEL的稳定、Ubuntu的易用,基于稳定和性能的考虑,企业版操作系统建议选择正版的(包括购买服务)Red Hat或SUSE的企业版,因为一旦在部署或运维过程中出现故障或问题了会有厂家的工程师提供技术支持。

若出于成本考虑想要使用免费的操作系统,建议选用CentOS,CentOS (Community Enterprise Operating System)是Linux发行版之一,是RHEL/Red Hat Enterprise Linux的精简免费版,和RHEL的源代码相同,不过,RHEL和SUSE LE 等企业版提供的升级服务均是收费的,因此要求免费的高度稳定性的服务器可以用CentOS替代Red Hat Enterprise Linux使用。

Web服务器、缓存和PHP加速

Apache是LAMP架构最核心的Web Server,开源、稳定、模块丰富是Apache的优势,但Apache的缺点是有些臃肿,内存和CPU开销大,性能上有损耗,不如一些轻量级的Web服务器(例如Nginx)高效,轻量级的Web服务器对静态文件的响应能力来说远高于Apache服务器。

Apache作为Web Server是负载PHP的最佳选择,如果流量很大的话,可以采用Nginx来负载非PHP的Web请求,Nginx是一个高性能的HTTP和方向代理服务器,Nginx以它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx不支持PHP和CGI等动态语言,但支持负载均衡和容错,可与Apache配合使用,是轻量级的HTTP服务器的首选。

Web服务器的缓存有多种方案,Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效地提高Apache的访问响应能力,Squid Cache是一个Web缓存服务器,支持高效的缓存,可以作为网页服务器的前置Cache服务器缓存相关请求,来提高Web服务器的速度,把Squid放在Apache的前端来缓存Web服务器生成的动态内容,香港空间,而Web应用程序只需要适当地设置页面失效时间即可,如访问量巨大则考虑使用Memcache作为分布式缓存。

PHP的加速可使用eAccekerator加速器,eAccelerator是一个自由开放源码PHP加速器,优化和动态内容缓存提高了性能PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除,它还对脚本起优化作用,以加快其执行效率,使PHP程序代码的执行效率提高1-10倍。

具体的解决方案有以下几种:

(1)Squid+Apache+PHP+eAccelerator

使用Apache负载PHP,使用Squid进行缓存,HTML或图片的请求可以直接由Squid返回给用户,很多大型网站都采用这种架构。

(2)Nginx/Apache+PHP(FastCGI)+eAccelerator

使用Nginx或Apache负载PHP,PHP使用FastCGI方式运行,效率较高。

(3)Nginx+Apache+PHP+eAccelerator

此方案综合了Nginx和Apache的有点,使用Apache负载PHP,Nginx负责解析其他Web请求,使用Nginx的Rewrite模块,Apache的端口不对外开放。

数据库

在开源的数据库中,MySQL在性能、稳定性和功能上是首选,虽然被收购但性能上却一点不打折,可以达到百万级别的数据存储,网站初期可以将MySQL和Web服务器放在一起,但是当访问量达到一定的规模后,应该将MySQL数据库从Web Server上独立出来,在单独的服务器上运行,同时保持Web Server和MySQL服务器的稳定连接,当数据库访问量达到更大的级别时,可以考虑使用MySQL Cluster等数据库群集或者库表散列等解决方案。

总的来说,LAMP架构的网站性能会远远优于Windows IIS平台,它可以负载的访问量也非常大,因此采用LAMP架构是一个不错的方案,综上所述,基于LAMP架构设计具有成本低廉、部署灵活、安全稳定等特点,是Web网络应用和环境的优秀组合。

LAMP安装

由于有多个需要安装的程序,而每个要安装的服务都有两种方式,源码安装、RPM包安装。一般情况下,LAMP的服务安装包应采用同一种安装方式安装,否则可能出现一些不兼容的安装错误。出于安全方面的考虑,这里建议使用源码安装,下面就这种模式在CentOS 6.2版本下的安装。

1、准备安装包

首先需要准备好下列安装包,为避免下载麻烦,相关安装包可在我的博客下载的到(IT辰逸)。

[root@chenyi lamp]# ll总用量 54216-rw-r–r–. 1 root root 1396855 12月 6 10:28 autoconf-2.61.tar.gz-rw-r–r–. 1 root root 1775673 12月 6 10:27 freetype-2.3.5.tar.gz-rw-r–r– 1 root root 555631 12月 6 15:23 eaccelerator-0.9.5.3.tar.bz2-rw-r–r–. 1 root root 733698 12月 6 10:27 gd-2.0.35.tar.gz-rw-r–r–. 1 root root 6396996 12月 6 10:27 httpd-2.2.9.tar.gz-rw-r–r– 1 root root 613261 12月 6 11:22 jpegsrc.v6b.tar.gz-rw-r–r–. 1 root root 1335178 12月 6 10:27 libmcrypt-2.5.8.tar.gz-rw-r–r–. 1 root root 792139 12月 6 10:27 libpng-1.2.31.tar.gz-rw-r–r–. 1 root root 4726657 12月 6 10:27 libxml2-2.6.30.tar.gz-rw-r–r–. 1 root root 22693585 12月 6 10:28 mysql-5.0.95.tar.gz-rw-r–r– 1 root root 650001 12月 6 16:12 nginx-0.8.54.tar.gz-rw-r–r– 1 root root 1316863 12月 6 16:06 pcre-8.12.tar.gz-rw-r–r–. 1 root root 12046184 12月 6 10:28 php-5.2.6.tar.gz-rw-r–r–. 1 root root 3099674 12月 6 10:28 phpMyAdmin-3.0.0-rc1-all-languages.tar.gz.gz-rw-r–r– 1 root root 119117 12月 6 15:42 suhosin-0.9.32.1.tar.gz-rw-r–r–. 1 root root 499773 12月 6 10:28 zlib-1.2.3.tar.gz

2、修改远程登录避免显示乱码

编辑 /etc/sysconfig/i18n

把UTF-8改成GB18030 或者将终端设置修改UTF-8

关闭Selinux

使用文本编辑工具打开/etc/selinux/config:

[root@chenyi lamp]# vi /etc/selinux/config

把SELINUX=enforcing注释掉:#SELINUX=enforcing

然后新加一行为:SELINUX=disabled

存盘退出,重启系统。

3、检查编译工具

在安装Linux时必须把GCC编译工具装上,我们用下列命令检测编译工具是否存在;

[root@chenyi ~]# gcc -v

4、写在默认版本Mysql、Apache、PHP

问候不一定要慎重其事,但一定要真诚感人

CentOS 6.2 LAMP系统集成与安全

相关文章:

你感兴趣的文章:

标签云: