用apache搭建web服务器

简介:

 一。基于域名的虚拟主机

1,

 
  1. [root@localhost ~]# uname -r 
  2. 2.6.32-71.el6.i686 
 
  1. [root@localhost ~]# cat /etc/redhat-release 
  2. Red Hat Enterprise Linux Server release 6.0 (Santiago) 

2,安装httpd

 
  1. yum install httpd -y 
3,编辑配置文件
 
  1. vim /etc/httpd/conf/httpd.conf 
 
  1. NameVirtualHost *:80将这一行的#去掉 
 
  1. <VirtualHost *:80> 复制这一行下面的7行 粘贴至最后(Y7Y P) 
  2. 修改成为 
  3. <VirtualHost *:80> 
  4.     ServerAdmin  1@qq.com 管理员的邮箱 
  5.     DocumentRoot /var/www/html 发布目录 
  6.     ServerName www.test1.com 一个虚拟主机的域名 
  7.     (其余均为日志,可以不要) 
  8. </VirtualHost> 
  9. <VirtualHost *:80> 
  10.     ServerAdmin  1@qq.com 
  11.     DocumentRoot /www/virtual 另一个虚拟主机的发布目录 
  12.     ServerName www.test2.com 另一个虚拟主机的域名 
  13. </VirtualHost> 
  14.  
  15. [root@localhost virtual]# mkdir /www/virtual -p 
  16. [root@localhost virtual]# vi /www/virtual/index.html 
  17. www.test2.com 
 
  1. [root@localhost virtual]# vi /var/www/html/index.html 
  2. www.test1.com 
 
  1. [root@localhost virtual]# ll -Z /var/www/html/ 查看这个目录的安全上下文
  2. -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 \ 
  3. -rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html 
 
  1. [root@localhost virtual]# chcon index.html -R -t httpd_sys_content_t /www  修改安全上下文
 
  1. [root@localhost virtual]# /etc/init.d/httpd restart 重启服务 

WINDOW下

C:\Windows\System32\drivers\etc\hosts用记事本打开,添加

192.168.1.12 www.test1.com

192.168.1.12 www.test2.com

LINUX下 vi /etc/hosts

 

192.168.1.12 www.test1.com

192.168.1.12 www.test2.com

测试:在浏览器重输入www.test1.com会显示虚拟机1的发布目录里的东西

      在浏览器重输入www.test2.com会显示虚拟机2的发布目录里的东西

 

二,用户认证

在/www/virtual目录下建secret目录,在secret目录下建index.html

 

 
  1. [root@localhost ~]# vi /www/virtual/index.html 
  2. This  is a secret! 

 

在发布目录为、www/virtal的块内的后面加上

 

 
  1. <Directory /www/virtual/secret> 
  2.    authuserfile   /etc/httpd/conf/passwd 
  3.    authname  "secret" 
  4.    authtype    basic 
  5.    require   valid-user 
  6.    require  user 123 
  7.  </Directory> 

这样这个块就变成了

 
  1. <VirtualHost *:80> 
  2.     ServerAdmin  1@qq.com 
  3.     DocumentRoot /www/virtual 
  4.     ServerName www.test2.com 
  5.    <Directory /www/virtual/secret> 
  6.     authuserfile   /etc/httpd/conf/passwd 
  7.     authname  "secret" 
  8.     authtype    basic 
  9.     require   valid-user 
  10.     require  user 123 用户名
  11.   </Directory> 
  12. </VirtualHost> 
 
  1. [root@localhost ~]# htpasswd -cm /etc/httpd/conf/passwd 123 
  2. 给用户设置密码 

 

 
  1. [root@localhost ~]# /etc/init.d/httpd restart 

在浏览器输入http://www.test2.com/secret/

输入用户,密码 访问,若没有权限,修改安全上下文

三。基于端口号的虚拟主机

