Ubuntu下为Apache2配置虚拟主机

基础知识

apache2的安装目录默认在/etc/apache2,目录结构:

网站目录默认安装在/var/www/html,只有index.html一个文件,访问127.0.0.1时可以看到:

Virtual Hosting(虚拟主机)

 简单说就是同一台服务器可以同时处理超过一个域名(domain)。假设www.example1.net和 www.example2.net两个域名都指向同一服务器,WEB服务器又支持Virtual Hosting,那么www.example1.net和www.example2.net可以访问到同一服务器上不同的WEB空间(网站文件存放目 录)。

配置虚拟主机

1. 选择一个域名,为网站创建一个新的目录。目录名称就是网站名,运行以下命令来执行此操作:

sudo mkdir -p /var/www/bob.com/html

2. 创建一个简单的静态网页。创建 HTML 文件:

sudo vim /var/www/bob.com/html/index.html

粘贴下面内容:

<html>
     <head>
       <title>Simple Page</title>
     </head>
     <body>
       <p>If you're seeing this in your browser then everything works.</p>
     </body>
</html>

保存并关闭文件。

3. 配置目录的所有、读写执行权限:

chown -R www-data:www-data /var/www/bob.com  
chmod -R og-r /var/www/bob.com  # 去除其他用户读权限

这一步很容易被忽视,记住一定不能是root:root、X:X的所有者属性(X是系统的普通用户),否则(后面步骤完全一致)最后打开网站bob.com会显示:

4. 为网站创建一个新的虚拟主机。注意,配置文件名称是网站名.conf的格式:

vim /etc/apache2/sites-available/bob.com.conf

粘贴以下内容:

<VirtualHost *:80>
     ServerAdmin admin@example.com
     ServerName bob.com
     ServerAlias www.bob.com
   
     DocumentRoot /var/www/bob.com/html
    
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

这是一个基础的虚拟主机。根据你的设置,你可能需要更高级的 .conf 文件。
在更新所有内容后保存并关闭文件。

5. 前面我们配置好的内容只是“有效”的虚拟主机,真正发挥效果的话得放到 /etc/apache2/sites-enabled 文件夹下面。我们可以使用ln命令来建立一对关联文件:

sudo ln -s /etc/apache2/sites-available/bob.com.conf /etc/apache2/sites-enabled/bob.com.conf

谨慎起见,在重启apache服务前先检查下语法:

sudo apache2ctl configtest

6. 为hosts文件添加网站信息,十分重要的一步:

vim /etc/hosts
首行添加:
127.0.0.1 bob.com
保存、退出。

7. 使用以下apache2自带的命令启用虚拟主机:

a2ensite bob.com.conf

8. 重启 Apache 以使更改生效:

systemctl restart apache2

打开浏览器,输入 www.bob.com 或bob.com,就可以看到效果:

未来可以就行安装php7、数据库等工具,结合javascript、CSS等动态渲染技术,以进一步扩展、美化网站的业务功能和页面。

参考

http://t.zoukankan.com/cute-p-14447748.html
https://zhuanlan.zhihu.com/p/37317680

posted @ 2022-09-02 11:54  爱吃砂糖橘的白龙  阅读(816)  评论(0编辑  收藏  举报