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

2022-10-02 10:04:04 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

Ubuntu 14.04 LTS系统中配置Apache2虚拟主机

文章目录

  • Ubuntu 14.04 LTS系统中配置Apache2虚拟主机
    • 1.安装
    • 2.检查是否安装成功
    • 3.查找根目录
      • 3.1终端下打开apache2.conf,输入如下命令:
    • 4.找到根目录后,就可以进行下一步了
      • 4.1创建虚拟目录
      • 4.2. 设置所有者和权限
      • 4.3设置读写权限给apache网页根目录(/var/www)及其子目录,这样每个人都可以从目录中读取文件。
    • 5.为虚拟主机创建示例页
    • 6.创建虚拟主机配置文件
      • 6.1默认情况下,apache有一个默认的虚拟主机文件叫000-default.conf。我们将会复制000-default.conf文件内容到我们新的虚拟主机配置文件中,注意名字的拓展名一定.conf
      • 6.2修改yuyuyu.local.conf文件以符合需求。
    • 7.启动虚拟主机
    • 8.添加监听端口
    • 9.最后,重启apache服务器。
    • 10.测试虚拟主机,编辑/etc/hosts文件
    • 需要注意的问题

1.安装

用下面命令来安装apache网络服务器:

代码语言:javascript复制
  $  sudo apt-get install apache2

2.检查是否安装成功

安装apache服务器之后,让我们通过这个URL http://你的服务器的IP地址/ 来测试网站服务器是否正常工作 如果出现“It Worked!”的示例页,说明apache服务器已经开始工作了

3.查找根目录

安装完Apache后的最重要的一件事就是要知道Web文档根目录在什么地方,对于Ubuntu而言,默认的是/var/www. 让我们确定根目录吧,按下面步骤:

3.1终端下打开apache2.conf,输入如下命令:

代码语言:javascript复制
$ sudo vi /etc/apache2/apache2.conf

可以看到,下面的代码:查看根目录

代码语言:javascript复制
<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这个站点创建一个目录

代码语言:javascript复制
$ sudo mkdir -p /var/www/yuyuyu.local/public_html

4.2. 设置所有者和权限

上面目录现在只有root拥有权限。我们需要修改这2个目录的拥有权给普通用户,而不仅仅是root用户。

代码语言:javascript复制
$ sudo chown -R $USER:$USER /var/www/yuyuyu.local/public_html/

“$USER”变量指向了当前的登录用户。

4.3设置读写权限给apache网页根目录(/var/www)及其子目录,这样每个人都可以从目录中读取文件。

代码语言:javascript复制
$ 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示例页

代码语言:javascript复制
$ sudo vi /var/www/yuyuyu.local/public_html/index.html

添加以下内容,保存关闭

代码语言:javascript复制
  <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

代码语言:javascript复制
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/yuyuyu.local.conf

6.2修改yuyuyu.local.conf文件以符合需求。

打开复制的那个.conf文件

代码语言:javascript复制
   $ 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. 配置文件 理解了相关语句功能后,就进行配置工作吧 有#的是被注释掉的
代码语言:javascript复制
<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又有着不一样的虚拟用户的话,可以修改成:

代码语言:javascript复制
<VirtualHost IP地址[:端口]>
...
</VirtualHost>

7.启动虚拟主机

修改虚拟主机文件后,禁用默认的虚拟主机配置(000.default.conf),然后启用新的虚拟主机配置,如下所示。

代码语言:javascript复制
   $ 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这里的目录

代码语言:javascript复制
$ sudo vi /etc/apache2/ports.conf

显示下面的内容,添加进去自定义的端口,Listen xxx

代码语言:javascript复制
Listen 80
Listen 8000
Listen 8001
Listen 8080
<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

9.最后,重启apache服务器。

代码语言:javascript复制
 $ sudo service apache2 restart

就是这样。现在,我们成功地配置了apache虚拟主机在我们的Ubuntu服务器上

10.测试虚拟主机,编辑/etc/hosts文件

代码语言:javascript复制
$ sudo vi /etc/hosts

出来如下代码:

代码语言:javascript复制
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.cn/192275.html原文链接:https://javaforall.cn

0 人点赞