因为在/etc/httpd/conf/httpd.conf 里包含 Include conf.d/*.conf,故在 /etc/httpd/conf.d目录下

vim port.conf

 

 
  1. [root@vm1 www]# vim /etc/httpd/conf.d/port.conf 
  2. Listen 81 开启端口81
  3. Listen 82  开启82
  4. <VirtualHost 192.168.122.11:81> 
  5. ServerName 81.qq.com   可以不要
  6. ServerAdmin  cc@qq.com  省略日志文件
  7. DocumentRoot /www/virtual 
  8. </VirtualHost> 
  9. <VirtualHost 192.168.122.11:82 > 
  10. ServerName 81.qq.com 
  11. ServerAdmin  cc@qq.com 
  12. DocumentRoot /var/www/html 
  13. </VirtualHost> 
 
  1. [root@vm1 ~]# /etc/init.d/httpd restart 
  2. Stopping httpd:                                            [FAILED] 
  3. Starting httpd: Warning: DocumentRoot [/www/virtual] does not exist 
  4. (13)Permission denied: make_sock: could not bind to address [::]:81 
  5. (13)Permission denied: make_sock: could not bind to address 0.0.0.0:81 
  6. no listening sockets available, shutting down 
  7. Unable to open logs 
  8.                                                            [FAILED] 
 
  1. [root@vm1 www]# ll -Z 
  2. drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin 
  3. drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 error 
  4. drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html 
  5. drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 icons 
  6. [root@vm1 www]# chcon -R -t httpd_sys_content_t /www 
  7. [root@vm1 www]# /etc/init.d/httpd restart 
  8. Stopping httpd:                                            [FAILED] 
  9. Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:81 
  10. (13)Permission denied: make_sock: could not bind to address 0.0.0.0:81 
  11. no listening sockets available, shutting down 
  12. Unable to open logs 
  13.                                                            [FAILED] 
  14. [root@vm1 www]# semanage port -a -t http_port_t  -p tcp 81 
  15. -bash: semanage: command not found 找不到这个命令 
  16. [root@vm1 www]# yum install policycoreutils-python -y 安装命令 
  17. [root@vm1 www]# semanage port -l|grep http 
  18. http_cache_port_t              tcp      3128, 8080, 8118, 10001-10010 
  19. http_cache_port_t              udp      3130 
  20. http_port_t                    tcp      80, 443, 488, 8008, 8009, 8443 
  21. pegasus_http_port_t            tcp      5988 
  22. pegasus_https_port_t           tcp      5989 
  23. [root@vm1 www]# semanage port -a -t http_port_t  -p tcp 81 
  24. [root@vm1 www]# semanage port -a -t http_port_t  -p tcp 82 
  25. [root@vm1 www]# /etc/init.d/httpd restart 
  26. Stopping httpd:                                            [FAILED] 
  27. Starting httpd:                                            [  OK  ] 好了 
  28. 在两个主机的目录里写上东西,浏览器访问 

四。基于IP地址的虚拟主机

 

 
  1. [root@vm1 www]# ifconfig eth0:1 192.168.122.111 netmask 255.255.255.0 
  2. [root@vm1 www]# ifconfig eth0:1 up  临时添加子接口IP 
  3. [root@vm1 www]# vim /etc/httpd/conf/httpd.conf  
  4. <VirtualHost 192.168.122.11:80> 
  5.     ServerAdmin cc@qq.com 
  6.     DocumentRoot /www/virtual 
  7.     ServerName 11.example.com 
  8.     ErrorLog logs/dummy-host.example.com-error_log 
  9.     CustomLog logs/dummy-host.example.com-access_log common 
  10. </VirtualHost> 
  11. <VirtualHost 192.168.122.111:80> 
  12.     ServerAdmin cc@qq.com 
  13.     DocumentRoot /var/www/html 
  14.     ServerName 111.example.com 
  15.     ErrorLog logs/dummy-host.example.com-error_log 
  16.     CustomLog logs/dummy-host.example.com-access_log common 
  17. </VirtualHost> 
  18. 重启HTTP OK 

cp ifconfig-eth0  ifconfig-eth0:1

vi ifconfig-eth0:1

DEVICE=eth0:1

IPADDR=192.168.122.111

重启网卡即可  这是永久添加网卡



本文转自 369蓝宝 51CTO博客,原文链接:http://blog.51cto.com/3739387/1154476,如需转载请自行联系原作者

相关文章
|
4月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
105 3
|
5月前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
74 3
|
6月前
|
缓存 前端开发 Java
打造未来兼容的Web应用:Apache Wicket引领响应式设计的热潮
【9月更文挑战第4天】在软件开发领域,构建响应式Web应用至关重要。Apache Wicket作为一个强大的Java框架,支持响应式设计,确保应用在不同设备上均有出色体验。本文通过示例代码介绍使用Wicket的最佳实践,涵盖页面与组件模型、CSS媒体查询及自定义标记处理器的应用。同时,文章强调了优化加载时间、增强交互性和提升可访问性的重要性,帮助开发者打造高性能且美观的Web应用。
85 3
|
6月前
|
Java API Apache
从零到英雄的蜕变:如何用Apache Wicket打造你的第一个Web应用——不仅是教程,更是编程之旅的启航
【9月更文挑战第4天】学习Apache Wicket这一开源Java Web应用框架是一段激动人心的旅程。本文将指导你通过Maven搭建环境,并创建首个“Hello, World!”应用。从配置`pom.xml`到实现`HelloWorldApplication`类,再到`web.xml`的设置,一步步教你构建与部署简单网页。适合初学者快速上手,体验其简洁API与强大组件化设计的魅力。
161 1
|
7月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
362 0
|
7月前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
66 0
|
7月前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
88 0
|
3月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
445 33
The Past, Present and Future of Apache Flink
|
5月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
1118 13
Apache Flink 2.0-preview released
|
5月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
196 3

热门文章

最新文章

推荐镜像

更多