LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2182|回复: 4

用pureftpd在slackware 10.1下架设带web管理的ftp服务器

[复制链接]
发表于 2005-5-24 16:33:39 | 显示全部楼层 |阅读模式

作者:babo                        
出处:http://www.slack.cn
转载请注明出处和作者


pureftpd简介
Pure-FTPd是一个基于Troll-FTPd的免费、安全的FTP服务器。具有很多自己的特色,例如:支持多种语言(包括中文)、对新手是个很好的选择、对于ISP和主机服务有很好的弹性、和现有的客户端与服务器完全兼容。

需要软件
服务器软件:pure-ftpd-1.0.20.tar.gz
下载地址:ftp://ftp.pureftpd.org/pure-ftpd/releases/

WEB管理软件:pureftpd_php_manager.zip
下载地址:http://www.solariz.de/download.p ... TA5MTE3NzAzNA%3D%3D

注意事项
1、要想通过Mysql进行FTP认证,系统要有mysql数据库并已经起动才可以。
2、要通过WEB来管理FTP用户,要让apache支持php和mysql才可以。
关于上面两点可以通过下面的这篇文章解决
http://www.slack.cn/modules/wordpress/index.php?p=3

安装pureftpd服务器
1、将下载的pure-ftpd-1.0.20.tar.gz解压缩。
使用下面命令

  1. tar zxvf pure-ftpd-1.0.20.tar.gz
复制代码

2、然后进入解压后的目录

  1. cd pure-ftpd-1.0.20
复制代码

3、配置编译

  1. ./configure –prefix="/usr/local/pureftpd” –with-mysql –with-paranoidmsg –with-welcomemsg –with-uploadscript –with-cookie –with-virtualchroot –with-virtualhost –with-virtualroot –with-diraliases –with-quotas –with-ratios –with-ftpwho –with-throttling –with-largefile –with-language="simplified-chinese
复制代码

4、编译安装软件

  1. make
  2. make install
复制代码


配置服务器
1、拷贝相关的配置文件

  1. mkdir /usr/local/pureftpd/etc/
  2. cp pureftpd-mysql.conf /usr/local/pureftpd/etc/
  3. cd configuration-file/
  4. cp pure-ftpd.conf /usr/local/pureftpd/etc/
  5. cp pure-config.pl /usr/local/pureftpd/etc/
  6. chmod 755 /usr/local/pureftpd/etc/pure-config.pl
复制代码


2、编辑配置文件
<1>修改/usr/local/pureftpd/etc/pure-ftpd.conf
      将MySql认证开启,把下面语句修改
[cdoe]
# MySQLConfigFile               /etc/pureftpd-mysql.conf
修改成如下
MySQLConfigFile               /usr/local/pureftpd/etc/pureftpd-mysql.conf
[/code]

将自动创建目录开启,把下面这条语句修改

  1. #CreateHomeDir               yes
  2.   修改如下
  3. CreateHomeDir               yes
复制代码


