一 Apache介绍
官方网站:http://httpd.apache.org/
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定等(静态小文件),并可做代理服务器来使用。
1. Apache的特点及应用场合。
Apache的特点功能强大、简单、速度快、应用广泛、性能靠靠稳定,并可做代理服务器或负载均衡器来使用。
Apache的应用场合。
使用Apache运行静态HTML网页、图片(处理静态小文件能力不如Nginx)。
使用Apache结合PHP引擎运行PHP、Perl等程序,LAMP被成为经典组合。
使用Apache结合Tomcat/Resin运行JSP、JAVA等程序,成为中小企业的首选。
使用Apache做代理、负载均衡、rewrite规则过滤等等。
二 安装
1. 检查系统默认的Apache或RPM包安装的Apache版本,卸载掉并安装最新的稳定版。
rpm -aq httpd
rpm -e --nodeps httpd
yum install -y zlib zlib-devel openssl-devel
2.安装wget
yum -y install wget
3.安装Apache前,需要安装依赖包apr apr-devel apr-util-devel gcc gcc-c++
yum -y install apr apr-devel apr-util-devel gcc gcc-c++ pcre pcre-devel
4.下载httpd,解压
wget http://archive.apache.org/dist/httpd/httpd-2.4.41.tar.gz
tar zxf httpd-2.4.41.tar.gz
5.预编译Apache
cd httpd-2.4.41
./configure --prefix=/usr/local/apache --enable-rewrite --enable-so
说明:--prefix 为指定的安装路径。
编译、安装Apache
[[root@httpd httpd-2.4.41]# make &&make install
6.隐藏版本号
在主配文件httpd-conf 中打开httpd-default.conf
[root@httpd httpd-2.4.41]# vim /usr/local/apache/conf/httpd.conf
输入向上搜索 /httpd-default.conf
httpd-defaul.conf 中设置
[root@httpd httpd-2.4.41]# vim /usr/local/apache/conf/extra/httpd-default.conf
输入向上搜索 /ServerTokens
ServerTokens Prod
ServerSignature Off
查看系统版本号,启动服务后, 用curl -i 192.168.42.10 |head -10
本地查看版本号 进去/usr/local/apache/bin 目录 ./httpd -v
7.检查语法错误,启动apache服务
[root@localhost ~]# /usr/local/apache/bin/apachectl -t
[root@localhost ~]# /usr/local/apache/bin/apachectl start
[root@localhost ~]# /usr/local/apache/bin/apachectl graceful 平滑重启
start步骤启动时提示错误
解决办法
编辑配置文件,修改
#ServerName www.example.com:80为ServerName 127.0.0.1:80或ServerName localhost:80或ServerName 主机名:80。也可以不用修改,其实服务已经启动
[root@httpd httpd-2.4.41]# vim /usr/local/apache/conf/httpd.conf
重启后在浏览器中输入访问
8.查看端口和进程
[root@localhost ~]# netstat -lntup |grep httpd
[root@localhost ~]# ps -ef |grep httpd
9.查看日志
[root@localhost ~]tail -f /usr/local/apache/logs/access_log
_________________________________________________________________________________________
以下为基于域名的站点目录配置
1 建立站点目录
[root@httpd ~]# mkdir -p /var/html/{www,blog}
drwxr-xr-x 2 root root 6 Oct 16 21:40 blog
drwxr-xr-x 2 root root 6 Oct 16 21:40 www
2 添加站点目录首页文件
[root@httpd ~]# touch /var/html/{www,blog}/index.html
[root@httpd ~]# yum install tree
[root@httpd ~]# tree /var/html
/var/html
├── blog
│ └── index.html
└── www
└── index.html
2 directories, 2 files
3 修改首页内容
[root@httpd ~]# for name in www blog;do echo "http://$name.tangbin.com" >/var/html/$name/index.html;done
[root@httpd ~]# for name in www blog;do cat /var/html/$name/index.html;done
http://www.tangbin.com
http://blog.tangbin.com
4 配置widow客户机本地host
C:\Windows\System32\drivers\etc
192.168.42.10 www.tangbin.com
192.168.42.10 blog.tangbin.com
5 主配文件添加站点目录
vim /usr/local/apache/conf/httpd.conf
把 #DocumentRoot "/usr/local/apache/htdocs" 默认目录修改为
DocumentRoot "/var/html"
在最后添加以下内容:2.4.2版本需要添加Require all granted
旧版本
<Directory "/var/html">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
2.4.2以后版本
在最后添加以下内容:2.4.2版本需要添加Require all granted
<Directory "/var/html">
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
打开# Virtual hosts
Include conf/extra/httpd-vhosts.conf
6 配置httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin 464403694@qq.com
DocumentRoot "/var/html/www"
ServerName www.tangbin.com
ServerAlias tangbin.com
ErrorLog "logs/www-error_log"
CustomLog "logs/www-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 464403694@qq.com
DocumentRoot "/var/html/blog"
ServerName blog.tangbin.com
ErrorLog "logs/blog-error_log"
CustomLog "logs/blog-access_log" common
</VirtualHost>
7 平滑重启 /usr/local/apache/bin/apachectl graceful
8 浏览器访问
别名访问,会访问第一个VirtualHost站点
__________________________________________________________________________________
以下为基于端口的站点配置
1 修改httpd.conf
vim /usr/local/apache/conf/httpd.conf
2 修改httpd-vhosts.conf
vim /usr/local/apache/conf/extra/httpd-vhosts.conf
3 平滑重启 /usr/local/apache/bin/apachectl graceful
浏览器访问
____________________________________________________________________________________
基本ip的站点配置,省略。
____________________________________________________________________________________
以下为添加httpd服务开启启动
1、用chkconfig 方式管理
ln -s /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
vi /etc/rc.d/init.d/httpd
#在#/bin/sh 下加上两行(注意需要带上#)
# chkconfig: 2345 95 10
# description: Activates/Deactivates Apache Web Server
其中2345是默认启动级别,级别有0-6共7个级别。
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
15是启动优先级,95是停止优先级,优先级范围是0-100,数字越大,优先级越低。
#注册服务
chkconfig --add httpd
查看 chkconfig --list
#开机自启动
chkconfig httpd on
[root@localhost ~]# /usr/local/apache/bin/apachectl -t
[root@localhost ~]# /usr/local/apache/bin/apachectl start
[root@localhost ~]# /usr/local/apache/bin/apachectl graceful 平滑重启