Apache 是世界排名第一的Web 服务器, 根据Netcraf([url]www.netsraft.co.uk[/url])所作的调查,世界上百分之五十以上的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 (
可以存放在任何自己想存放的目录
)
到
[url]http://www.openssl.org/source/[/url]
下载源代码包, 放到
/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.7 x和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
到
[url]http://www.apache.org/[/url]
下载最新稳定版的源代码,放到
/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
每个项目及网站的情况不同,如果还需要支持其它的模块,请在编译时使用相
应的选项。在工作或学习中,如有问题请及时到
[url]http://www.vfast.com.cn[/url]
进行答疑。
(
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 (
可以存放在任何自己想存放的目录
)
到
[url]http://www.php.net/[/url]
下载最新稳定版的源代码,放到
/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
,其内容如下:
phpinfo();
?>
(
5
)启动
apache
服务:
/usr/local/apache2/bin/apachectl start
(
6
)在浏览器中访问刚才的页面,例如:
[url]http://localhost/vfast.php[/url]
如果成功返回
php
的相关信息,说明安装成功。
Techdoc From [url]www.vfast.com.cn[/url]