首先我说一下apache,Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。 [2]
Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上。
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
Apache的诞生极富有戏剧性。当NCSAWWW服务器项目停顿后,那些使用NCSAWWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。
看到这里有人是说两者有什么联系?
其实tpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。
,httpd不应该被直接调用,而应该在类Unix系统中由 apachectl 调用,在Windows NT/2000/XP/2003中作为服务运行和在Windows 95/98/ME中作为控制台程序运行。
但是Apache:Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为运作一个开源软件项目的Apache 的团体提供支持的非盈利性组织,这个开源软件的项目就是 Apache 项目。
httpd:httpd是超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。说白了,httpd是Apache组织下维护的一个开源软件。不要两者混为一谈,有联系但是不是一个东西……
前期准备
Centos6.7、关闭ipables、selinux、yum源配置
安装版本httpd-2.4
yum安装
rpm -qa | grep httpd #查看已经安装的httpd
yum install httpd #安装httpd服务
systemctl start httpd #启动httpd服务
systemctl status htttpd #通过此命令查看服务是否为启动状态
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
服务脚本:
/etc/rc.d/init.d/httpd
脚本配置文件:/etc/sysconfig/httpd
主程序文件:
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
日志文件:
/var/log/httpd:
access_log:访问日志
error_log:错误日志
站点文档:
/var/www/html
模块文件路径:
/usr/lib64/httpd/modules
服务控制和启动:
chkconfig httpd on|off
service {start|stop|restart|status|configtest|reload} httpd
修改监听的IP和PORT
套接字通信(Socket):IPC(进程间通信)的一种实现,允许位于不同主机(也可以是同一主机)上的进程之间进行通信;
Socket API(封装了内核中的socket通信相关的系统调用)
Web服务器就是C/S架构,基于套接字通信的机制。
配置说明:
Listen [IP:]PORT
(1) 省略IP表示为0.0.0.0,代表本机所有IP;
(2) Listen指令可重复出现多次;
Listen 80
Listen 8080
(3) 修改监听socket,重启服务进程方可生效;
实际操作:
[root@1 yum.repos.d]# vim /etc/httpd/conf/httpd.conf
# Listen 12.34.56.78:80
Listen 80 # 监听本机所有IP的80和8080端口
Listen 8080
[root@1 ~]# httpd -t # 语法检测
httpd: apr_sockaddr_info_get() failed for wlm # #此错误忽略,是因为没有设置ServerName,后面会讲
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK
[root@1 yum.repos.d]# /etc/init.d/httpd restart # 重启进程
Stopping httpd: [FAILED]
Starting httpd: httpd: apr_sockaddr_info_get() failed for wlm #此错误忽略,是因为没有设置ServerName,后面会讲
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
测试:从浏览器访问,默认是访问80端口,出现的是默认测试页面
由于,首次配置httpd服务,所以,在浏览首页文件的时候,会跳至到/etc/httpd/conf.d/welcom.conf文件,将此文件用网页的形式显示到屏幕。如果想修改主页,操作如下:
mv /etc/httpd/conf.d/welcom.conf 移动/etc/httpd/conf.d/welcom.conf文件到根目录下,注意:此时/etc/httpd/conf.d/这个文件目录下已经没有welcom.conf的这个文件
cd /var/www/html/ #切换至 /var/www/html/ 下面
vi index.html #编辑一个index.html的文件,注意:文件后缀名要以html结尾
wcm login start !!
systemctl restart httpd #重启服务器,生效配置文件
# 测试(确保selinux和iptables是关闭的,且/web目录下有index.html文件)
在使用http协议访问时,直接写在:http://网址/index.html