3、修改/usr/local/pureftpd/etc/pureftpd-mysql.conf
可以将pureftpd-mysql.con文件清干净,然后添加如下内容就可以了

  1. # If you want to use the Socket connect methode comment out the
  2. # Lines with MMYSQLServer and MYSQLPort.
  3. # If you want to use the Port methode comment out the MYSQLSocket line
  4. #MYSQLSocket     /var/lib/mysql/mysql.sock
  5. MYSQLServer     localhost
  6. MYSQLPort       3306
  7. MYSQLUser       xxxxxxxxxx
  8. MYSQLPassword   xxxxxxxxxx
  9. MYSQLDatabase   pureftpd
  10. MYSQLCrypt      cleartext
  11. MYSQLGetPW      SELECT Password FROM ftpd WHERE User="\L” AND status="1″ AND (ipaccess = “*” OR ipaccess LIKE “\R")
  12. MYSQLGetUID     SELECT Uid FROM ftpd WHERE User="\L” AND status="1″ AND (ipaccess = “*” OR ipaccess LIKE “\R")
  13. MYSQLGetGID     SELECT Gid FROM ftpd WHERE User="\L"AND status="1″ AND (ipaccess = “*” OR ipaccess LIKE “\R")
  14. MYSQLGetDir     SELECT Dir FROM ftpd WHERE User="\L"AND status="1″ AND (ipaccess = “*” OR ipaccess LIKE “\R")
  15. MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1″ AND (ipaccess = “*” OR ipaccess LIKE “\R")
  16. MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1″ AND (ipaccess = “*” OR ipaccess LIKE “\R")
  17. MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1″ AND (ipaccess = “*” OR ipaccess LIKE “\R")
  18. MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1″ AND (ipaccess = “*” OR ipaccess LIKE “\R")
复制代码


其实这个文件的内容就是在解压pureftpd_php_manager.zip后,里面的pureftpd-mysql.conf.sample文件内容

4、建立数据库和表格,用mysql命令进入数据库,然后执行下面命令

  1. create database pureftpd;
  2. use pureftpd;
  3. DROP TABLE IF EXISTS ftpd;
  4.   CREATE TABLE ftpd (
  5.   User varchar(16) NOT NULL default ‘’,
  6.   status enum(’0′,’1′) NOT NULL default ‘0′,
  7.   Password varchar(64) NOT NULL default ‘’,
  8.   Uid varchar(11) NOT NULL default ‘-1′,
  9.   Gid varchar(11) NOT NULL default ‘-1′,
  10.   Dir varchar(128) NOT NULL default ‘’,
  11.   ULBandwidth smallint(5) NOT NULL default ‘0′,
  12.   DLBandwidth smallint(5) NOT NULL default ‘0′,
  13.   comment tinytext NOT NULL,
  14.   ipaccess varchar(15) NOT NULL default ‘*’,
  15.   QuotaSize smallint(5) NOT NULL default ‘0′,
  16.   QuotaFiles int(11) NOT NULL default 0,
  17.   PRIMARY KEY (User),
  18.   UNIQUE KEY User (User)
  19.   ) TYPE="MyISAM;
复制代码


5、修改文件权限

  1. chmod 4711 /usr/local/pureftpd/sbin/pure-ftpwho
复制代码


6、建立用户和组,使用如下命令

  1. groupadd virtualftp
  2. useradd virtualftp -g virtualftp
  3. usermod /home/ftp -d virtualftp
  4. chown virtualftp:virtualftp /home/ftp
复制代码


安装WEB管理
1、将下载的pureftpd_php_manager.zip移动到/var/www/htdocs,命令如下  

  1. mkdir /var/www/htdocs/ftp
  2. mv pureftpd_php_manager.zip /var/www/htdocs/ftp/
复制代码


2、编辑/var/www/htdocs/ftp/pureftp.conf.php
<1>修改下面这条语句

  1. $PUREFTP_CONFIG_FILE = ‘/etc/pureftpd-mysql.conf’;
  2. 修改成下面样子
  3. $PUREFTP_CONFIG_FILE = ‘/usr/local/pureftpd/etc/pureftpd-mysql.conf’;
复制代码


<2>修改下面这条语句

  1. $FTP_WHO    = “/usr/local/sbin/pure-ftpwho”;
  2. 修改成下面样子
  3. $FTP_WHO    = “/usr/local/pureftpd/sbin/pure-ftpwho”;
复制代码


<3>修改下面这两条语句

  1. $DefaultUid = “wwwrun”;   # Default User ID ( must be a real user acct )
  2. $DefaultGid = “wwwadm”;    # Default Group ID ( must be a real group acct )
  3. 修改为如下内容

  4. $DefaultUid = “virtualftp”;   # Default User ID ( must be a real user acct )
  5. $DefaultGid = “virtualftp”;    # Default Group ID ( must be a real group acct )
复制代码


起动FTP服务器

1、用如下命令起动服务器

  1. /usr/local/pureftpd/etc/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
复制代码

2、使FTP服务器随系统一起起动
  只要把上面的起动命令添加到/etc/rc.d/rc.local文件中,就可以让FTP服务器随系统一起起动了

通过WEB接口添加用户
在浏览器用输入服务器的地址,例如http://192.168.0.1/ftp/index.php ... ager放到了这里)
然后将出现如下界面

点ADD USER来添加用户,如下图


添好相关信息后,点下面的save就可以了。

好了,全部配置完成。快去试试你的服务器吧!

希望大家有时间去我的小站看看
http://www.slack.cn
发表于 2005-5-24 17:30:16 | 显示全部楼层
good!babo兄辛苦了!你的slack小站我可以经常去寻宝啊~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-24 17:57:37 | 显示全部楼层
多谢laxi1982的支持。
感觉现在使用slackware的用户太少了,很多人也并不知道slackware
所以有了作一个小站的想法。
原来是弄了一个slackware.8866.org。打算弄个slackware自由百科全书,但是当时工作忙,也没有及时的更新。所以就放弃了。

现在弄这个www.slack.cn
打算多写一些原创文章,可以多弄出一些slackware下的服务器解决方案。
www.linuxsir.cn适合讨论问题,但是资源很分散。
所以弄个站,把资源分类整理好。
这样可以让使用slackware的人有更多的资源可以利用
希望大家多多支持。
回复 支持 反对

使用道具 举报

发表于 2005-5-24 22:11:22 | 显示全部楼层
babo !!相当好,要是有个启动脚本,让pure-ftp服务可以通过Start ,stop,restart等命令方式,灵活的使用就更爽了!
在slcak下安装pureftp我试过,都成功,但上述问题我还不懂如何解决,不好意思,俺太初级了 !!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-24 23:58:12 | 显示全部楼层
楼上的提议很好
pure-ftpd好像没有什么可以让自己关闭的程序,也许是我不知道。
不过我写了下面的脚本来实现你说的功能。

用vi建立一个rc.ftpd,然后输入下面的内容。最后保存推出。执行
chmod +x rc.ftpd


  1. #!/bin/sh


  2. case "$1" in
  3.    'start')
  4.       /usr/local/pureftpd/etc/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf ;;
  5.    'stop')
  6.       killall pure-ftpd ;;
  7.    'restart')
  8.       {
  9.       killall pure-ftpd
  10.       /usr/local/pureftpd/etc/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
  11.       echo pureftpd restart ok
  12.       };;
  13.    *)
  14.       echo "usage $0 start|stop|restart" ;;
  15. esac
复制代码


用法:
在脚本所在目录
./rc.ftpd start            起动pureftpd
./rc.ftpd restart        重新起动pureftpd
./rc.ftpd stop            关闭pureftpd

如果有朋友很熟悉pureftpd的,希望给看看有没有其它更好的解决办法??
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表