RedHatLinuxAS4LAMP网站搭建实例 |
发布时间: 2012/8/11 11:00:05 |
Apache是世界排名第一的Web服务器,根据Netcraf(www.netsraft.co.uk)所作的调查,世界上百分之五十以上的Web服务器在使用Apache。
尤其是现在,使用LAMP(Linux+Apache+MySQL+PHP)来搭建中等级别的应用已经是一种流行的方式,因此,掌握Apache的配置是系统工程师必备的技能之一。 使用LAMP(Linux+Apache+MySQL+PHP)来搭建中等级别的应用(尤其是电子商务)已经是一种流行的方式,因为全部是开源和免费的软件,所以成本非常低廉。本节介绍平台的搭建。在搭建平台时,也可以直接使用RPM包来安装,但是由于使用RPM包在一些系统上不支持,因此我们使用更通用的方法:直接从源代码来装。 Apache的特性: 1)几乎可以运行在所有的计算机平台上. 2)支持最新的HTTP/1.1协议 3)简单而且强有力的基于文件的配置(HTTPD.CONF) 4)支持通用网关接口(CGI) 5)支持虚拟主机. 6)支持HTTP认证. 7)集成PERL. 8)集成的代理服务器 9)可以通过WEB浏览器监视服务器的状态,可以自定义日志. 10)支持服务器端包含命令(SSI). 11)支持安全SOCKET层(SSL). 12)具有用户会话过程的跟踪能力. 13)支持FASTCGI 14)支持JAVASERVLETS. 从源代码安装Apache 通常,对于大多数电子商务网站而言,都会有在线支付系统。为安全起见,对 于支付系统需要使用https协议来进行访问,也就是需要SSL的支持,因此,在开 始安装apache软件之前,首先要安装OpenSSL。 安装OpenSSL的步骤如下: (1)获取源代码: 创建存放软件的目录: mkdir/root/software(可以存放在任何自己想存放的目录) 到http://www.openssl.org/source/下载源代码包,放到/root/software/。 本案例中下载的是openssl-0.9.8.tar.gz (2)解压软件 tar-zxvfopenssl-0.9.8.tar.gz (3)进入源代码目录: cdopenssl-0.9.8 (4)配置编译选项: ./config——prefix=/usr/local/openssl——shared ——shared的含义是创建共享库文件,如果不加,在编译时只生成静态库文件。 (5)编译: make maketest#测试 (6)安装 makeinstall 执行后将把相关的文件拷贝到/usr/local/openssl的对应目录下。 如果想升级原有rpm包安装的openssl的话,按照以下几步操作: A、rpm–e–nodepsopenssl(强制删除rpm包的openssl,尽量不要用远程登录方式作) B、将/usr/include/openssl备份,并把/lib下两个指向libcrypto.so.0.9.7x和libssl.so.0.9.7x的软连接删除 C、安装openssl-0.9.8.tar.gz(步骤如上面所说)安装目录为/usr/local/openssl D、手动修改lib库得软连接以备ssh和其他程序调用 ln–s/usr/local/openssl/lib/libcrypto.so.0.9.8/lib/libcrypto.so.4 ln–s/usr/local/openssl/lib/libcrypto.so.0.9.8/lib/libcrypto.so ln–s/usr/local/openssl/lib/libssl.so.0.9.8/lib/libssl.so ln–s/usr/local/openssl/lib/libssl.so.0.9.8/lib/libssl.so.4 E、echo/usr/local/openssl/lib>>/etc/ld.so.conf F、ldconfig–v G、/etc/init.d/sshdrestart H、Ssh–V检查版本信息 在安装完OpenSSL后,接下来就可以安装Apache了,安装Apache的步骤如下: (1)获取源代码 创建存放软件的目录: mkdir/root/software 到http://www.apache.org/下载最新稳定版的源代码,放到/root/software。 本案例中下载的是httpd-2.0.59.tar.bz2 (2)解压软件包 tar–jxvfhttpd-2.0.59.tar.bz2 cdhttpd-2.0.59 (3)配置编译选项 Apache是模块化的服务器,核心服务器中只包含了功能最常用的模块,而扩展功能由其他模块提供。设置过程中,你必须指定需要包含的模块。Apache文档中有模块清单备查,其中状态为"Base"的模块会被默认地包含进核心服务器,如果不需要包含某个模块(比如mod_userdir),则必须明确地禁用它;其他状态的模块(比如mod_expires),也必须明确启用以使之包含进核心服务器。 Apache有两种使用模块的方法,其一是永久性包含进核心;如果操作系统支持动态共享对象(DSO),而且能为autoconf所检测,则模块还可以被动态编译。DSO模块的存储是独立于核心的,可以被核心使用由mod_so模块提供的运行时刻配置指令包含或排除。如果编译中包含有任何动态模块,则mod_so模块会被自动包含进核心。如果希望核心能够装载DSO,而不实际编译任何动态模块,需要明确指定——enable-so。 在我们的电子商务网站中,一般情况下,核心模块功能我们全部启用;除此之外,我们还要启用SSL加密(mod_ssl);为了使搜索引擎更容易收录我们的网页,需要将动态页面的URL重写为静态页面的URL,需要mod_rewrite;为了今后动态添加模块而不重新编译apache(例如添加PHP的支持),需要启用mod_so。基于上面的分析,我在配置编译选项时,推荐使用以下选项: ./configure——prefix=/usr/local/apache2——with-ssl=/usr/local/openssl ——enable-ssl——enable-so——enable-rewrite——enable-mime-magic——enable-mem-cache 每个项目及网站的情况不同,如果还需要支持其它的模块,请在编译时使用相 应的选项。在工作或学习中,如有问题请及时到http://www.vfast.com/进行答疑。 (4)编译并安装 make makeinstall 从源代码安装PHP PHP是一种嵌入在HTML并由服务器解释的脚本语言。它可以用于管理动态 内容、支持数据库、处理会话跟踪,甚至构建整个电子商务站点。它支持许多流行 的数据库,包括MySQL、PostgreSQL、Oracle、Sybase、Informix和MicrosoftSQL Server。 要使PHP支持相关的功能那么在安装前需要安装相应的软件,例如要使PHP 支持MySQL数据库,在编译PHP之前,必须首先安装MySQL数据库,关于MySQL 数据库的安装,查阅第9章MySQL数据库的安装。 (1)获取源代码 创建存放软件的目录: mkdir/root/software(可以存放在任何自己想存放的目录) 到http://www.php.net/下载最新稳定版的源代码,放到/root/software。 本案例中下载的是php-5.1.4.tar.bz2 (2)解压 tar–jxvfphp-5.1.4.tar.bz2 cdphp-5.1.4 (3)配置编译选项 刚才已经提到,打算使用MySQL来存储数据,因此必须要指名支持MySQL数据(——with-mysql),并指名MySQL数据的安装位置;如果需要处理XML数据,需要——wiht-xml和–with-dom;如果需要使用PHP脚本来生成图片,需要使用——with-gd。 总之如果需要使用的功能的库文件不在系统路径内,必须要明确支持,如果不明确支持,那么配置脚本自动进行处理。集体需要使用什么功能,这取决于站点的PHP脚本使用的函数大多数情况下,需要这样来配置编译选项: ./configure——prefix=/usr/local/php ——with-apxs2=/usr/local/apache2/bin/apxs——with-mysql=/usr/local/mysql ——with-mysql-sock=/usr/local/mysql/tmp/mysql.sock——with-xml——with-dom ——with-mcrypt——with-iconv——with-gd——with-mime-magic ——with-openssl=/usr/local/openssl——enable-ftp 其中——with-apxs2=/usr/local/apache2/bin/apxs选项的作用是:在安装时会修改APACHE的配置文件,加入PHP模块,同时将模块复制到apache的模块目录下。 (4)编译并安装 make makeinstall (5)拷贝php的配置文件 cpphp.ini-dist/usr/local/php/php/php.ini 在编译php时使用——with-config-file-path=[dir]来明确指明配置文件的存储位置,那么就拷贝到指定位置,否则就拷贝到:安装目录/usr/local/php/ 测试安装是否成功 要进行测试,vi/usr/local/apache2/conf/httpd.conf: (1)修改DocumentRoot,的值,指定web页面的存储位置 DocumentRoot"/web" (2)确保文件中已经存在并且启用下面的行 LoadModulephp5_modulemodules/libphp5.so (3)在文件中添加下面的行: AddTypeapplication/x-httpd-php.php 目的是使以php为扩展名的文件会使用PHP程序来解析。 (4)创建一个测试文件/web/vfast.php,其内容如下:
/usr/local/apache2/bin/apachectlstart (6)在浏览器中访问刚才的页面,例如:http://localhost/vfast.php 如果成功返回php的相关信息,说明安装成功。 本文出自:亿恩科技【www.enkj.com】 |