Apache HTTP Server(httpd)下载安装以及如何配置java(tomcat)和php详细介绍
Apache http Server下载
Apache http web服务器当前最新版本为 Apache HTTP Server 2.4.10,其下载主页为:
http://httpd.apache.org/download.cgi#apache24
Apache http web服务器根据不同的安装方式有不同的下载包,如果是在Linux上进行源码编译安装,那么可以直接下载:
如果是在windows上进行安装apache,那么可以下载已经编译好的windows可执行文件.
Apache HTTP Server介绍
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。[2]
Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。
Apache http Server 在linux平台上进行源码安装的步骤
1 .下载Apache HTTP Server 2.4.10
2.解压 httpd-2.4.10.tar.gz
$ gzip -d httpd-2.4.10.tar.gz $ tar xvf httpd-2.4.10.tar.gz $ cd httpd-2.4.10
3.安装配置Apache HTTP Server 2.4.10
$ ./configure --prefix=PREFIX
4.编译Apache HTTP Server 2.4.10
$ make
5.安装 Apache HTTP Server 2.4.10
$ make install
6.配置
$ vi PREFIX/conf/httpd.conf
7.测试Apache HTTP Server 2.4.10是否安装成功
$ PREFIX/bin/apachectl -k start
注意: PREFIX为Apache HTTP Server安装目录,根据实际情况进行设置。
Apache http Server 在linux平台上的配置
基本配置
注意:配置httpd的工作属性时,指令不区分大小写,但有约定俗成的习惯:单词的首字母大写;指令的值很有可能区分大小写;有些指令可以重复使用多次;
1、配置监听的端口:
Listen [IP:]PORT
例如:Listen 172.16.3.1:80
2、配置所选用的MPM的属性,安装完默认使用prefork模型
StartServers 8 #服务启动后默认开启的进程数 MinSpareServers 5 #最少空闲进程数 MaxSpareServers 20 #最多空闲进程数 ServerLimit 256 #每个进程允许开启最多的子进程数 MaxClients 256 #每个进程最多用户链接数 MaxRequestsPerChild 4000 #长连接时每个用户最多请求数 worker模型:要支持worker模型需要配置/etc/sysconfig/httpd,开启以下行: HTTPD=/usr/sbin/httpd.worker StartServers 4 #服务启动默认开启的进程数 MaxClients 300 #最多同时客户连接数 MinSpareThreads 25 #最少空闲进程数 MaxSpareThreads 75 #最好空闲进程数 ThreadsPerChild 25 #每个进程开启的线程数 MaxRequestsPerChild 0
3、配置Apache HTTP Server服务器支持keep-alived(长连接)
KeepAlive {On|Off} #是否支持长连接 KeepAliveTimeout 2 #长连接超时时间 MaxKeepAliveRequests 50 #超时时间内允许请求的次数
4、配置加载模块
# LoadModule foo_module modules/mod_foo.so # LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so
5、配置Apache HTTP Serverxml iis7站长之家根目录
DocumentRoot "/var/www/html" #指定网站的主目录
#容器内限定用户的访问方法
6、配置页面文件的访问属性
Options Indexes #是否允许索引页面文件,建议关闭 FollowSymLinks #是否跟随软连接文件 SymLinksifOwnerMatch #跟随符号链接,只允许访问运行apache的用户有属主权限的文件 ExecCGI: #是否允许执行CGI脚本; All None
7、基于客户端访问控制
系统默认允许所有人访问
Order #定义allow和deny那个为默认法则;写在后面的为默认法则:写在前面的指令没有显示定义的即受后面的指令控制: Order allow,deny Allow from all #所有人可以访问 配置允许192.16.0.0/16访问,但不允许192.16.3.1访问 Order allow,deny Deny from 192.16.3.1 #禁用一个IP访问 Allow from 192.16.0.0/16 #允许一个网段访问
8、Apache HTTP Server userdir个人站点
# UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions). # #UserDir disabled #注释此项 # # To enable requests to /~user/ to serve the user's public_html # directory, remove the "UserDir disabled" line above, and uncomment # the following line instead: # UserDir public_html #开启此项 重新加载配置文件后用:http://HOST/~username/ 例如:http://192.16.3.1/~centos/
9、定义默认主页
DirectoryIndex index.php index.jsp index.html
10、配置日志功能
Apache HTTP Server错误日志:
errorlog "/path/to/error_log_file"
Apache HTTP Server访问日志:
CustomLog "/path/to/custom_log_file" logformat
日志格式:{combined|common|agent}
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined LogFormat "%h %l %u %t "%r" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent %h #主机名 %l # %u #用户名 %t #请求到达的时间 %r #请求报文的起始行,方法 %s # %b #响应报文的大小 %{Foobar}i #显示从发那个站点跳转过来 %{User-Agent}i #用户代理
11、支持的字符集
1AddDefaultCharset UTF-8
可以隐藏网站的真实目录,
Alias /test/ "/www/test/" #配置别名
#可以给别名目录定义访问权限
Options None AllowOverride None Order allow,deny Allow from 192.16.0.0/16
13、脚本路径别名
调用服务器上的脚本程序,但不希望脚本放在网站的目录下
scriptalias /cgi-bin/ "/www/cgi-bin/" #定义cgi脚本路径别名
# vi /wwww/cgi-bin/test.sh #写一个测试脚本 #!/bin/bash #cat << EOF Content-Type:text/html #这里要有一个空行否则可能会测试不成功 The hostname is: `hostname`. #输出当前系统的主机名 The timeis: `date`. #显示时间 EOF
14、配置虚拟主机
(1)注释主服务器,添加虚拟主机
# DocumentRoot "/www/html" #注释主服务器 NameVirtualHost 192.16.3.1:80 #开启虚拟主机 DocumentRoot /www/web1 #虚拟主机的网站根目录 ServerName test.m #主机名 DocumentRoot /www/web2 ServerName test.
(2)给虚拟主机提供测试文件
mkdir /www/web{1,2} echo > /www/web1/index.html echo test. > /www/web2/index.html
(3)配置完后用 httpd -t 测试配置文件有没有错误
(5)验证,修改验证客户端的hosts文件,
windows客户端
开始-->运行-->输入"c:windowssystem32driversetchosts"用记事本打开并添加以下行
192.16.3.1 169it.com
192.16.3.1 test.
15、配置支持https
(1)安装httpd支持ssl模块
yum install mod_ssl -y
(2)自建CA
#cd /etc/pki/CA # (umask 077; openssl genrsa -out private/cakey.pem 2048) #openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
(3)生成私钥
cd /etc/httpd/conf/ mkdir ssl cd ssl (umask 077; openssl genrsa -out httpd.key 1024)
(4)生成证书申请
openssl req -new -key httpd.key -out httpd.csr
(5)ca签署证书
openssl ca -in httpd.csr -out httpd.crt -days 365
(6)修改httpd的ssl配置文件
vi /etc/httpd/conf.d/ssl.conf DocumentRoot "/www/web1" ServerName www.lyd.com SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt SSLCertificateKeyFile /etc/httpd/conf/ssl/httpd.key
(7)将ca证书导入到客户端可信任证书服务器,并验证.
Linux下Apache Httpd和tomcat整合
首先安装java Tomcat
# tar -zxvf apache-tomcat-xxx.tar.gz # mv apache-tomcat-xxx /usr/local/tomcat6 # ln -s /usr/local/tomcat6/ tomcat (建立连接这一步可以不需要)
配置两个tomcat做负载均衡,tomcat1、tomcat2:
首先注意修改两个tomcat的端口配置,修改server.xml:
<Server port="8005" shutdown="SHUTDOWN"> <Server port="9005" shutdown="SHUTDOWN"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="9080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
然后在server.xml中去掉<engine>标签的注释,修改jvmroute别名,如下:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"> <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
在host标签下添加Context标签,例如:(两个tomcat配置一样)
<Context path="" docBase="/home/smile/webapps/abc" debug="0" reloadable="true" crossContext="true"/>
在每个tomcat目录下的confCatalinalocalhost目录下建立一个ROOT.xml,如下:
<?xml version="1.0" encoding="UTF-8"?> <Context docBase="/apps/cluster/gsp" privileged="true" antiResourceLocking="false" antiJARLocking="false" distributable="true"> </Context>
修改web.xml文件添加元素<distributable/>
编辑apache配置文件 httpd.conf
打开如下模块的注释:
LoadModule proxy_module modules/mod_proxy.so #引入ajp模块 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so #引入ajp模块 LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #用于监控界面
在最后添加以下内容:
ProxyRequests Off ProxyPass / balancer://mycluster/ stickysession=JSESSIONID ProxyPassReverse / balancer://mycluster/ stickysession=JSESSIONID <Proxy balancer://mycluster> BalancerMember ajp://10.192.1.151:8009/ route=tomcat1 loadfactor=1 BalancerMember ajp://10.192.1.151:9009/ route=tomcat2 loadfactor=1 </Proxy>
SetHandler balancer-manager
注意如下几个地方:
Listen 80 #不要添加IP或者localhost
ServerName localhost:80 #如果使用域名,需要配置本机的windows中host文件
Linux下Apache Httpd支持php安装过程
1.首先安装php
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php/etc make && make install cp php.ini-production /usr/local/php/etc/php.ini
configure: error: Cannot find ldap libraries in /usr/lib ln -s /usr/lib64/libldap* /usr/lib/ configure: error: libjpeg.(a|so) not found. ln -s /usr/lib64/libjpeg.so /usr/lib/libjpeg.so configure: error: libpng.(a|so) not found. ln -s /usr/lib64/libpng.so /usr/lib/
3. 修改apache配置文件支持php
修改directoryindex index.html 为directoryindex index.html index.php
并添加AddType application/x-httpd-php .php
修改配置真正解决php文件上传大小限制问题(apache+php) 请教apache配置文件httpd.conf的一个配置 Windows下php 5.3.5和apache2安装配置及测试 急!哪位朋友在aix系统下配置过apache+tomcat ? 它所使用的apache+tomcat程序,是否可以用在linux下的程序是一样的 ? 在哪儿可以下载 fedora core 2 配置 apache+resin环境 apache配置疑问 sqwebmail的配置是不是与apache有很大关系? Linux下怎样配置SSL的Apache服务器 apache 怎样配置一个虚拟目录? 关于linux下 apache+php的配置问题 Linux下怎样配置,让apache及其httpd服务,在机器重启后也重启 apache的配置问题? 配置apache的问题 问个fedora下apache配置问题 apache搭建的 webserver配置下载目录 tomcat&Apache linux下配置 刚接触apache,请教win2000下的安装配置的问题 Apache中web.xml文件怎么配置 Linux Apache+PHP+MySQL的配置问题?? 安装jrun后是否还需要配置IIS 或APACHE