大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
Ubuntu 14.04 LTS系统中配置Apache2虚拟主机
文章目录
1.安装
用下面命令来安装apache网络服务器:
$ sudo apt-get install apache2
2.检查是否安装成功
安装apache服务器之后,让我们通过这个URL http://你的服务器的IP地址/ 来测试网站服务器是否正常工作
如果出现“It Worked!”的示例页,说明apache服务器已经开始工作了
3.查找根目录
安装完Apache后的最重要的一件事就是要知道Web文档根目录在什么地方,对于Ubuntu而言,默认的是/var/www.
让我们确定根目录吧,按下面步骤:
3.1终端下打开apache2.conf,输入如下命令:
$ sudo vi /etc/apache2/apache2.conf
可以看到,下面的代码:查看根目录
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/> # 根目录就是这个啦,默认端口监听的时候会来到这里,你也可以修改为你喜欢的路径目录,
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
4.找到根目录后,就可以进行下一步了
4.1创建虚拟目录
创建一个公用的文件夹来存放虚拟主机的数据,就是说为你的站点创建一个目录,拿我的项目为例子:为yuyuyu.local这个站点创建一个目录
$ sudo mkdir -p /var/www/yuyuyu.local/public_html
4.2. 设置所有者和权限
上面目录现在只有root拥有权限。我们需要修改这2个目录的拥有权给普通用户,而不仅仅是root用户。
$ sudo chown -R $USER:$USER /var/www/yuyuyu.local/public_html/
“$USER”变量指向了当前的登录用户。
4.3设置读写权限给apache网页根目录(/var/www)及其子目录,这样每个人都可以从目录中读取文件。
$ sudo chmod -R 755 /var/www/
( 递归修改一个目录中所有文件的权限方法:进入目录输入命令 chmod 777 -R *(其中 -R 表示递归处理,*代表所有文件)或 chmod 777 -R /home/abc/dirctoryname,此命令不用进入目录,/home/abc/dirctoryname是目录路径。)
这样,我们就创建好了一些文件夹来保存网络相关数据并分配必要的权限和所属用户。
5.为虚拟主机创建示例页
现在,我们给网站增加示例页。第一步,让我们给虚拟主机yuyuyu.local创建一个示例页。
###5.1给yuyuyu.local虚拟主机创建一个示例页——index.html示例页
$ sudo vi /var/www/yuyuyu.local/public_html/index.html
添加以下内容,保存关闭
<html>
<head>
<title>www.yuyuyu.local</title>
</head>
<body>
<h1>Welcome To yuyuyu.local website</h1>
</body>
</html>
这样示例页index.html就写好了
6.创建虚拟主机配置文件
6.1默认情况下,apache有一个默认的虚拟主机文件叫000-default.conf。我们将会复制000-default.conf文件内容到我们新的虚拟主机配置文件中,注意名字的拓展名一定.conf
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/yuyuyu.local.conf
6.2修改yuyuyu.local.conf文件以符合需求。
打开复制的那个.conf文件
$ sudo vi /etc/apache2/sites-available/yuyuyu.local.conf
-
文件显示内容的相关解释:
VirtualHost *:80> # 数据的开头有个端口,这个端口80是默认的,就是说这个站点的访问是通过这个端口的来直接跟踪到下面 ,’**’代表通配符号。
DocumentRoot /var/www/yuyuyu.local/public_html 这个示例页,80端口是默认的,端口可以自己定义。
…
…
ServerAdmin webmaster@yuyuyu.local # 服务器的管理者,联系方式
ServerName yuyuyu.local #网页上搜索的网址域名,要与/etc/apache2/hosts文件里的名字对应,即需要把这个名字写到hosts里,后面会细说。
ServerAlias www.yuyuyu.local www.yu.local # 网址的别名,可以通过添加,如果你想多个网站名称都取得相同的网站,可以设置多个别名,别名之间用空格隔开
DocumentRoot /var/www/yuyuyu.local/public_html #要显示的网页所在的路径,即上面端口监听的目录,他会监听到这个路径下的全部文件 -
配置文件
理解了相关语句功能后,就进行配置工作吧
有#的是被注释掉的
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com # 在ServerName后加上你的网站名称
# 在ServerAdmin后加上网站管理员的电邮地址,方便别人有问题时可以联络网站管理员。
ServerAdmin webmaster@xxx.local
ServerName xxxx.local
ServerAlias www.xxxx.local
DocumentRoot /var/www/yuyuyu.local/public_html
# 在DocumentRoot后加上存放网站内容的目录路径(用户的个人目录),其他都没什么,最主要的是这个路径一定要正确
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log ##该行指定了自定义的 Apache 错误日志文件的位置
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
如果你的服务器有多个IP,而不同的IP又有着不一样的虚拟用户的话,可以修改成:
<VirtualHost IP地址[:端口]>
...
</VirtualHost>
7.启动虚拟主机
修改虚拟主机文件后,禁用默认的虚拟主机配置(000.default.conf),然后启用新的虚拟主机配置,如下所示。
$ sudo a2dissite 000-default.conf
# 禁用默认的虚拟主机配置(000.default.conf),不禁用也没关系
$ sudo a2ensite yuyuyu.local.conf
# 这句语句会在sites-enabled创建和/sites-available/yuyuyu.local.conf一样的文件
8.添加监听端口
还记得上面说到的端口吗?
最后一个要说的是ports.conf,这里面设置了Apache使用的端口。如果需要调整默认的端口设置,建议编辑这个文件
如果修改了默认的端口VirtualHost *:80>,例如80改为8080后,则需要修改/etc/apache2/ports.conf,添加监听Listen 8080,才能够监听到这个网站,添加的就是/etc/apache2/sites-available/yuyuyu.local.conf里 VirtualHost *:端口>设置的监听端口。自定义的端口会监听到DocumentRoot这里的目录
$ sudo vi /etc/apache2/ports.conf
显示下面的内容,添加进去自定义的端口,Listen xxx
Listen 80
Listen 8000
Listen 8001
Listen 8080
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
9.最后,重启apache服务器。
$ sudo service apache2 restart
就是这样。现在,我们成功地配置了apache虚拟主机在我们的Ubuntu服务器上
10.测试虚拟主机,编辑/etc/hosts文件
$ sudo vi /etc/hosts
出来如下代码:
127.0.0.1 localhost
127.0.1.1 XXX
192.XXX.XXX.XXX yuyuyu.local
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
在文件末尾添加如下所示的虚拟域名。
192.xxx.xxx.xxx yuyuyu.local(ip和对应的名字可以随便起)
保存并关闭文件。不用在此restart即可
—注意是虚拟,也就是说可以随便写,只要在你自己的本机上的浏览器上输入即可看到结果.这时出来的界面是根目录的界面,再加上端口即可到达你想要的index的界面
此时yuyuyu.local即可代替ip,网址可以通过这个名字直接找到网址
效果就是浏览器上输入yuyuyu.local就直接会去找IP 192.168.1.33 服务器收到请求,查看有没有符合的虚拟主机域名,有的话就把相应目录下的WEB文件呈现给请求用户
打开你的浏览器并访问http://yuyuyu.local。你将会看到我们之前创建的示例页。
需要注意的问题
- 域名访问的时候要用ip,只有用ip的时候才可以被别的电脑访问,并且访问的时候加上端口,如:80或者8000
- 在apache的虚拟主机中,如果书写了。ServerAlias www.cq.com www.gd.com这样的语句,就可以给虚拟主机增加多个域名,而且这些域名都访问同一个站点。
- 如果在网站的目录下添加新的文件,复制进去等之类的,在服务器上访问时显示不出来,可能是由于权限的问题,因为复制过来的文件,权限没有改变,修改权限即可显示。
- 远程访问问题,当时测试的时候,用wifi的ip远程访问,却不能成功,插上网线后,不管用网线的ip还是wifi的ip都可以成功访问。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192275.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...