Ubuntu Linux Apach虛擬主機的安裝配置

Ubuntu Linux Apach虛擬主機的安裝配置

目標

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


DocumentRoot "/home/www/192.168.0.251/htdocs/"


Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all



ScriptAlias /cgi-bin/ /home/www/192.168.0.251/cgi-bin/


AllowOverride None

Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Order allow,deny

Allow from all


ErrorLog /home/www/192.168.0.251/logs/error.log

CustomLog /home/www/192.168.0.251/access.log combined



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


/etc/apache2/sites-available/192.168.0.252


DocumentRoot "/home/www/192.168.0.252/htdocs/"


Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all


ScriptAlias /cgi-bin/ /home/www/192.168.0.252/cgi-bin/


AllowOverride None

Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Order allow,deny

Allow from all


ErrorLog /home/www/192.168.0.252/logs/error.log

CustomLog /home/www/192.168.0.252/access.log combined


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 [url]http://IPorHostname/~username[/url] 訪問自己的站點

2.

若進行 CGI 開發,還需要在宿主目錄下創建 cgi-bin 子目錄


配置 Apache


使用如下命令啓用 userdir 模塊即可


sudo a2enmod userdir


若進行 CGI 開發,需要修改 /etc/apache2/mods-available/userdir.conf


UserDir public_html

UserDir disabled root


AllowOverride FileInfo AuthConfig Limit

Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec


ScriptAliasMatch ~([a-z]+)/cgi-bin/(.*) /home/$1/cgi-bin/$2

# 添加此行,意思是匹配~user_name/cgi-bin/cgi_name自動映射到/home/user_name/cgi-bin/cgi-name腳本


關於默認的虛擬主機

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


DocumentRoot "/home/www/192.168.0.222/htdocs/"


Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all


ScriptAlias /cgi-bin/ /home/www/192.168.0.222/cgi-bin/


AllowOverride None

Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Order allow,deny

Allow from all


ErrorLog /var/log/apache2/error.log

CustomLog /var/log/apache2/access.log combined


Alias /doc/ "/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


S2. 重新啓動 Apache


sudo a2dissite default

sudo a2ensite 192.168.0.222

sudo /etc/init.d/apache2 restart
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章