分类: LINUX
2008-03-22 23:05:38
来源:赛迪网 作者:sixth |
Apache 是世界排名第一的Web 服务器, 根据Netcraf()所作的调查,世界上百分之五十以上的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) 支持JAVA SERVLETS.
从源代码安装Apache
通常,对于大多数电子商务网站而言,都会有在线支付系统。为安全起见,对
于支付系统需要使用https 协议来进行访问,也就是需要SSL 的支持,因此,在开
始安装apache 软件之前,首先要安装OpenSSL。
安装OpenSSL 的步骤如下:
(1)获取源代码:
创建存放软件的目录:
mkdir /root/software (可以存放在任何自己想存放的目录)
到 下载源代码包, 放到/root/software/。
本案例中下载的是openssl-0.9.8.tar.gz
(2)解压软件
tar -zxvf openssl-0.9.8.tar.gz
(3)进入源代码目录:
cd openssl-0.9.8
(4)配置编译选项:
./config --prefix=/usr/local/openssl --shared
--shared 的含义是创建共享库文件,如果不加,在编译时只生成静态库文件。
(5)编译:
make
make test #测试
(6)安装
make install
执行后将把相关的文件拷贝到/usr/local/openssl 的对应目录下。
如果系统在安装的时候已经安装了openssl的话,可以用rpm –qf openssl查找rpm包安装目录以备apache安装的时候调用
如果想升级原有rpm包安装的openssl的话,按照以下几步操作:
A、 rpm –e –nodeps openssl(强制删除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/sshd restart
H、 Ssh –V 检查版本信息 |
在安装完OpenSSL 后,接下来就可以安装Apache 了,安装Apache 的步骤如下:
(1)获取源代码
创建存放软件的目录:
mkdir /root/software
到下载最新稳定版的源代码,放到/root/software。
本案例中下载的是httpd-2.0.59.tar.bz2
(2)解压软件包
tar –jxvf httpd-2.0.59.tar.bz2
cd httpd-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
每个项目及网站的情况不同,如果还需要支持其它的模块,请在编译时使用相
应的选项。在工作或学习中,如有问题请及时到进行答疑。
(4)编译并安装
make
make install
从源代码安装PHP
PHP 是一种嵌入在 HTML 并由服务器解释的脚本语言。它可以用于管理动态
内容、支持数据库、处理会话跟踪,甚至构建整个电子商务站点。它支持许多流行
的数据库,包括 MySQL、PostgreSQL、Oracle、Sybase、Informix 和 Microsoft SQL
Server。
要使PHP 支持相关的功能那么在安装前需要安装相应的软件,例如要使PHP
支持MySQL 数据库,在编译PHP 之前,必须首先安装MySQL 数据库,关于MySQL
数据库的安装,查阅第9 章MySQL 数据库的安装。
在安装完Apache 和MySQL 后,可以开始安装PHP 了。安装PHP 的步骤如下:
(1)获取源代码
创建存放软件的目录:
mkdir /root/software (可以存放在任何自己想存放的目录)
到下载最新稳定版的源代码,放到/root/software。
本案例中下载的是php-5.1.4.tar.bz2
(2)解压
tar –jxvf php-5.1.4.tar.bz2
cd php-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
make install
(5)拷贝php 的配置文件
cp php.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)确保文件中已经存在并且启用下面的行
LoadModule php5_module modules/libphp5.so
(3)在文件中添加下面的行:
AddType application/x-httpd-php .php
目的是使以php 为扩展名的文件会使用PHP 程序来解析 。
(4)创建一个测试文件/web/vfast.php,其内容如下:
(5)启动apache 服务:
/usr/local/apache2/bin/apachectl start
(6)在浏览器中访问刚才的页面,例如:
如果成功返回php 的相关信息,说明安装成功。