apache完全安装手册.docx
《apache完全安装手册.docx》由会员分享,可在线阅读,更多相关《apache完全安装手册.docx(13页珍藏版)》请在冰豆网上搜索。
apache完全安装手册
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#tarzxvfpth-1.4.1.tar.gz
server#cdpth-1.4.1
server#./configure--enable-pthread
server#make
server#maketest
server#makeinstall
安装mm-1.1.3
server#tarzxvfmm-1.1.3.tar.gz
server#cdmm-1.1.3
server#./configure--disable-shared
server#make
server#maketest
server#makeinstall
安装perl-5.6.1
server#tarzxvfperl-5.6.1.tar.gz
server#cdperl-5.6.1
server#shConfigure-de
server#make
server#maketest
server#makeinstall
安装zlib-1.1.4
server#tarzxvfzlib-1.1.4.tar.gz
server#cdzlib-1.1.4
server#./configure
server#maketest
server#makeinstall
安装libpng-1.2.5(needzlib-1.1.4、png)
server#pkg_addpng-version
server#tarzxvflibpng-1.2.5.tar.gz
server#cdlibpng-1.2.5
server#cpscripts/makefile.freebsdmakefile
server#make
server#maketest
server#makeinstall
安装apache_1.3.27+mod_ssl-2.8.12-1.3.27(needOpenSSL、MM、Prel_5.6.0)+mod_perl-1.0-current
1、解压缩包(以下文件解压在同一个目录下)
server#tarzxvfapache_1.3.27.tar.gz
server#tarzxvfmod_ssl-2.8.12-1.3.27.tar.gz
server#tarzxvfmod_perl-1.0-current.tar
2、配置mod_ssl-2.8.12-1.3.27
server#cdmod_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#cdmod_perl-1.27
server#perlMakefile.PLEVERYTHING=1APACHE_SRC="USE_APACI=1PREP_HTTPD=1DO_HTTPD=1(Freebsd4.7下有两处错误提示,忽略)
server#make
server#makeinstall
server#cd..
4、配置安装apache_1.3.27
server#cdapache_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#makecertificate(生成证书,按提示选择,并记下密码)
server#makeinstall
安装mod_gzip-1.3.26
server#tarzxvfmod_gzip-1.3.26.1a.tar.gz
server#cdmod_gzip-1.3.26.1a
server#editMakefile(将APXS的路径APXS?
=/usr/local/sbin/apxs改成apache安装路径:
APXS?
=/usr/local/apache/bin/apxs)
server#make
server#makeinstall
安装mod_fastcgi-2.4.0
server#tarzxvfmod_fastcgi-2.4.0.tar.gz
server#cdmod_fastcgi-2.4.0
server#/usr/local/apache/bin/apxs-omod_fastcgi.so-c*.c
server#/usr/local/apache/bin/apxs-i-a-nfastcgimod_fastcgi.so
安装php-4.3.1(needgettext、freetype、jpeg、gd、gd2、png、这里假设mySQL已经安装并运行)
server#pkg_addgettest-version
server#pkg_addjpeg-version
server#pkg_addgd-version
server#pkg_addgd2-version
server#tarzxvfphp-4.3.1.tar.gz
server#cdphp-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#makeinstall
server#cpphp.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中添加:
AddTypeapplication/x-httpd-php.php.php3
AddTypeapplication/x-httpd-php-source.phps
配置php.ini:
upload_tmp_dir/tmp
default_charsetgb2312
register_globalsOn
安装至此完成,可以使用如下命令启动apache:
server#/usr/local/apache/bin/apachectlstart
如果要使用https则使用如下命令启动:
server#/usr/local/apache/bin/apachectlstartssl
(键入证书密码,然后回车)
编写apache的自启动文件(Freebsd下):
server#edit/usr/local/etc/rc.d/apache-server.sh示例:
apache-server.sh
server#chmod755apache-server.sh
重新启动服务器,Bind9就可以自动运行!
测试服务器:
在/usr/local/apache/htdocs下编辑test.php来测试php是否安装成功示例:
test.php
phpinfo()
?
>
在浏览器中的地址栏中输入
如果你使用的是apachectsstartssl命令启动的话,你可以
在浏览器中的地址栏中输入:
虚拟服务器的设置(摘自化境编程界ApacheServer设置虚拟WEB作者:
不详)原文,未加修改:
一、IP型虚拟主机
IP型虚拟主机指每一虚拟主机对应唯一的IP。
可通过多个物理网卡或虚拟网口实现多IP,Solaris2.5和WindowsNT都支持这种方式。
两种配置多虚拟主机的方法:
1、为每一虚拟主机启动一个httpd进程。
下列情况下使用此方法:
1)需考虑安全隔离问题,如两个httpd运行于不同的User、Group、Listen、ServerRoot,两者用户除通过Web相互浏览数据,无法访问其他数据。
2)能提供足够内存和文件描述器。
设置方法:
为每一虚拟主机建立一个独立的httpd安装,在每一个安装路径的配置文件httpd.conf里,用Listen指令指定进程服务的IP,如:
Listen10.68.37.10:
80
2、为所有虚拟主机启动一个httpd进程。
下列情况下使用此方法:
1)允许在虚拟主机间共享httpd配置。
2)计算机服务于大量的请求,运行多个进程使服务器性能降低成为重要考虑因素。
设置方法:
在配置文件httpd.conf里,用VirtualHost指令为每一虚拟主机设置ServerAdmin、ServerName、DocumentRoot、ErrorLog、TransferLog或CustomLog,如:
#此处建议用IP
ServerAdminwebmaster@
DocumentRoot/usr/local/etc/httpd/htdocs/smallco
ServerName#建议此处用域名
ErrorLog/usr/local/etc/httpd/logs/smallco/error_log
TransferLog/usr/local/etc/httpd/logs/smallco/Access_log
#此处建议用IP
ServerAdminwebmaster@mail.baygroup.org
DocumentRoot/groups/baygroup/www
ServerNamewww.baygroup.org#建议此处用域名
ErrorLog/groups/baygroup/logs/error_log
TransferLog/groups/baygroup/logs/Access_log
同时要做虚拟网口或网卡的配置,在DNS也要做相应设置。
二、名字型虚拟主机(Apache1.3以上版本支持)
IP型虚拟主机虽好,但不是最佳方案。
它要求每一虚拟主机有一专用IP,在某些机器上难于实现。
名字型虚拟主机是指每一虚拟主机的名字不相同,但IP一样。
它的好处是不限制虚拟主机数量,配置、使用简单,不需另外的软硬件。
缺点是客户端必须支持该部分协议,最近版本的浏览器都支持,某些老版本浏览器不支持。
但Apache为此提供了解决方法。
设置方法:
在配置文件httpd.conf里,用NameVirtualHost指令设置虚拟主机,如:
NameVirtualHost111.22.33.44
#建议此处用IP
ServerNamewww.domain.tld#建议此处用域名
DocumentRoot/web/domain
同时,在DNS定义www.domain.tld指向111.22.33.44。
注意:
当在NameVirtualHost指令后使用IP时,任何使用IP的URL请求都是针对虚拟主机的,主服务器从不会响应一个使用IP的URL请求。
另外,有些服务器希望以多个名字被访问。
例如,假设有某一IP的服务器,希望以名domain.tld、www2.domain.tld都能被访问,做法是在VirtualHost指令部分使用ServerAlias指令。
如:
ServerAliasdomain.tld*.domain.tld
另附一些虚拟主机的设置实例。
附:
虚拟主机设置实例
IP型的虚拟主机配置
Setup1:
服务器有两个IP,
111.22.33.44server.domain.tld
111.22.33.55www.otherdomain.tld
www.domain.tld是server.domain.tld的别名(CNAME),代表主服务器。
服务器配置:
...
Port80
DocumentRoot/www/domain
ServerNamewww.domain.tld
DocumentRoot/www/otherdomain
ServerNamewww.otherdomain.tld
...
Setup2:
基本同Setup1,但不设置专门的主服务器。
服务器配置:
...
Port80
ServerNameserver.domain.tld
DocumentRoot/www/domain
ServerNamewww.domain.tld
...
DocumentRoot/www/otherdomain
ServerNamewww.otherdomain.tld
...
这种设置只有当URLhttp:
//server.domain.tld时才击中主服务器
Setup3:
服务器有两个IP,
111.22.33.44server.domain.tld
111.22.33.55www-cache.domain.tld
www.domain.tld是server.domain.tld的别名(CNAME),代表主服务器。
www-cache.domain.tld是proxy-cache,端口是8080,Web服务器使用默认的80。
服务器配置:
...
Port80
Listen111.22.33.44:
80
Listen111.22.33.55:
8080
ServerNameserver.domain.tld
80>
DocumentRoot/www/domain
ServerNamewww.domain.tld
...
8080>
ServerNamewww-cache.domain.tld
...
>
orderdeny,allow
denyfromall
allowfrom111.22.33
名字型虚拟主机配置
Setup1:
服务器有一个IP,
111.22.33.44server.domain.tld.
www.domain.tld和www.sub.domain.tld是别名(CNAMEs)。
服务器配置:
...
Port80
ServerNameserver.domain.tld
NameVirtualHost111.22.33.44
DocumentRoot/www/domain
ServerNamewww.domain.tld
...
DocumentRoot/www/subdomain
ServerNamewww.sub.domain.tld
...
若使用IP访问服务器,由于www.domain.tld有最高优先级,被认为是默认服务器或
第一服务器。
Setup2:
服务器有两个IP,
111.22.33.44server1.domain.tld用于主服务器
111.22.33.55server2.domain.tld用于虚拟主机
别名www.domain.tld用于主服务器,
别名www.otherdomain.tld用于一个虚拟主机,
别名www.sub.domain.tld,*.sub.domain.tld用于另一虚拟主机,
服务器配置:
...
Port80
ServerNamewww.domain.tld
DocumentRoot/www/domain
NameVirtualHost111.22.33.55
...
DocumentRoot/www/otherdomain
ServerNamewww.otherdomain.tld
...
DocumentRoot/www/subdomain
ServerNamewww.sub.domain.tld
ServerAlias*.sub.domain.tld
...
混合型(IP/名字)虚拟主机配置
Setup:
服务器有三个IP,
111.22.33.44server.domain.tld用于名字型虚拟主机
111.22.33.55www.otherdomain1.tld用于IP型虚拟主机
111.22.33.66www.otherdomain2.tld用于IP型虚拟主机
服务器配置:
...
Port80
ServerNameserver.domain.tld
NameVirtualHost111.22.33.44
DocumentRoot/www/domain
ServerNamewww.domain.tld
...
DocumentRoot/www/subdomain1
ServerNamewww.sub1.domain.tld
...
DocumentRoot/www/subdomain2
ServerNamewww.sub2.domain.tld
...
DocumentRoot/www/otherdomain1
ServerNamewww.otherdomain1.tld
...
DocumentRoot/www/otherdomain2
ServerNamewww.otherdomain2.tld
...
端口型虚拟主机配置
Setup:
服务器有一个IP,
111.22.33.44www.domain.tld
不需要另外的别名或IP,采用端口