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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用document对象操作cookie

    使用document对象操作cookie1.使用document对象的cookie属性,可以让你读取、添加和更新文档(当期HTML)所关联的cookie。2.当你读取document.cookie时,会得到当期文档的所有cookie。3.cookie的形式是如"name=value"的名值对。4.如果存在多个cookie一起返回,使用;隔开。“name1=value1;name2=value2”。所以对于添加和更新cooki…

    2022年7月27日
    3
  • redis的雪崩和穿透_redis击穿 穿透 雪崩,怎么预防

    redis的雪崩和穿透_redis击穿 穿透 雪崩,怎么预防Redis雪崩:查询时Redis没有数据本来先从Redis里面查某个数据但是Redis中这个数据刚好被删除了,还没来得及更新一瞬间很多请求直接进入了Mysql进行查询而mysql承受不了太大压力,就会出现雪崩Redis穿透:跳过我们预想的数据本来先从Redis里面查某个数据但是Redis中没有这个数据那么请求就会始终从mysql中查询Redis没有起到作用Redis雪崩和Redis穿透的根本原因是:开发时,开发人员并未考虑到这些问题。Redis雪崩和Redis穿透的性质:大量

    2022年9月14日
    3
  • 浮点数规格化表示例题_浮点数规格化阶码表示

    浮点数规格化表示例题_浮点数规格化阶码表示一、浮点数的表示格式浮点数表示法是指以适当的形式将比例因子表示在数据中,让小数点的位置根据需要而浮动。这样,在位数有限的情况下,既扩大了数的表示范围,又保持了数的有效精度。阶码:阶码是整数,阶符和m位阶码的数值部分共同反映浮点数的表示范围及小数点的实际位置,常用移码或补码表示。IEEE754标准中采用移码的表示形式。尾数:数符表示浮点数的符号,尾数的数值部分的位数n反映浮点…

    2025年6月15日
    4
  • JAVA设置HttpOnly Cookies

    JAVA设置HttpOnly CookiesHttpOnlyCook 是一个 cookie 安全行的解决方案 在支持 HttpOnlycook 的浏览器中 IE6 FF3 0 如果在 Cookie 中设置了 HttpOnly 属性 那么通过 JavaScript 脚本将无法读取到 Cookie 信息 这样能有效的防止 XSS 攻击 让网站应用更加安全 nbsp 但是 J2EE4 J2EE5 的 Cookie 并没有提供设置 HttpOnly 属性

    2025年7月25日
    3
  • js 数组转json,json转数组[js 数组与json 互相转换]

    js 数组转json,json转数组[js 数组与json 互相转换]js数组和json经常需要相互转换,在此记录它们之间的转换代码://json字符串转数组vararray=[99,100,{“name”:”Jerry”},{“site”:”hdjc8.com”}];JSON.stringify(array);alert(array);//json字符串转数组varj…

    2022年6月21日
    34
  • 一分钟详解「手眼标定」基本原理[通俗易懂]

    一分钟详解「手眼标定」基本原理[通俗易懂]原文首发于微信公众号【视觉IMAX】。一前言机器人的视觉系统分为固定场景视觉系统和运动的「手-眼」视觉系统。摄像机与机器人的手部末端,构成手眼视觉系统。根据摄像机与机器人相互位置的不同,手眼视觉系统分为Eye-in-Hand系统和Eye-to-Hand系统。Eye-in-Hand系统的摄像机安装在机器人手部末端(end-effector),在机器人工作过程中随机器人一起运动。Eye-to-…

    2022年5月5日
    172

发表回复

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

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