apache2服务器_apache2配置

apache2服务器_apache2配置摘要:在本地做WEB开发,同时多个项目,希望将每个项目都使用一个域名指向各自的项目根目录。要实现这样的目的,虚拟主机是必须要掌握的。本篇从一个小白用户的视角开始从零开始深入了解并实例配置演示。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  摘要:在本地做WEB开发,同时多个项目,希望将每个项目都使用一个域名指向各自的项目根目录。要实现这样的目的,虚拟主机是必须要掌握的。本篇从一个小白用户的视角开始从零开始深入了解并实例配置演示。

一 . 开发环境、背景

Web Server :
  OS : 基于debian的raspberry pi(传说中的树莓派),apache的配置文件同ubuntu相同,与redhat不同;
  web server : Apache/2.4.7 (Ubuntu);
  apache安装方式:sudo apt-get install apache2;
  apache配置文件目录:/etc/apache2/;
  IP Address : 192.168.1.100;

Web Client :
  OS : Windows ;
  Web Browser : firefox;
  说明:实际开发中在raspberrypi机器上安装配置了samba服务,共享了/home目录,配置http服务根目录在/home下,在windows上编辑html文件,浏览器预览效果;

二 . 需要了解的知识点

  这部分心急的人可以直接跳过,看后面一节。

2.1 主机名和域名

  主机名代表一台主机;
  域名代表一个区域;
  举例来说:www.sina.com.cn
  其中www是提供网页服务的机器;
  其中sina.com.cn是域名;
  提供服务的机器还可能有sport/news等等;
  那么完整的主机名就成了 sport.sina.com.cn;
  所以 完整的主机名=计算机名.域名

  另外在linux环境,$hostname就显示当前机器的主机名;

2.2 windows DNS静态映射的配置文件

  文件路径:C:\Windows\System32\drivers\etc\hosts

三 . 虚拟主机配置

概述:
  访问web服务,本质上看(从协议上)是访问某个IP的主机上的某个端口(默认是80);
  通常我们在本地架设好WEB服务器以后,会在服务器的根目录下建立多个项目文件夹,所以通常访问一个项目应用的时候是这样的URL:http://hostname/projectDocumentName/index.php
  这样的URL看起来很不爽,而且如果html页面上有一些图片的路径,如果使用了绝对路径的话,最后开发完成部署在云服务器上的根目录的时候,这些图片的路径就会找不到了。虚拟主机就解决了这样的问题;
  虚拟主机通常需要通过访问不同的域名或端口实现对不同项目文件的访问(具体到服务器里就是不同目录);
  本文只介绍最基本也最常用的基于端口和域名的虚拟主机;
  apachectl 可以用来调试配置文件是否正确

3.1 基于端口的虚拟主机

  首先要配置/etc/apache2/ports.conf
  在其中加上
  Listen 81
  这样apache服务器就可以监听81端口是否有HTTP请求

  然后需要配置/etc/apache2/sites-available
  里面有一个default配置文件,复制一下,重命名为yourName-ports
  里面修改为:

<VirtualHost *:81>
        ServerAdmin webmaster@localhost
        DocumentRoot /home/pi/www/TP_message/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/pi/www/TP_message/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/yourName-error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/yourName-access.log combined
</VirtualHost>

  然后通过sudo a2ensite yourName-ports来加载这个配置
  或者可以通过sudo a2dissite yourName-ports来取消这个配置
  然后重启apache sudo service apache2 restart
可以参考:点击这里

3.2 基于域名的虚拟主机

  基于域名的虚拟主机的原理是:web server部署的机器只有一个IP地址,要部署两个基于域名的虚拟主机,分别是raspberry.com和yiidemo.raspberry.com,在其他机器上设置好hosts文件,在浏览器中请求这两个域名,两个域名都被解释为web server 的IP地址,不同的是两次http请求的头信息里面的host字段是不同的,apache就是基于此判断要请求的是哪个虚拟主机的目录。

1 . 在/etc/apache2/ports.conf
  不要注释掉NameVirtualHost *:80

2 . /etc/apache2/sites-available
  sudo cp default yiidemo.raspberry.com
  sudo vi yiidemo.raspberry.com
编辑这个配置文件为:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName yiidemo.raspberry.com
        DocumentRoot /home/pi/www/yiiTest/demo1
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/pi/www/yiiTest/demo1>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/yiiDemo-error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/yiiDemo-access.log combined
</VirtualHost>

3 . 重启apache2
  sudo service apache2 reload
  sudo service apache2 restart

<完>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192036.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • wireshark抓包分析UDP

    wireshark抓包分析UDP1 什么是 UDP 传输层有两个协议 之前讨论过的 TCP 协议和现在要说的 UDP 协议 二者互为补充 UDP 是无连接的协议 它无需经过繁琐的握手就能建立连接并且发送已封装的 IP 数据包 它能做的事情很少 而面向连接的 TCP 协议几乎可以做所有事情 特点 UDP 最大的三个特点是无连接 不可靠 快速传输 UDP 提供了无连接通信 且不对传送数据包进行可靠性保证 适合于一次传输少量数据 UDP 传输的可靠性由应用层负责 常用的 UDP 端口号有 53 DNS 69 TFTP 161 SNMP UDP 报文没有可

    2025年6月20日
    2
  • python3中for循环的用法_Python3 for循环语句

    python3中for循环的用法_Python3 for循环语句语法foriterating_varinsequence:statements(s)如果一个序列中包含一个表达式列表时,它需要首先计算。然后,序列中的第一项被分配给所述迭代变量iterating_var,接下来,语句块被执行。列表中的每一项都被分配到iterating_var,并执行语句(statement)块,直到整个序列完成。流程图range()函数内置函数range()是迭代…

    2022年8月12日
    7
  • HTTP的请求方法OPTIONS

    HTTP的请求方法OPTIONS

    2021年10月13日
    62
  • pycharm使用python_pycharm和pytorch区别

    pycharm使用python_pycharm和pytorch区别本小节只讲如何通过pycharm使用pytorch,pytorch的详细安装点击这里https://blog.csdn.net/huang_shao1/article/details/82958551anaconda的详细安装点击这里https://blog.csdn.net/huang_shao1/article/details/82958615如图所示,我们编辑好了自己pytorch项…

    2022年8月28日
    6
  • VScode快捷键和设置

    VScode快捷键和设置一.快捷键单行注释 ctrl+/ 多行注释 alt+shift+a 复制上一行代码到下一行 alt+shift+↓ 移动代码到上一行或下一行 alt+↑,alt+↓ 返回到上次编辑位置 alt+← 跳转到指定文件 ctrl+p 全文搜索字符 ctrl+shift+f 格式化代码 shift+alt+f…

    2022年4月30日
    65
  • 软件设计——UML类图详解「建议收藏」

    一:UML类图思维导图 思维导图地址:http://naotu.baidu.com/file/df1cb03489378d2a541d3d8d181399da?token=2eb1feb8006fa607 密码:33bZ二:详细分析和介绍下面就从上面的思维导图开始,详细的介绍UML类图! 在讲解之前请看关系线条图(一定要牢记): 1、 什么是UML,概念是什么? 统一建模语言

    2022年2月25日
    75

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号