【php精品源码栏目提醒】:网学会员为广大网友收集整理了,【精品IT教程】如何在Linux下搭建apache服务器 - 计算机教材,希望对大家有所帮助!
我们准备学习apache服务器做apache需要DNS服务器大家要把自己的DNS服务器调试好排错很简单 1、使用named-check 命令检查配置文件 2、查看日志文件的提示 3、检查自己的网络还有主机环境设置是否正确 named-checkzone 域名 区域文件 WEB服务器的架设在linux有一个很著名的架构叫lamplinuxapachemysqlphp 我们主要说apache但是有兴趣的可以去鸟站找phpbb是一个论坛的软件基于lamp架构挺简单有兴趣就可以自己去安装来调试下 先简单介绍下http协议吧 WWW的目的就是使信息更易于获取而不管它们的地理位置在哪里。
当使用超文本作为WWW文档的标准格式后人们开发了可以快速获取这些超文本文档的协议——HTTP协议即超文本传输协议 HTTP是应用级的协议主要用于分布式、协作的信息系统。
HTTP协议是通用的、无状态的其系统的建设和传输与数据无关。
HTTP也是面向对象的协议可以用于各种任务包括名字服务、分布式对象管理、请求方法的扩展、命令等。
http和https分别使用80、443端口 在Internet上HTTP通信往往发生在TCP/IP连接上其默认的端口为80也可以使用其他端口。
Web服务的实现采用客户/服务器模型 客户机运行WWW客户程序——浏览器它提供良好、统一的用户界面。
浏览器的作用是解释和显示Web页面响应用户的输入请求并通过HTTP协议将用户请求传递给Web服务器 Web服务器运行服务器程序它最基本的功能是侦听和响应客户端的HTTP请求向客户端发出请求处理结果信息。
Web服务通常可以分为两种静态Web服务和动态Web服务。
这就是http的运行原理了 1.Web浏览器使用HTTP命令向一个特定的服务器发出Web页面请求。
2.若该服务器在特定端口通常是TCP 80端口处接收到Web页面请求后就发送一个应答并在客户和服务器之间建立连接 3.服务器Web查找客户端所需文档若Web服务器查找到所请求的文档就会将所请求的文档传送给Web浏览器。
若该文档不存在则服务器会发送一个相应的错误提示文档给客户端。
Web浏览器接收到文档后就将它显示出来。
4、当客户端浏览完成后就断开与服务器的连接。
linux下的web服务器软件使用的apache大家应该知道吧apache也是美国军方的一种大型直升机 开放源代码的Apache阿帕奇服务器起初由Illinois大学Urbana-Champaign的国家高级计算程序中心开发后来Apache被开放源代码团体的成员不断地发展和加强。
渐渐地它开始在功能和速度上超越其他Web服务器。
由于Apache服务器拥有牢靠可信的美誉因此从1995年1月以来Apache一直是Internet上最流行的Web服务器 后台进程httpd 脚本/etc/rc.d/init.d/httpd 使用端口80http443https 所需RPM包httpd 配置路径/etc/httpd/ 默认网站存放路径/var/www/ 优点免费稳定速度快 下面我们先安装apache yum install “httpd” 或rpm安装、不过自己喜欢编译也可以 /config make ampamp make install 安装好了启动apache有特殊要求的可以自己编译但是我们现在用不了那么深 而且编译的不可以自动升级升级软件只有找新版本的重新编译安装配置 我们学apache主要学会以下基本功能 httpd.conf文件的格式 Web服务的基本配置 创建虚拟目录 设置目录权限 用户认证 虚拟主机的配置 先介绍下apache的常用目录 这个是apache的所有配置文件存放的目录 这个是网页文件存放目录一般在html内 apache的主配置文件 请大家用自己熟悉的编辑器打开吧 httpd.conf配置文件主要由全局环境、主服务器配置和虚拟主机3个部分组成。
每部分都有相应的配置语句该文件所有配置语句的语法为“配置参数名称 参数值”的形式。
httpd.conf中每行包含一条语句行末使用反斜杠“”可以换行但是反斜杠与下一行中间不能有任何其他字符包括空白 httpd.conf的配置语句除了选项的参数值以外所有选项指令均不区分大小写可以在每一行前用“”号表示注释。
全局配置的相关参数全局的参数一般不用改哦 ServerType 选择系统激活服务器的方式。
可以是inetd或standalone 默认应该是独立的stationalone ServerRoot 设定Apache 安装的绝对路径 TimeOut 设定 服务器接收至完成的最长等待时间 KeepAlive 设定服务器是否开启连续请求功能真实服务器一般都要开启 Port 设定http服务的默认端口。
User/Group 设定 服务器程序的执行者与属组这个一般是apache 提示一点如果RHCE考试的时候题目让你修改存放网页文件的权限比如是750这样你一定要注意了所有用户的读取权限里没有了apache对网页文件的读取权限也没有了网站也不能正常访问的所以你需要修改组为apache或者使用acl给apache用户访问权限修改为755可以这个看题目要求考试的测试网页是html的就简单的字符能访问就行了你别去改全局的什么连续请求啊最大闲置进程啊之类的考试嘛能达到效果就OK不是做优化 一般在apache里都说用户这个组没多大意思的是建立用户的时候就建立默认组了网页的所有组或者所有者改成apache ps: /dev/null 是编程使用 把错误输出导进去 zero是无限零资源设备在测试lvm和quota的时候使用 /dev/null是黑洞给他什么吃什么。
/dev/zero是太阳取之不尽用之不竭。
嘿嘿我们老师说的。
很经典 o∩_∩o... Michael分割线 我们简单介绍了apache下面我们就开始实战 打开firefox输入自己的域名 如果能看见红色的redhat的测试页面就证明你的安装没有问题如果看不见你就要从新安装或者调试你的网络了我们说过网页文件默认是放在/var/www/html中的我们现在就自己去写个网页简单的来测试下 然后重新访问你的服务器看看有什么变化 这个是默认的情况我从网页down个网页我现在把他放到/var/www/html中去 打开主配置文件搜索index.html 看见DirectoryIndex了么这个位置就是定义主页文件的名字的自己可以随意修改但是一般网页开发都写成了index.htmlindex.htm default.html 等等所以你也最好这样写 我添加了一个index.
php 方便一会我们测试apache支持
php如果找不到系统会出现redhat的测试页面你可以试试 搜索/var/www/html documentRoot 就是定义网站的默认网站存放目录如果考试要让你修改默认网站目录的位置你就需要修改这个位置 现在我们测试把默认网站目录改到root家目录下 第一步修改DocumentRoot这个位置 第二步修改目录的权限设置 保存退出并重启httpd服务 启动失败了我们把selinux暂时关闭了测试看是不是selinux的原因用setup 来关闭selinux 关闭后httpd服务就启动起来了 但是权限还是不对直接再次搜索/var/www/html 找到就改成新的目录就可以了因为/root目录的权限是750所以apache用户没有访问权限我们要给apache用户访问权限简单点改成755就可以了 建个
PHP页面哈 现在就可以访问了下面我们要解决的就是selinux的问题我们现打开selinux 再次访问 又是权限拒绝了我们就需要修改selinux的上下文了 使用chcon 命令来修改上下文 -R 是递归修改连目录里面的一起修改 --reference 是拷贝 /var/www/html的上下文应用到/root/web下去 ls -Z是查看文件的上下文 修改上下文后就又可以访问了 Michael分割线 下面我们就讲虚拟机主机 1、基于名称的虚拟主机 查看你的DNS服务器是否对你服务器做出了两个正向解析 我的有三个正向解析说说基于名称的虚拟机主机吧这个是现在很常用的技术一个服务器放一个公司的网页不现实一般都是放了几个公司的网站但是服务器怎么区分用户访问网站呢这就是虚拟主机技术虚拟机主机有基于域名和基于IP两种方法一般使用基于域名的应为现在IPV4的公网IP很珍贵的如果一个网站一个IP那么就会浪费掉很多IP如果使用域名就不会有这种浪费 我们实现基于域名的虚拟机主机 步骤 1、需要两个域名解析到你的服务器我的是 server.michael.com 192.168.8.188 urlwww.michael.com/url 192.168.8.188 2、建立/var/www/server 目录用于存放server.michael.com的网站 3、给/var/www/server 和/var/www/thml分别放入网站内容要不一样方便我们区分 5、修改配置文件 取消NameVirtualHost这行的注释并写入你服务器的IP地址这条的意思是启用基于名称的虚拟机主机 然后在最后写入虚拟机主机的内容 ltgt是主机通告前后要对应 serveradmin 是管理员邮箱 documentroot 是网页目录 servername 是域名 下面两个是日志文件 由于我们两个虚拟主机所以我们写两个如果有多个你就需要定义多个完成后保存退出重启服务后就可以测试了 Michael分割线 下节课我们继续讲基于IP地址的虚拟主机如何提供网站下载如何使用apache自带的basic认证如何支持
php和jsp还有支持cgi 配置步骤 1、添加一个虚拟机网卡并配置一个IP地址 临时使用重新启动网卡消失 2、基于上面的操作修改配置文件 注释掉这行取消基于域名的虚拟主机 下面只需要修改virtualhost 的IP地址多了一个临时的虚拟网卡这个虚拟网卡上也配置了IP地址 注意地址栏的IP地址不同哦 下一个功能基于web页面的资源下载 使用别名来实现当然别名也可以实现网站目录转换 下面我们来看看别名的配置 修改配置文件 搜索Alias找到下面的位置 我们现设置一个别名对我们刚才那个网站的访问 /test 是别名名称 /root/web/site 是真实位置 注意真实位置的权限和selinux上下文一定要正确。
注意Directory是对你真是目录的权限设置我们刚才修改默认家目录都修改过了所以这里我们就不用修改了 保存退出测试 注意我的地址栏的写法 这个也是别名的一个功能当然别名还能实现用户主页的功能 下面我们来实现网页的资源下载 1、添加别名 2、对/VAR/FTP/PUB目录设置权限 options选项必须要有Multiviews参数然后保存退出重启测试 就出现了貌似FTP的东西可以提供资源下载 下一个功能basic基本认证基于用户名和密码 1、修改配置文件 基于我们刚才的down别名设置 提示一下 ltgt里面是目录 Authtype 是认证类型 Basic apache自带的基本认证 Authname 认证名字是提示你输入密码的对话框的提示语 Authuserfile 是存放认证用户的文件 require user 允许指定的一个或多个用户访问就是后面跟的redking用户 如果认证文件里面还有其他用户还是不能访问 require valid-user 的话就是所有认证文件里面的用户都可以访问 require group 授权给一个组这个参数很少用 下面我们开始创建认证用户文件 这样就创建了一个redhat用户重新启动服务器测试效果 可以访问 还有一种是更灵活的认证方式这种认证需要修改配置文件当然用户是没有权限修改配置文件了他想使用认证怎么办这个就使用基于目录的认证把认证文件放在用户可以管理的主业目录内这样用户就可以随意修改了 我们对/var/www/html目录进行设置 访问192.168.8.188就可以访问到/var/ww/html目录 下面我们在目录内放入认证文件 然后创建用户51cto 重新启动服务器并测试 OK测试成功还有4个内容我们下季在讲吧cgi的支持
php的支持jsp的支持https的配置 Michael分割线 上季我们讲到虚拟主机的实现、还有apache的basic访问控制本季我们将学习CGI的支持
php的支持jsp的支持 重新启动下你的apache看看还能不能正常工作 最好把这个访问控制取消了大家知道怎么取消么 在目录权限里面把Authconfig 参数改成none 然后重新启动服务 现在进去就不需要密码了 基于IP的虚拟主机就是在一个服务器上有多个IP访问不同的IP访问到不同的网站配置相当简单。
给网卡增加一个IP地址 我们这种方法是临时的增加一个IP地址如果想要这个IP地址在网卡重新启动以后还要有效就需要修改配置文件我们先重新启动网卡试试 刚才建立的虚拟网卡就消失了下面我们来配置一个长期有效的虚拟网卡 进入 /etc/sysconfig/network-scripts/网络设备的配置文件目录 然后用vim修改eth00 我修改了3个地方 1、DEVICE名字 2、IP地址 3、删除了MAC地址 然后保存退出重新启动网卡 现在虚拟网卡就一直有效了用xp ping下看能不能ping通虚拟网卡 OK下面我们开始修改配置文件让服务器支持基于IP的虚拟主机 注释这行NameVirtualHost 192.168.8.188:80 然后修改virtualhost的IP地址 下面对应相对的目录和域名 Documentroot 是用户目录 servername 是域名 保存退出后重新启动服务器 Michael分割线 下一个功能支持Cgi 1、安装perl包 yum install perl rootmasterdns yum install perl Loading quotsecurityquot plugin Loading quotrhnpluginquot plugin Loading quotinstallonlynquot plugin This system is not registered with RHN. RHN support will be disabled. Setting up Install Process Setting up repositories rhel-Server 100 1.1 kB 00:00 rhel-VT 100 1.1 kB 00:00 Reading repository metadata in from local files primary.xml.gz 100 753 kB 00:00 2158/2158 primary.xml.gz 100 9.5 kB 00:00 31/31 Parsing package install arguments Resolving Dependencies --gt Populating transaction set with selected packages. Please wait. ---gt Downloading header for perl-IO-Socket-INET6 to pack into transaction set. perl-IO-Socket-INET6-2.51 100 2.7 kB 00:00 ---gt Package perl-IO-Socket-INET6.noarch 0:2.51-2.fc6 set to be updated ---gt Downloading header for perl-Archive-Tar to pack into transaction set. perl-Archive-Tar-1.30-1.f 100 5.0 kB 00:00 ---gt Package perl-Archive-Tar.noarch 0:1.30-1.fc6 set to be updated ---gt Downloading header for perl-Convert-ASN1 to pack into transaction set. perl-Convert-ASN1-0.20-1. 100 4.3 kB 00:00 ---gt Package perl-Convert-ASN1.noarch 0:0.20-1.1 set to be updated ---gt Downloading header for perl-Net-Telnet to pack into transaction set. perl-Net-Telnet-3.03-5.no 100 3.5 kB 00:00 ---gt Package perl-Net-Telnet.noarch 0:3.03-5 set to be updated ---gt Downloading header for perl-SGMLSpm to pack into transaction set. perl-SGMLSpm-1.03ii-16.2. 100 4.0 kB 00:00 ---gt Package perl-SGMLSpm.noarch 0:1.03ii-16.2.1 set to be updated ---gt Downloading header for perl-Mozilla-LDAP to pack into transaction set. perl-Mozilla-LDAP-1.5.2-4 100 6.5 kB 00:00 ---gt Package perl-Mozilla-LDAP.i386 0:1.5.2-4.el5 set to be updated ---gt Downloading header for perl-NKF to pack into transaction set. perl-NKF-2.07-1.1.fc6.i38 100 6.0 kB 00:00 ---gt Package perl-NKF.i386 0:2.07-1.1.fc6 set to be updated ---gt Downloading header for perl-XML-Grove to pack into transaction set. perl-XML-Grove-0.46alpha- 100 8.7 kB 00:00 ---gt Package perl-XML-Grove.noarch 0:0.46alpha-29.1.1 set to be updated ---gt Downloading header for perl-LDAP to pack into transaction set. perl-LDAP-0.33-3.fc6.noar 100 16 kB 00:00 ---gt Package perl-LDAP.noarch 1:0.33-3.fc6 set to be updated ---gt Downloading header for perl-BSD-Resource to pack into transaction set. perl-BSD-Resource-1.28-1. 100 7.1 kB 00:00 ---gt Package perl-BSD-Resource.i386 0:1.28-1.fc6.1 set to be updated ---gt Downloading header for perl-Date-Calc to pack into transaction set. perl-Date-Calc-5.4-1.2.2. 100 9.8 kB 00:00 ---gt Package perl-Date-Calc.i386 0:5.4-1.2.2.1 set to be updated ---gt Downloading header for perl-Crypt-SSLeay to pack into transaction set. perl-Crypt-SSLeay-0.51-11 100 6.9 kB 00:00 ---gt Package perl-Crypt-SSLeay.i386 0:0.51-11.el5 set to be updated ---gt Downloading header for perl-Socket6 to pack into transaction set. perl-Socket6-0.19-3.fc6.i 100 3.3 kB 00:00 ---gt Package perl-Socket6.i386 0:0.19-3.fc6 set to be updated ---gt Downloading header for perl-Digest-HMAC to pack into transaction set. perl-Digest-HMAC-1.01-15. 100 3.7 kB 00:00 ---gt Package perl-Digest-HMAC.noarch 0:1.01-15 set to be updated ---gt Downloading header for perl-XML-Twig to pack into transaction set. perl-XML-Twig-3.26-1.fc6. 100 5.8 kB 00:00 ---gt Package perl-XML-Twig.noarch 0:3.26-1.fc6 set to be updated ---gt Downloading header for perl-Carp-Clan to pack into transaction set. perl-Carp-Clan-5.3-1.2.1. 100 3.2 kB 00:00 ---gt Package perl-Carp-Clan.noarch 0:5.3-1.2.1 set to be updated ---gt Downloading header for perl-Digest-SHA1 to pack into transaction set. perl-Digest-SHA1-2.11-1.2 100 5.2 kB 00:00 ---gt Package perl-Digest-SHA1.i386 0:2.11-1.2.1 set to be updated ---gt Downloading header for perl-XML-Parser to pack into transaction set. perl-XML-Parser-2.34-6.1. 100 9.4 kB 00:00 ---gt Package perl-XML-Parser.i386 0:2.34-6.1.2.2.1 set to be updated ---gt Downloading header for perl-IO-Zlib to pack into transaction set. perl-IO-Zlib-1.04-4.2.1.n 100 4.1 kB 00:00 ---gt Package perl-IO-Zlib.noarch 0:1.04-4.2.1 set to be updated ---gt Downloading header for perl-TimeDate to pack into transaction set. perl-TimeDate-1.16-5.el5. 100 7.8 kB 00:00 ---gt Package perl-TimeDate.noarch 1:1.16-5.el5 set to be updated ---gt Downloading header for perl-DBI to pack into transaction set. perl-DBI-1.52-1.fc6.i386. 100 16 kB 00:00 ---gt Package perl-DBI.i386 0:1.52-1.fc6 set to be updated ---gt Downloading header for perl-DBD-Pg to pack into transaction set. perl-DBD-Pg-1.49-1.fc6.i3 100 6.3 kB 00:00 ---gt Package perl-DBD-Pg.i386 0:1.49-1.fc6 set to be updated ---gt Downloading header for perl-Net-IP to pack into transaction set. perl-Net-IP-1.25-2.fc6.no 100 4.8 kB 00:00 ---gt Package perl-Net-IP.noarch 0:1.25-2.fc6 set to be updated ---gt Downloading heade.
上一篇:
【精品推荐】Nginx在校园网络中的应用研究
下一篇:
计算机实践报告论文