|
精品推荐 |
|
|
|
|
Apache的完全安装 |
|
|
|
作者:未知 来源:未知 加入时间:2003-12-3 BBS9.NET资讯中心 |
Unix 服务器的安装与配置 (FreeBSD) 之Apache的完全安装(apache+php4+mod_ssl+mod_perl+mod_fastcgi+mod_gzip)
本文主要讨论源代码方式的安装。
从互联网下载以下几个程序(本文采用DSO方式安装),按如下步骤进行处理:
1、apache_1.3.27.tar.gz
2、mod_ssl-2.8.12-1.3.27.tar.gz
3、mod_perl-1.0-current.tar
4、mod_gzip-1.3.26.1a.tar.gz
5、mod_fastcgi-2.4.0.tar.gz
6、php-4.3.1.tar.gz
(另需安装pth-1.4.1.tar.gz、mm-1.1.3.tar.gz、perl-5.6.1.tar.gz、zlib-1.1.4.tar.gz、libpng-1.2.5.tar.gz、png、gettext、freetype、jpeg、gd、gd2)
安装pth-1.4.1
server# tar zxvf pth-1.4.1.tar.gz
server# cd pth-1.4.1
server# ./configure --enable-pthread
server# make
server# make test
server# make install
安装mm-1.1.3
server# tar zxvf mm-1.1.3.tar.gz
server# cd mm-1.1.3
server# ./configure --disable-shared
server# make
server# make test
server# make install
安装perl-5.6.1
server# tar zxvf perl-5.6.1.tar.gz
server# cd perl-5.6.1
server# sh Configure -de
server# make
server# make test
server# make install
安装zlib-1.1.4
server# tar zxvf zlib-1.1.4.tar.gz
server# cd zlib-1.1.4
server# ./configure
server# make test
server# make install
安装libpng-1.2.5 (need zlib-1.1.4、png)
server# pkg_add png-version
server# tar zxvf libpng-1.2.5.tar.gz
server# cd libpng-1.2.5
server# cp scripts/makefile.freebsd makefile
server# make
server# make test
server# make install
安装apache_1.3.27 + mod_ssl-2.8.12-1.3.27 (need OpenSSL、MM、Prel_5.6.0) + mod_perl-1.0-current
1、解压缩包(以下文件解压在同一个目录下)
server# tar zxvf apache_1.3.27.tar.gz
server# tar zxvf mod_ssl-2.8.12-1.3.27.tar.gz
server# tar zxvf mod_perl-1.0-current.tar
2、配置mod_ssl-2.8.12-1.3.27
server# cd mod_ssl-2.8.12-1.3.27
server# ./configure --with-apache=../apache_1.3.27 \
--with-mm=../mm-1.1.3 \
--prefix=/usr/local/apache \
--enable-shared=ssl
server# cd ..
3、配置安装mod_perl-1.27
server# cd mod_perl-1.27
server# perl Makefile.PL EVERYTHING=1 APACHE_SRC=../apache_1.3.27/src USE_APACI=1 PREP_HTTPD=1 DO_HTTPD=1 (Freebsd 4.7下有两处错误提示,忽略)
server# make
server# make install
server# cd ..
4、配置安装apache_1.3.27
server# cd apache_1.3.27
server# ./configure --prefix=/usr/local/apache \
--enable-module=ssl \
--activate-module=src/modules/perl/libperl.a \
--enable-module=most \
--enable-shared=max
server# make
server# make certificate(生成证书,按提示选择,并记下密码)
server# make install
安装mod_gzip-1.3.26
server# tar zxvf mod_gzip-1.3.26.1a.tar.gz
server# cd mod_gzip-1.3.26.1a
server# edit Makefile(将APXS的路径 APXS?=/usr/local/sbin/apxs 改成apache安装路径: APXS?=/usr/local/apache/bin/apxs)
server# make
server# make install
安装mod_fastcgi-2.4.0
server# tar zxvf mod_fastcgi-2.4.0.tar.gz
server# cd mod_fastcgi-2.4.0
server# /usr/local/apache/bin/apxs -o mod_fastcgi.so -c *.c
server# /usr/local/apache/bin/apxs -i -a -n fastcgi mod_fastcgi.so
安装php-4.3.1 (need gettext、freetype、jpeg、gd、gd2、png、这里假设mysql已经安装并运行)
server# pkg_add gettest-version
server# pkg_add jpeg-version
server# pkg_add gd-version
server# pkg_add gd2-version
server# tar zxvf php-4.3.1.tar.gz
server# cd php-4.3.1
server# ./configure --with-apxs=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/apache/conf \
--with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/--enable-versioning \
--enable-ftp --enable-bcmath --disable-debug --enable-memory-limit=yes \
--enable-track-vars --enable-sysvsem --enable-sysvshm --with-gettext \
--enable-trans-sid --enable-fastcgi --with-tsrm-pth=pth-config \
--with-freetype-dir=/usr/local --with-jpeg-dir=/usr/local --with-gd=/usr/local \
--enable-gd-native-ttf --with-png-dir=/usr/local --with-zlib=/usr/local \
--with-zlib-dir=/usr/local --with-mm=/usr/local --with-openssl --with-iconv
server# make
server# make install
server# cp php.ini-dist /usr/local/apache/conf/php.ini
配置apache是其支持php,及php.ini文件:
在/use/local/apache/conf下有这两个文件:
1、/usr/local/apache/conf/httpd.conf 示例:httpd.conf
2、/usr/local/apache/conf/php.ini 示例:php.ini
在httpd.conf中添加:
AddType application/x-httpd-php .php .php3
AddType application/x-httpd-php-source .phps
配置php.ini:
upload_tmp_dir /tmp
default_charset gb2312
register_globals On
安装至此完成,可以使用如下命令启动apache:
server# /usr/local/apache/bin/apachectl start
如果要使用https则使用如下命令启动:
server# /usr/local/apache/bin/apachectl startssl
(键入证书密码,然后回车)
编写apache的自启动文件(Freebsd下):
server# edit /usr/local/etc/rc.d/apache-server.sh 示例:apache-server.sh
server# chmod 755 apache-server.sh
重新启动服务器,Bind9就可以自动运行!
测试服务器:
在/usr/local/apache/htdocs下编辑test.php来测试php是否安装成功 示例:test.php
<?
phpinfo()
?>
在浏览器中的地址栏中输入:http://www.nankai.edu.cn/test.php即可以显示php的安装信息。
如果你使用的是apachects startssl命令启动的话,你可以
在浏览器中的地址栏中输入:https://www.nankai.edu.cn/test.php来显示php的安装信息。
虚拟服务器的设置(摘自化境编程界Apache Server设置虚拟WEB 作者:不详)原文,未加修改:
一 、IP型虚拟主机
IP型虚拟主机指每一虚拟主机对应唯一的IP。可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和Windows NT都支持这种方式。
两种配置多虚拟主机的方法:
1、为每一虚拟主机启动一个httpd进程。
下列情况下使用此方法:
1) 需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。
2) 能提供足够内存和文件描述器。
设置方法:
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:Listen 10.68.37.10:80
2、为所有虚拟主机启动一个httpd进程。
下列情况下使用此方法:
1) 允许在虚拟主机间共享httpd配置。
2) 计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。
设置方法:
在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、 ErrorLog、TransferLog或CustomLog,如:
<VirtualHost www.smallco.com> #此处建议用IP
ServerAdmin webmaster@mail.smallco.com
DocumentRoot /usr/local/etc/httpd/htdocs/smallco
ServerName www.smallco.com #建议此处用域名
ErrorLog /usr/local/etc/httpd/logs/smallco/error_log
TransferLog /usr/local/etc/httpd/logs/smallco/access_log
</VirtualHost>
<VirtualHost www.baygroup.org> #此处建议用IP
ServerAdmin webmaster@mail.baygroup.org
DocumentRoot /groups/baygroup/www
ServerName www.baygroup.org #建议此处用域名
ErrorLog /groups/baygroup/logs/error_log
TransferLog /groups/baygroup/logs/access_log
</VirtualHost>
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。
二 、名字型虚拟主机(Apache1.3以上版本支持)
IP型虚拟主机虽好,但不是最佳方案。它要求每一虚拟主机有一专用 IP,在某些机器上难于实现。名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。但Apache为此提供了解决方法。
设置方法:
在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
NameVirtualHost 111.22.33.44
<VirtualHost 111.22.33.44> #建议此处用IP
ServerName www.domain.tld #建议此处用域名
DocumentRoot /web/domain
</VirtualHost>
同时,在DNS定义www.domain.tld指向111.22.33.44。
注意:当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL 请求。另外,有些服务器希望以多个名字被访问。例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。如:ServerAlias domain.tld *.domain.tld
另附一些虚拟主机的设置实例。
附:虚拟主机设置实例
IP型的虚拟主机配置
Setup 1: 服务器有两个IP,
111.22.33.44 server.domain.tld
111.22.33.55 www.otherdomain.tld
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
服务器配置:
...
Port 80
DocumentRoot /www/domain
ServerName www.domain.tld
<VirtualHost 111.22.33.55>
DocumentRoot /www/otherdomain
ServerName www.otherdomain.tld
...
</VirtualHost>
Setup 2: 基本同Setup1,但不设置专门的主服务器。
服务器配置:
...
Port 80
ServerName server.domain.tld
<VirtualHost 111.22.33.44>
DocumentRoot /www/domain
ServerName www.domain.tld
...
</VirtualHost>
<VirtualHost 111.22.33.55>
DocumentRoot /www/otherdomain
ServerName www.otherdomain.tld
...
</VirtualHost>
这种设置只有当URL为http://server.domain.tld时才击中主服务器
Setup 3: 服务器有两个IP,
111.22.33.44 server.domain.tld
111.22.33.55 www-cache.domain.tld
www.domain.tld 是server.domain.tld 的别名(CNAME),代表主服务器。
www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
服务器配置:
...
Port 80
Listen 111.22.33.44:80
Listen 111.22.33.55:8080
ServerName server.domain.tld
<VirtualHost 111.22.33.44:80>
DocumentRoot /www/domain
ServerName www.domain.tld
...
</VirtualHost>
<VirtualHost 111.22.33.55:8080>
ServerName www-cache.domain.tld
...
<Directory proxy:>
order deny,allow
deny from all
allow from 111.22.33
</Directory>
</VirtualHost>
名字型虚拟主机配置
Setup 1: 服务器有一个IP,
111.22.33.44 server.domain.tld.
www.domain.tld和www.sub.domain.tld是别名(CNAMEs) 。
服务器配置:
...
Port 80
ServerName server.domain.tld
NameVirtualHost 111.22.33.44
<VirtualHost 111.22.33.44>
DocumentRoot /www/domain
ServerName www.domain.tld
...
</VirtualHost>
<VirtualHost 111.22.33.44>
DocumentRoot /www/subdomain
ServerName www.sub.domain.tld
...
</VirtualHost>
若使用IP访问服务器,由于 www.domain.tld 有最高优先级,被认为是默认服务器或
第一服务器。
Setup 2:服务器有两个IP,
111.22.33.44 server1.domain.tld 用于主服务器
111.22.33.55 server2.domain.tld 用于虚拟主机
别名www.domain.tld用于主服务器,
别名www.otherdomain.tld用于一个虚拟主机,
别名www.sub.domain.tld,*.sub.domain.tld 用于另一虚拟主机,
服务器配置:
...
Port 80
ServerName www.domain.tld
DocumentRoot /www/domain
NameVirtualHost 111.22.33.55
...
<VirtualHost 111.22.33.55>
DocumentRoot /www/otherdomain
ServerName www.otherdomain.tld
...
</VirtualHost>
<VirtualHost 111.22.33.55>
DocumentRoot /www/subdomain
ServerName www.sub.domain.tld
ServerAlias *.sub.domain.tld
...
</VirtualHost>
混合型(IP/名字)虚拟主机配置
Setup:服务器有三个IP,
111.22.33.44 server.domain.tld 用于名字型虚拟主机
111.22.33.55 www.otherdomain1.tld 用于IP型虚拟主机
111.22.33.66 www.otherdomain2.tld 用于IP型虚拟主机
服务器配置:
...
Port 80
ServerName server.domain.tld
NameVirtualHost 111.22.33.44
<VirtualHost 111.22.33.44>
DocumentRoot /www/domain
ServerName www.domain.tld
...
</VirtualHost>
<VirtualHost 111.22.33.44>
DocumentRoot /www/subdomain1
ServerName www.sub1.domain.tld
...
</VirtualHost>
<VirtualHost 111.22.33.44>
DocumentRoot /www/subdomain2
ServerName www.sub2.domain.tld
...
</VirtualHost>
<VirtualHost 111.22.33.55>
DocumentRoot /www/otherdomain1
ServerName www.otherdomain1.tld
...
</VirtualHost>
<VirtualHost 111.22.33.66>
DocumentRoot /www/otherdomain2
ServerName www.otherdomain2.tld
...
</VirtualHost>
端口型虚拟主机配置
Setup: 服务器有一个IP,
111.22.33.44 www.domain.tld
不需要另外的别名或IP,采用端口型虚拟主机即可设置一个配置有别于主服务器的虚
拟主机。
服务器配置:
...
Listen 80
Listen 8080
ServerName www.domain.tld
DocumentRoot /www/domain
<VirtualHost 111.22.33.44:8080>
DocumentRoot /www/domain2
...
</VirtualHost>
|
|
相关文章:经典强大的服务器软件Apache相关软件: Linux: Apache2+PHP4+MySQL+ProFTP 源码包 Windows: Apache2+PHP4+MySQL 安装套件 Apache HTTP Server for Windows 2.0.48 Apache 2.0.48 for Windows Apache 2.0.48 for Linux Zecos ApacheConf 3.42 Apache 1.3.28 for Windows Apache 1.3.28 for Windows Apache 1.3.28 for Linux Vision For Apache 2000Q1V1
|
| |