xampp安裝好以後就只有一個默認站點及一個默認nobody的ftp帳戶,這顯然不符合咱們平時的需求了,那麼下面就來說一下如何設置並管理多個虛擬主機及ftp帳戶了,至於xampp的安裝不在此討論範圍,讀者可自行參閱官網的相關說明。html
一、首先講一下ftp帳戶的配置:linux
xampp採用的是proftpd服務端,這個不像咱們Win環境下經常使用的Serv-U,用戶賬戶不是在服務端工具裏面進行配置,而是在linux系統賬戶裏面配置的。所以咱們可使用命令:web
groupadd ftpusers
先在系統中建立一個名稱爲ftpusers的用戶組,這裏的名稱能夠隨便設置,主要是爲了區分ftp賬戶與系統其餘類型的賬戶因此我這裏就命名爲ftpusers,而後在這個組裏面添加一個用戶:shell
useradd -d /opt/lampp/www/site1 -g ftpusers -s /sbin/nologin site1ftp
第一個參數-d表示用戶home目錄,其中/opt/lampp/www/這個路徑必須是存在的,而site1則是在該命令執行時自動建立的。第二 個參數-g表示此用戶隸屬於哪一個用戶組,第三個參數-s表示此用戶的shell環境,爲安全起見咱們應該設置爲一個無權限的路徑。最後一個參數纔是此賬戶 的登陸名稱,我這裏是site1ftp。apache
建立好以後咱們就要爲該賬戶設置一個密碼了:安全
passwd site1ftp
執行該命令後按提示輸入兩次密碼便可完成賬戶site1ftp的密碼設置了。ide
接下來咱們設置一下賬戶home目錄的權限:工具
chmod -R 777 /opt/lampp/www/site1
至此,ftp賬戶的添加算是完成了,順便提示一下,刪除賬戶的命令是userdel,修改賬戶的命令是usermod,存儲賬戶的文件路徑爲/etc/passwd。網站
另外,爲安全起見,咱們應該在proftpd的服務配置文件(通常路徑是/opt/lampp/etc/proftpd.conf)中修改一下 DefaultRoot爲ftpusers,將ftpusers組裏面的用戶訪問範圍限制在其home目錄。也能夠把DefaultRoot設爲~(鍵盤 左上角的那個符號),這樣表示全部的組裏面的用戶都有這個限制了。若是要單獨設置兩個組或更多的組你必須另起一行或多行,說明以下:spa
DefaultRoot ftpusers #限制ftpusers組裏面的用戶
DefaultRoot ~ #限制全部組裏面的用戶
DefaultRoot ftpusers DefaultRoot nobody #限制ftpusers組及nobody組裏面的用戶
DefaultRoot ftpusers,nobody #限制既隸屬於ftpusers組同時也隸屬於nobody組裏面的用戶
對了,還差一個步驟,應該在proftpd配置文件中對ftp目錄添加可重寫的權限,以下:
<Directory /opt/lampp/www/*> AllowOverwrite on </Directory>
不然會出現ftp上傳文件時沒法覆蓋同名文件的問題。
二、而後咱們再講一下虛擬主機的配置
先執行:
cat /opt/lampp/etc/httpd.conf
查看一下xampp的apache配置文件,咱們發現其中有一行:
#Include etc/extra/httpd-vhosts.conf
看來,xampp爲咱們準備了一個專用於配置虛擬主機的文件了,去掉#號以刪除其註釋,而後編輯/opt/lampp/etc/extra /httpd-vhosts.conf文件,此文件中xampp爲咱們建立了兩個虛擬主機的示例,咱們把這兩個示例註釋掉,而後添加咱們本身須要的虛擬主 機,例如:
<VirtualHost *:80> DocumentRoot /opt/lampp/www/site1 ServerName blog.ewebe.net </VirtualHost>
DocumentRoot表示虛擬主機對應的路徑,即網站目錄,ServerName表示虛擬主機的訪問地址,相似IIS中的主機頭值。
至此,虛擬主機的設置也算是完成了。
最後咱們須要在apache配置文件/opt/lampp/etc/httpd.conf中添加一下網站目錄的訪問權限。
<Directory "/opt/lampp/www/site1"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
這裏能夠將目錄路徑/opt/lampp/www/site1改成/opt/lampp/www,爲之後創建更多的虛擬主機如site二、site3……等等作準備。