Ubuntu Apach 虚拟主机

原创 2007年09月28日 16:09:00

目标
   1.
      创建基于 IP 的虚拟主机用于一个项目的整体测试
   2.
      创建基于用户的虚拟主机用于用户测试自己的代码

开始

创建虚拟主机的目录结构

sudo /home/www
cd /home/www
sudo mkdir 192.168.0.251 192.168.0.252
cd 192.168.0.251
sudo mkdir cgi-bin  htdocs logs db
cd ../192.168.0.252
sudo mkdir cgi-bin  htdocs logs db
tree /home/www
/home/www
|-- 192.168.0.251
|   |-- cgi-bin
|   |-- db
|   |-- htdocs
|   `-- logs
`-- 192.168.0.252
    |-- cgi-bin
    |-- db
    |-- htdocs
    `-- logs

   1.
      要在 192.168.0.251 和 192.168.0.252 上 创建两个基于 IP 的虚拟主机,为了直观起见,在 /home/www 下分别创建了目录 192.168.0.251 和 192.168.0.252
   2.
      cgi-bin 子目录用于存放 CGI 脚本
   3.
      db 子目录用于存放 SQLite 数据库
   4.
      htdocs 子目录用于存放站点文档
   5.
      logs 子目录用于存放站点日志

创建虚拟主机的管理帐号并设置目录权限

sudo useradd -g www-data -d /home/www/192.168.0.251 wuser1
sudo useradd -g www-data -d /home/www/192.168.0.252 wuser2
sudo passwd wuser1
sudo passwd wuser2
sudo chown -R wuser1.www-data /home/www/192.168.0.251
sudo chown -R wuser2.www-data /home/www/192.168.0.252

   1.
      将 192.168.0.251 虚拟主机的管理者赋予 wuser1; 将 192.168.0.252 虚拟主机的管理者赋予 wuser2;允许他们使用 ssh 登录
   2.
      wuser1 和 wuser2 的主组均设置为 www-data,这样设置的方便之处在于:若站内有 Apache 进程可写的内容,只需添加 组可写 权限即可

配置虚拟网络接口和主机名解析

使用如下命令:

sudo vim /etc/network/interfaces

添加如下的配置

auto eth0:1
iface eth0:1 inet static
        address 192.168.0.251
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
auto eth0:2
iface eth0:2 inet static
        address 192.168.0.252
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1

然后使用如下命令重新启动网络服务

sudo /etc/init.d/networking restart

然后在 /etc/hosts 文件中添加如下的行

192.168.0.251    web1.example.com web1
192.168.0.252    web2.example.com web2

配置 Apache

S1. 在 /etc/apache2/sites-available/ 目录下创建新的文件 192.168.0.251,添加如下的配置

/etc/apache2/sites-available/192.168.0.251

<VirtualHost 192.168.0.251:80>
  DocumentRoot "/home/www/192.168.0.251/htdocs/"
  <Directory /home/www/192.168.0.251/htdocs/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      allow from all
  </Directory>
 
  ScriptAlias /cgi-bin/ /home/www/192.168.0.251/cgi-bin/
  <Directory "/home/www/192.168.0.251/cgi-bin">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
  </Directory>
 
  ErrorLog /home/www/192.168.0.251/logs/error.log
  CustomLog /home/www/192.168.0.251/access.log combined
</VirtualHost>

S2. 在 /etc/apache2/sites-available/ 目录下创建新的文件 192.168.0.252,添加如下的配置

/etc/apache2/sites-available/192.168.0.252

<VirtualHost 192.168.0.252:80>
  DocumentRoot "/home/www/192.168.0.252/htdocs/"
  <Directory /home/www/192.168.0.252/htdocs/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      allow from all
  </Directory>
 
  ScriptAlias /cgi-bin/ /home/www/192.168.0.252/cgi-bin/
  <Directory "/home/www/192.168.0.252/cgi-bin">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
  </Directory>
 
  ErrorLog /home/www/192.168.0.252/logs/error.log
  CustomLog /home/www/192.168.0.252/access.log combined
</VirtualHost>

S3. 重新启动 Apache

sudo a2enmod rewrite
sudo a2enmod php5
sudo a2enmod perl
sudo a2enmod mod_python
sudo a2ensite 192.168.0.251
sudo a2ensite 192.168.0.252
sudo /etc/init.d/apache2 restart







配置站点内容的上传
FTP 服务器

S1: 使用如下命令安装 proftpd

sudo apt-get install proftpd proftpd-doc

S2. 使用默认配置即可实现本地用户的上传和下载
Samba 服务器

S1. 使用如下命令

sudo vi  /etc/samba/smb.conf

添加如下的配置行:

/etc/samba/smb.conf

[homes]
   comment = Home Directories
   browseable = no
   writable = yes
   create mask = 0644
   directory mask = 0755

S2. 配置 Samba 用户 通过如下命令添加 Samba 用户

sudo smbpasswd -a wuser1
sudo smbpasswd -a wuser2

S3. 启动 Samba 服务器

sudo /etc/init.d/samba restart

创建基于用户的虚拟主机

    *
      可能开发者在 Windows 客户机没有创建开发环境
    *
      为了使每个开发者可以测试自己的代码,可以创建基于用户的虚拟主机

创建用户帐号

sudo useradd -g www-data  -m user1
sudo useradd -g www-data  -m user2
sudo passwd user1
sudo passwd user2

   1.
      用户需要在宿主目录下创建 public_html 子目录,将 Web 文档放入其中,可以通过 URL http://IPorHostname/~username 访问自己的站点
   2.
      若进行 CGI 开发,还需要在宿主目录下创建 cgi-bin 子目录

配置 Apache

使用如下命令启用 userdir 模块即可

sudo a2enmod userdir

若进行 CGI 开发,需要修改 /etc/apache2/mods-available/userdir.conf

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root
 
        <Directory /home/*/public_html>
                AllowOverride FileInfo AuthConfig Limit
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
        </Directory>
 
        ScriptAliasMatch ~([a-z]+)/cgi-bin/(.*) /home/$1/cgi-bin/$2
        # 添加此行,意思是匹配~user_name/cgi-bin/cgi_name自动映射到/home/user_name/cgi-bin/cgi-name脚本   
</IfModule>

关于默认的虚拟主机
Ubuntu 中文件 /etc/apache2/sites-available/default 配置的是默认的虚拟主机。default 虚拟主机的根文档目录默认设置为 /var/www,为了便于备份,最好将所有的 Web 内容都存放在 /home/www 目录下,为此可以将默认的虚拟主机的根文档目录默认设置为 /home/www 下的某个子目录下。
创建虚拟主机的目录结构

cd /home/www
sudo mkdir 192.168.0.222
cd 192.168.0.222
sudo mkdir cgi-bin htdocs

创建虚拟主机的管理帐号并设置目录权限

sudo useradd -g www-data -d /home/www/192.168.0.222 wdefault
sudo passwd wdefault
sudo chown -R wdefault.www-data /home/www/192.168.0.222

配置 Apache

S1. 在 /etc/apache2/sites-available/ 目录下创建新的文件 192.168.0.222,添加如下的配置

/etc/apache2/sites-available/192.168.0.222

<VirtualHost 192.168.0.222:80>
  DocumentRoot "/home/www/192.168.0.222/htdocs/"
  <Directory /home/www/192.168.0.222/htdocs/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      allow from all
  </Directory>
 
  ScriptAlias /cgi-bin/ /home/www/192.168.0.222/cgi-bin/
  <Directory "/home/www/192.168.0.222/cgi-bin">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
  </Directory>
 
  ErrorLog /var/log/apache2/error.log
  CustomLog /var/log/apache2/access.log combined
 
  Alias /doc/ "/usr/share/doc/"
  <Directory "/usr/share/doc/">
      Options Indexes MultiViews FollowSymLinks
      AllowOverride None
      Order deny,allow
      Deny from all
      Allow from 192.168.0.0/255.255.255.0
  </Directory>
</VirtualHost>

S2. 重新启动 Apache

sudo a2dissite default
sudo a2ensite 192.168.0.222
sudo /etc/init.d/apache2 restart

 

Ubuntu 14.04配置虚拟主机

虚拟主机常用于在一个单独的IP地址上提供多个域名的网站服务。如果有人想在单个VPS的单个IP地址运行多个网站,这是非常有用的。在这个教程中,让我告诉你如何设置在Ubuntu 14.04 LTS的Apa...
  • lmmilove
  • lmmilove
  • 2015年10月21日 16:06
  • 3030

linux ubuntu 搭建lamp、虚拟主机配置等

sudo apt-get update //更新 sudo apt-get install apache2 //安装apache2 apache2 -v //查看apache2版本 sud...
  • u012793120
  • u012793120
  • 2016年07月21日 09:07
  • 1343

php配置apach的虚拟主机

配置虚拟主机分为四步 1.打开Apache下的httpd.conf 找到#Include conf/extra/httpd-vhosts.conf这段代码,吧前面的#去掉 2.打开Apach...
  • licyXiaobaiyang
  • licyXiaobaiyang
  • 2016年08月30日 09:26
  • 186

Ubuntu下apache2的虚拟主机配置

Ubuntu下apache2的虚拟主机配置 1.安装Apache2:  sudo apt-get install apache2 2.在./etc/ 找到hosts文件,在hosts里面添加域名指向虚...
  • LsMrSUN
  • LsMrSUN
  • 2016年06月06日 10:53
  • 2190

Ubuntu 下apache2 虚拟主机配置

一、安装: ubuntu 及debian 下的apahce 有点特别,如果使用apt-get 方式安装( apt-get install apache2 ) 则安装目录默认在 /etc/apache2...
  • zzqhost
  • zzqhost
  • 2017年05月09日 17:40
  • 844

Ubuntu16.04 配置虚拟主机

有时部署多个项目时为了区分,这时候有就需要虚拟主机了。 1. 首先配置host注:若是不用于本地测试,而是云端部署可忽略此步骤。 Ubuntu的host文件位于 /etc/hosts 文件,在控制台...
  • mrwangweijin
  • mrwangweijin
  • 2017年08月09日 09:08
  • 205

Ubuntu之nginx配置虚拟主机vhost

首先谈一点自己的理解 所谓虚拟主机,是说通过几个不同的url地址,都能到达nginx环境,只不过针对不同的url,处理的逻辑不同。 nginx支持虚拟主机,但是浏览器等客户端不知道,所以虚...
  • stwstw0123
  • stwstw0123
  • 2015年07月29日 09:27
  • 4055

Apache 配置https虚拟主机

一、安装带ssl的Apache2.2.21 1、安装apache之前需要先检查openssl是否安装完毕,yum list "*openssl*",如果没有用yum安装下即可 2、ap...
  • linuxnews
  • linuxnews
  • 2017年02月25日 23:35
  • 1685

Ubuntu16.04 apache2配置虚拟主机

1.首先在“/etc/hosts”文件中加入当前主机的IP地址和需要设置的虚拟主机名: 如:192.168.20.141 www.alex.com 2.在“/etc/apache2/sit...
  • u010957293
  • u010957293
  • 2016年07月14日 15:04
  • 5983

ubuntu下xampp配置虚拟主机

ubuntu下xampp配置虚拟主机 现在/opt/lampp/htdocs下面建一个目录test test里面建一个文件test.html,文件里面随便打些字作为一会我们验证成功的依据。 ...
  • hearain528
  • hearain528
  • 2014年10月05日 10:53
  • 1322
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ubuntu Apach 虚拟主机
举报原因:
原因补充:

(最多只允许输入30个字)