大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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
<完>
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192036.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...