xampp安装好之后就只有一个默认站点及一个默认nobody的ftp账户,这显然不符合我们平时的需求了,那么下面就来讲一下如何设置并管理多个虚拟主机及ftp账户了,至于xampp的安装不在此讨论范围,读者可自行参阅官网的相关说明。
6 q+ c3 t! I- }+ F- N7 @8 T" w
6 c6 g+ W, z9 [1、首先讲一下ftp账户的配置:! R5 o1 |! S* S: P; r O) u" ?
xampp采用的是proftpd服务端,这个不像我们Win环境下常用的Serv-U,用户帐户不是在服务端工具里面进行配置,而是在linux系统帐户里面配置的。因此我们可以使用命令:5 \+ [4 m! i% M: D8 E7 {
groupadd ftpusers; Y& g M1 u( v+ T8 t
先在系统中创建一个名称为ftpusers的用户组,这里的名称可以随便设置,主要是为了区分ftp帐户与系统其他类型的帐户所以我这里就命名为ftpusers,然后在这个组里面添加一个用户:. j& p0 T; ~9 l, v( H' G; F& G
useradd -d /opt/lampp/www/site1 -g ftpusers -s /sbin/nologin site1ftp
" {/ g, d: W) I; U) S第一个参数-d表示用户home目录,其中/opt/lampp/www/这个路径必须是存在的,而site1则是在该命令执行时自动创建的。第二 个参数-g表示此用户隶属于哪个用户组,第三个参数-s表示此用户的shell环境,为安全起见我们应该设置为一个无权限的路径。最后一个参数才是此帐户 的登录名称,我这里是site1ftp。
2 x" p. D$ z$ N% i( B创建好之后我们就要为该帐户设置一个密码了:4 `" q; z8 _( P) ?* I2 P/ F$ R. A
passwd site1ftp
8 P' W/ H! k0 W' d执行该命令后按提示输入两次密码即可完成帐户site1ftp的密码设置了。
N; c# d2 i( i ?3 M0 F接下来我们设置一下帐户home目录的权限:! a1 t _3 y" _/ V" e
chmod -R 777 /opt/lampp/www/site1& X- Z+ R# \1 `0 l v
至此,ftp帐户的添加算是完成了,顺便提示一下,删除帐户的命令是userdel,修改帐户的命令是usermod,存储帐户的文件路径为/etc/passwd。) n1 _" n3 T' H' w
另外,为安全起见,我们应该在proftpd的服务配置文件(一般路径是/opt/lampp/etc/proftpd.conf)中修改一下 DefaultRoot为ftpusers,将ftpusers组里面的用户访问范围限制在其home目录。也可以把DefaultRoot设为~(键盘 左上角的那个符号),这样表示所有的组里面的用户都有这个限制了。如果要单独设置两个组或更多的组你必须另起一行或多行,说明如下:
! k' p5 G( q- B( r! Z# YDefaultRoot ftpusers #限制ftpusers组里面的用户
' F8 R: g& l6 W; E* p% G+ w# `DefaultRoot ~ #限制所有组里面的用户
4 E- h, G( {+ `* V; [DefaultRoot ftpusers
* ~5 }1 k- M/ \8 G- b" SDefaultRoot nobody #限制ftpusers组及nobody组里面的用户* `! a2 w! I3 B8 x1 a
DefaultRoot ftpusers,nobody #限制既隶属于ftpusers组同时也隶属于nobody组里面的用户
% K, D- o* z. Y对了,还差一个步骤,应该在proftpd配置文件中对ftp目录添加可重写的权限,如下:9 d3 F/ s# W1 u% R# `5 i
<Directory /opt/lampp/www/*>
; o) r& J# O; N/ P8 G$ W0 R' w. B AllowOverwrite on
/ K5 `. t# |/ r! m+ w; ?</Directory>8 H- B; u) e$ M) i! G( v- p
否则会出现ftp上传文件时无法覆盖同名文件的问题。
: a! T. h. w2 ~! X$ h9 I4 v( n8 W( }
2、然后我们再讲一下虚拟主机的配置
% _) X ]& A$ D( q+ ?3 t先执行:
5 O" k1 [( u& P$ |0 v2 Ocat /opt/lampp/etc/httpd.conf& z; }& ~! W! ?& p/ X) f
查看一下xampp的apache配置文件,我们发现其中有一行:
6 K7 b3 s3 |5 V& F/ [# e% L#Include etc/extra/httpd-vhosts.conf
0 s: ]- H/ a' H, E+ q看来,xampp为我们准备了一个专用于配置虚拟主机的文件了,去掉#号以删除其注释,然后编辑/opt/lampp/etc/extra /httpd-vhosts.conf文件,此文件中xampp为我们创建了两个虚拟主机的示例,我们把这两个示例注释掉,然后添加我们自己需要的虚拟主 机,例如:
( h- x7 y. ~: y& Y! f<VirtualHost *:80>. `; y4 X% v7 Z7 j [
DocumentRoot /opt/lampp/www/site11 @) Q+ k& t# s: c
ServerName blog.ewebe.net$ W! ~* X" ` o( r$ g
</VirtualHost>
; h! ?1 M6 M" u5 n _DocumentRoot表示虚拟主机对应的路径,即网站目录,ServerName表示虚拟主机的访问地址,类似IIS中的主机头值。
- c2 `3 v7 M6 H1 o/ x8 \+ e至此,虚拟主机的设置也算是完成了。0 R) f9 `$ |+ R( e6 T9 j
最后我们需要在apache配置文件/opt/lampp/etc/httpd.conf中添加一下网站目录的访问权限。0 g2 Y9 w q4 z4 F
<Directory "/opt/lampp/www/site1">
2 P0 @! a" {& x; U$ m2 R: _* b Options Indexes FollowSymLinks
1 n; e; b; Z: K5 p AllowOverride All
' T2 B) t- [7 r) Y" _9 g Order allow,deny
, N" ?( D& a: U, P3 s8 m6 }+ u3 C Allow from all3 m$ z& Y; r9 K
</Directory>
' t$ Y5 k7 M+ h9 x3 a: a这里可以将目录路径/opt/lampp/www/site1改为/opt/lampp/www,为以后建立更多的虚拟主机如site2、site3……等等做准备。! P2 B! N2 G5 M/ A4 q, h/ ]3 e
: x# O% Y& K" ~% C: S
2 x: \5 Q% U* e* e |
|