安装 ProFTPD 支持MySQL数据库
时间:2010-08-10 来源:zhgbwin
安装 ProFTPD 支持MySQL数据库
系统环境:
Redhat AS 3.0
相关软件列表:
mysql-standard 4.0.16 (binary version)
php 4.3.4
apache 2.0.48
proftpd 1.2.9
1.安装 MySQL
# -----------------------------------
# 从下面地址下载 MySQL :
# http://www.mysql.com/downloads
# 创建 mysql 用户和组
groupadd mysql
useradd -g mysql mysql
# 解压缩MySQL安装包到 /usr/local
gunzip < mysql-standard-4.0.16-pc-linux-i686.tar.gz | tar xvf -
# 给 mysql建立一个连接
ln -s mysql-standard-4.0.16-pc-linux-i686 mysql
cd mysql
# 执行mysql安装脚本
scripts/mysql_install_db
# 设置 mysql权限
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/data
chown -R mysql /usr/local/mysql/bin
# 以mysql用户启动服务
bin/safe_mysqld --user=mysql &
# 在 /etc/rc.local 中增加开机启动
vi /etc/rc.local
bin/sh -c 'cd /usr/local/mysql ; ./bin/safe_mysqld &'
2.安装 ProFTPD
# -----------------------------------
# 从下面网址下载 ProFTPD 源代码:
# http://www.proftpd.org/download.html
# 创建ftp用户和组
# 用这个用户来启动proftpd
groupadd proftpd
useradd -g proftpd proftpd
# 解压缩 proftpd 源代码包
# 进入解压目录 执行 configure
./configure --with-modules=mod_sql:mod_sql_mysql \
--with-includes=/usr/local/mysql/include \
--with-libraries=/usr/local/mysql/lib
make
make install
# 增加启动命令到 /etc/rc.local,让系统每次启动proftpd服务。
vi /etc/rc.local
/usr/local/sbin/proftpd
3.安装 HTTPD, Apache
# -----------------------------------
# 从下面地址下载Apache源文件:
# http://httpd.apache.org/download.cgi
# 解压缩Apache源码包
# 进入解压目录
# 执行 configure 然后编译安装
./configure --enable-so
make
make install
# 加入启动命令到 /etc/rc.local 让系统每次启动http服务
Vi /etc/rc.local
/usr/local/apache2/bin/apachectl start
4.安装PHP
# -----------------------------------
# 从下面地址下载 PHP 源文件:
# http://www.php.net/downloads.php
# 解压缩php源码包
# 进入解压目录
# 执行 configure 然后编译安装
./configure --with-apxs2=/usr/local/apache2/bin/apxs
make
make install
cp php.ini-dist /usr/local/lib/php.ini
# 检查 apache2的httpd.conf 配置文件是否包含PHP module:
LoadModule php4_module modules/libphp4.so
Addtype application/x-httpd-php .php
# 在DirectoryIndex中增加 index.php:
DirectoryIndex index.html index.html.var index.php
# 启动apache测试php.
# 创建php 测试页面test.php内容如下。
<?
phpinfo();
?>
上面的测试页能详细显示php和apche的配置。
mysql -u root -p ftp < ftp.sql
insert into users (username,passwd) values (ftpuser’,’ftppassword’);
GRANT ALL PRIVILEGES ON ftp.* TO ftpuser@localhost IDENTIFIED BY 'password';
SET PASSWORD FOR ftpuser@localhost = PASSWORD('ftppassword');
sino_ftpadmin
备注:下面是数据库建表文件
### Table for all users
CREATE TABLE users (
username VARCHAR(15) NOT NULL,
passwd VARCHAR(15) NOT NULL,
fullname VARCHAR(60) NULL,
valid SMALLINT DEFAULT 0,
count INT DEFAULT 0,
lastlogin DATETIME,
homedir VARCHAR(100) NULL,
email VARCHAR(100) NULL,
frate TINYINT(4) NOT NULL default '0',
fcred TINYINT(4) NOT NULL default '0',
brate TINYINT(4) NOT NULL default '0',
bcred INT(20) NOT NULL default '0',
fstor INT(20) NOT NULL default '0',
fretr INT(20) NOT NULL default '0',
bstor BIGINT(64) NOT NULL default '0',
bretr BIGINT(64) NOT NULL default '0',
PRIMARY KEY(username)
);
## Table for all groups
CREATE TABLE groups (
id INT PRIMARY KEY auto_increment,
groupname VARCHAR(15) NOT NULL,
username VARCHAR(15) NOT NULL
);
## Table for list of available groups
CREATE TABLE listgroups (
id INT PRIMARY KEY auto_increment,
groupname VARCHAR(15) NOT NULL,
description VARCHAR(255) NULL
);
### Table for transferhistory
CREATE TABLE history (
id INT PRIMARY KEY auto_increment,
username VARCHAR(15),
filename VARCHAR(100),
transfertype VARCHAR(10),
transfersize INT,
transferhost VARCHAR(30),
transfertime VARCHAR(20),
transferdate DATETIME
);
### Table for user events
CREATE TABLE userevents (
id INT PRIMARY KEY auto_increment,
username VARCHAR(15),
eventtype VARCHAR(10),
description VARCHAR(255),
eventdate DATETIME
);