Ubuntu 14.04 LTS系统中配置Apache2虚拟主机[通俗易懂]

Ubuntu 14.04 LTS系统中配置Apache2虚拟主机[通俗易懂]在Ubuntu14.04LTS系统中设置Apache虚拟主机1.安装用下面命令来安装apache网络服务器:$sudoapt-getinstallapache22.检查是否安装成功安装apache服务器之后,让我们通过这个URLhttp://你的服务器的IP地址/来测试网站服务器是否正常工作如果出现“ItWorked!”的示例页,说明apache服务器已经开始工作了3.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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
  1. 文件显示内容的相关解释:
    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 #要显示的网页所在的路径,即上面端口监听的目录,他会监听到这个路径下的全部文件

  2. 配置文件
    理解了相关语句功能后,就进行配置工作吧
    有#的是被注释掉的

<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。你将会看到我们之前创建的示例页。

需要注意的问题

  1. 域名访问的时候要用ip,只有用ip的时候才可以被别的电脑访问,并且访问的时候加上端口,如:80或者8000
  2. 在apache的虚拟主机中,如果书写了。ServerAlias www.cq.com www.gd.com这样的语句,就可以给虚拟主机增加多个域名,而且这些域名都访问同一个站点。
  3. 如果在网站的目录下添加新的文件,复制进去等之类的,在服务器上访问时显示不出来,可能是由于权限的问题,因为复制过来的文件,权限没有改变,修改权限即可显示。
  4. 远程访问问题,当时测试的时候,用wifi的ip远程访问,却不能成功,插上网线后,不管用网线的ip还是wifi的ip都可以成功访问。

参考链接

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

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

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


相关推荐

  • linux平均负载什么意思_负荷率和负载率一样吗

    linux平均负载什么意思_负荷率和负载率一样吗1,Linux系统的平均负载是什么?特定时间间隔内运行队列中的平均进程数,好象还不够明白:就是进程队列的长度,有多少个进程在排队等待运行2,什么是”进程队列”?一个进程满足以下条件就会位于进程队列中1,它没有在等待I/O操作的结果2,它没有主动进入等待状态(即没有调用wait)3,它没有被停止3,如何查看平均负载?最简单的命令是uptime例子:[www.linuxidc.com@localho…

    2025年11月2日
    7
  • 浏览器插件开发-manifest文件解读「建议收藏」

    浏览器插件开发-manifest文件解读调研资料manifest.json官方文档ChromeExtensionAPI360浏览器的插件文档中文,虽然内核差不多但是不一定与Chromeapi一致,可以作为参考Chrome官方案例库案例如何实现网页和Chrome插件之间的通信消息传递manifest.json配置说明manifest.json用于描述…

    2022年4月11日
    289
  • linux top 指定进程_linux top 排序

    linux top 指定进程_linux top 排序top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器第一行,任务队列信息,同uptime命令的执行结果第二行,Tasks—任务(进程)第三行,cpu状态信息第四行,内存状态第五行,swap交换分区信息第六行,空行第七行以下:各进程(任务)的状态监控详解top使用方法:使用格式:top[-][d][p][q][c]…

    2022年9月24日
    4
  • ARM9开发之学习过程总结[通俗易懂]

    ARM9开发之学习过程总结[通俗易懂]时至今日,与心爱的TQ2440相伴已有一年,从当初的一无所知到今天的得心应手,其间经历的种种,实在难以言表。这里先将我学习ARM中的整个过程总结一下,希望对刚接触的朋友有个提示作用,也希望高手不吝赐教,欢迎拍砖^_^。需要说明的是,这仅仅说是ARM,其间涉及到别的知识也是需要很多时间去学习的,这里我就不列举了。开发板的配套光盘有很多资料文档,在学习之前,大概浏览一下是非常不错的,强烈建议,特别是S3

    2022年6月10日
    56
  • ASP.NET MVC商城网站后台管理系统

    ASP.NET MVC商城网站后台管理系统本项目使用了大量的插件,所有的商品数据皆为动态加载,全部从数据库中读取呈现在界面上,具备商品管理、用户管理等功能,还可查看商品的相关数据汇总。本项目对应的网上商城在上一篇文章中。界面展示(部分)代码太多了,就不进行部分展示了。…

    2022年9月27日
    6
  • WebRTC中的信令和内网穿透技术 STUN / TURN

    WebRTC中的信令和内网穿透技术 STUN / TURNTranslatedfromWebRTCintherealworld:STUN,TURNandsignaling.最近刚接触到WebRTC,网上看到这篇介绍WebRTC的文章不错,仔细读了读还算有用,分享出来能帮到一些刚入门的人也挺好的,翻译不好的地方可以直接看原文。WebRTC可以进行P2P点对点通信,但是WebRTC仍然需要服务器:客户端需要服务器交换一些数据来协…

    2022年7月16日
    20

发表回复

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

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