本内容为原创内容,转载请注明:
本文来自http://blog.gsywx.com

一、目的:安装vsftpd+mysql,vsftpd用户由mysql数据表存放虚拟用户
二、安装方式:采用yum进行安装vsftpd及mysql,系统环境为centos5.5(32)
注:所有加#开头的为说明语句

三、具体安装
1、安装vsftpd
yum -y install vsftpd
vi /etc/vsftpd/vsftpd.conf
作如下修改:
anonymous_enable=YES 改为 anonymous_enable=NO
#禁用匿名用户登录
在最后加上:
chroot_local_user=YES
#将本地用户锁定在家目录
chkconfig vsftpd on
service vsftpd start
#以下添加vsftpd的虚拟公共帐户
useradd vsftpdguest -d /home/vsftpdguest -s /sbin/nologin
chmod 755 /home/vsftpdguest

2、安装mysql
yum -y install mysql mysql-devel mysql-server
service mysqld start
#设置mysql密码
mysqladmin -u root password 123654
mysql -u root -p
#输入密码 123654
#建立vsftpd两虚拟用户: aaa 密码: 123456  、bbb 密码: 123654
create database vsftpd;
use vsftpd;
create table users(name char(16) binary,passwd char(16) binary);
insert into users (name,passwd) values ('aaa','123456');
insert into users (name,passwd) values ('bbb','123654');
#给数据库vsftpd赋予用户vsftpdguest密码654321对users表的读取权限
grant select on vsftpd.users to vsftpdguest@localhost identified by '654321';
flush privileges;
select * from users;
#这时可以看到新加的用户和密码,密码是以明文列示的
quit;

3、安装pam_mysql模块,下载地址为:http://sourceforge.net/projects/pam-mysql/files/pam-mysql/
#这里我下载pam_mysql-0.7RC1.tar.gz
tar zxvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure
#因为mysql为默认安装,所以可以缺少编译参数,如果自定义安装可以参照以下语句
#(#./configure --with-mysql=/web/mysql)
make
make install
安装后会看到以下语句
#Libraries have been installed in:
#/usr/lib/security
cp /usr/lib/security/pam_mysql.* /lib/security/
#以下备份vsftpd的pam文件以及创建新的认证文件
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
#加上
vi /etc/pam.d/vsftpd  加上:
#%PAM-1.0
auth required /lib/security/pam_mysql.so user=vsftpdguest passwd=654321 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0
account required /lib/security/pam_mysql.so user=vsftpdguest passwd=654321 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0


4、配置vsftpd.conf
vi /etc/vsftpd/vsftpd.conf   在最后加上:
guest_enable=YES
guest_username=vsftpdguest
virtual_use_local_privs=YES
重启vsftpd
service vsftpd restart
#说明:以上三句为除了匿名用户外的所有用户都是guest,除了匿名用户外的所有用户使用vsftpdguest,虚拟用户使用与本地用户相同的权限

四、额外的部份权限控制说明:
当virtual_use_local_privs=YES时,只需设置write_enable=YES,虚拟用户就可以就拥有写权限

当virtual_use_local_privs=NO时,anon_world_readable_only=YES,则虚拟用户只读不能上传
                                anon_upload_enable=YES时,匿名用户能上传,但不能覆盖和改写删除文件
                                anon_mkdir_write_enable=YES时,能建立目录
                                anon_other_write_enable=YES时,虚拟用户具体所有读写权限

虚拟用户目录的权限改为只能由vsftpdguest操作:
chown vsftpdguest.vsftpdguest /home/vsftpdguest
chmod 700 /home/vsftpdguest

五、虚拟用户拥有各自的家目录
vi /etc/vsftpd/vsftpd.conf  加上:
user_config_dir=/etc/vsftpd/vsftpd_user_conf
mkdir /etc/vsftpd/vsftpd_user_conf
touch /etc/vsftpd/vsftpd_user_conf/aaa
vi /etc/vsftpd/vsftpd_user_conf/aaa   加上:
local_root=/home/aaa
mkdir /home/aaa
chown vsftpdguest.vsftpdguest /home/aaa

touch /etc/vsftpd/vsftpd_user_conf/bbb
vi /etc/vsftpd/vsftpd_user_conf/aaa  加上:
local_root=/home/bbb
mkdir /home/bbb
chown vsftpdguest.vsftpdguest /home/bbb


六、以上程序安装脚本:

#!bin/bash
yum -y install vsftpd
sed -i 's#anonymous_enable=YES#anonymous_enable=NO#'  /etc/vsftpd/vsftpd.conf
echo "chroot_local_user=YES" >>/etc/vsftpd/vsftpd.conf
chkconfig vsftpd on
service vsftpd start
useradd vsftpdguest -d /home/vsftpdguest -s /sbin/nologin
chmod 755 /home/vsftpdguest
yum -y install mysql mysql-devel mysql-server
service mysqld start
mysqladmin -u root password 123654
mysql -u root -p
create database vsftpd;
use vsftpd;
create table users(name char(16) binary,passwd char(16) binary);
insert into users (name,passwd) values ('aaa','123456');
insert into users (name,passwd) values ('bbb','123654');
grant select on vsftpd.users to vsftpdguest@localhost identified by '654321';
flush privileges;
select * from users;
quit;
#pam_mysql文件上传在系统根目录
cd /
tar zxvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure
make
make install
cp /usr/lib/security/pam_mysql.* /lib/security/
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
cat >>/etc/pam.d/vsftpd<<EOF
#%PAM-1.0
auth required /lib/security/pam_mysql.so user=vsftpdguest passwd=654321 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0
account required /lib/security/pam_mysql.so user=vsftpdguest passwd=654321 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=0
EOF
echo "guest_enable=YES" >>/etc/vsftpd/vsftpd.conf
echo "guest_username=vsftpdguest" >>/etc/vsftpd/vsftpd.conf
echo "virtual_use_local_privs=YES" >>/etc/vsftpd/vsftpd.conf
service vsftpd restart
echo "user_config_dir=/etc/vsftpd/vsftpd_user_conf" >>/etc/vsftpd/vsftpd.conf
mkdir /etc/vsftpd/vsftpd_user_conf
touch /etc/vsftpd/vsftpd_user_conf/aaa
echo "local_root=/home/aaa" >>/etc/vsftpd/vsftpd_user_conf/aaa
mkdir /home/aaa
chown vsftpdguest.vsftpdguest /home/aaa
touch /etc/vsftpd/vsftpd_user_conf/bbb
echo "local_root=/home/bbb" >>/etc/vsftpd/vsftpd_user_conf/bbb
mkdir /home/bbb
chown vsftpdguest.vsftpdguest /home/bbb
service vsftpd restart
win2008中的iis7下的几种aps+php环境配置方法

IIS7.5和IIS6.0在使用上有很大的灵活性,现就几种方法作简要说明

一、使用IIS7.5的fastcgi
这是建议使用的一种,IIS使用FsatCGISettings及处理程序映射中添加模块映射。
即在FsatCGISettings添加应用 php-cgi.exe,并在EnviornmemtVafiables里添加连接等变量。
在处理应用程序中添加模块FastCgiModule的映射。
在为站点添加模块FastCgiModule的映射后,相关配置会写入web.config
php使用非线程安全版本
这是在IIS7+FastCGI下最常用的方法,此配置下,无法支持zend,只能安装微软的wincache来加速缓存优化。

二、使用与IIS6.0下相同的方法
即使用ISAIP方式来加载,
具体方法为:在处理程序映射中添加模块FastCgiModule的映射,文件为php5isapi.dll,这种方式下要先为php5isapi.dll注册启用它,具体为打开ISAPI和CGI限制,添加php5isapi.dll并允许扩展路径,这和IIS6.0下的应用程序扩展中添加是一样的道理。
在此方法下使用的php的普通版本的php,而不是非线程安全的版本
这种方式下的php可以安装zend以及xcache等加速软件。


三、使用普通版本的php,同时使用fastcgi方式
处理方法类似第一种,使用php-cgi.exe来处理php,但php程序使用的是普通版本的,同样,这种方式下支持zend及xcache等加速软件


另:由于个人应用的特殊要求,IIS7.5下支持同时使用不同版本不同方式使用的php,如上述三种方式来配置php,又或者同时还使用不同版本的php,关键只要做到能正确读取相应的php.ini即可。
这是IIS6.0下所办不到的,IIS6.0下,除了不同时使用mysql等扩展,否则它是不能同时读取不同的php.ini来配置当前站点的。
曾经测试,在不同方式下运行网站安装discuz,都可以正常运行。

至于具体的配置教程可以网上搜索下IIS7和IIS6下的环境配置的文章,这里就不再啰嗦了。
Tags: , , , ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]