本论坛主机由典典提供宽带和服务器
发新话题
打印

安装Mysql 4.0 +pure-ftpd+Apache2.0.55+Php4.4.2 专题

安装Mysql 4.0 +pure-ftpd+Apache2.0.55+Php4.4.2 专题

一、 安装Mysql  
我安装的Mysql是4.0版本的,所以如果有最新大家也可以尝试啊。

# cd /usr/ports/databases/mysql40-server
引用:
安装一下MySQL数据库。
cd /usr/ports/databases/mysql40-server
make SKIP_DNS_CHECK=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes install
其中﹕
SKIP_DNS_CHECK=yes 表示在加入本机名字时﹐不用做反向解析
BUILD_OPTIMIZED=yes 表示在编译时优化处理
BUILD_STATIC=yes 把mysqld编译成静态执行版本
这样子我们就完全了mysql的安装了﹐它自动会安装在/usr/local目录里面的﹐数据库目录位于/var/db/mysql,我得makefile文件部分参数设置:
CONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
CONFIGURE_ARGS= --localstatedir=/var/db/mysql \
                --without-debug \
                --without-readline \
                --without-libedit \
                --without-bench \
                --without-extra-tools \
                --with-libwrap \
                --with-mysqlfs \
                --with-low-memory \
                --with-comment='FreeBSD port: ${PKGNAME}' \
                --enable-thread-safe-client
在Makefile里CONFIGURE_TARGET那行前面的空行加上两行优化选项:
BUILD_OPTIMIZED=yes
BUILD_STATIC= yes
保存退出编辑。然后
#make SKIP_DNS_CHECK=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes install

# make clean

安装完后产生启动脚本在 /usr/local/etc/rc.d/mysql-server.sh

你可以运行以下命令,看Mysql服务是否已经启动。

# ls | grep mysql

如果有返回信息,就表示Mysql已经启动了,如果没有启动,运行以下命令。

# cd /usr/local/etc/rc.d
# ./mysql-server.sh start

如果你要停止Mysql服务。

# /usr/local/etc/rc.d/mysql-server.sh stop

确认服务启动后,我们来测试数据库运行是否正常:
(注:默认情况下Mysql的用户是root,密码为空,所以请立即登录Mysql修改root用户的密码)

# mysql

出现下面内容表示运行正常。

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16 to server version: 4.0.18
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
输入exit退出Mysql。

为Mysql的root用户设置一个口令123456

# mysqladmin -u root password "123456"

设置完后我们再来测试一下密码是否生效了。

# mysql -u root -p
Enter password:

出现提示密码,输入正确密码并回车。
如果出现以下内容,表示设置成功。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16 to server version: 4.0.18
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

如果出现以下内容,表示设置失败。(如果这样,你就惨了,哈哈)

ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
提示:phpmyadmin 安装目录:cd /usr/ports/databases/phpmyadmin 然后:make install clean方法等同!
apahce 安装目录:cd /usr/ports/www/apache20
php4的安装目录:cd /usr/ports/lang/php4 和 cd /usr/ports/lang/php4-ex????


二、 安装PureFTPd
1.下面我们开始安装PureFTPd,同样以FreeBSD的Ports方式安装。

# cd /usr/ports/ftp/pure-ftpd

Makefile内容介绍:
引用:
CONFIGURE_ARGS= \
’ --prefix=/usr/local/pureftpd \ 安装目录
--with-paranoidmsg \ //唔....不知该怎么说.算是可以给特定人的信息吧.
--with-welcomemsg \ //支持登录后的信息显示,我反正搞不定,哈哈
--with-uploadscript \ //当一个文件被完整上传完后自动呼叫某一script去对这个文件
处理.当然.这个script得你自己写.
--with-largefile \ //支持下载超过2G的文件.
--with-cookie \ //使用者进站看到的东东.类似进站画面.
--with-virtualchroot \ //安全的chroot.
--with-virtualhosts \ //跟http的virtualhost有异曲同工之妙.
--with-virtualroot \ //虚拟root支持
--with-diraliases \ //跟Serv-U上面的link功能一样.
--with-quotas \ // 使用quota.(非系统下的quota)
--with-sysquotas \ //允许使用操作系统的Quota(磁盘限额)
--with-ratios \ //上下传比率支持.
--with-ftpwho \ //使用pure-ftpwho命令查看线上用户.
--with-everything \ // 所有功能全上.(自己看着办吧)
--with-throttling’ \ //频宽可设限.
安装完后,就会在/usr/local目录下生成一个pureftpd目录,我们要使用的文件都在这个目录中。

#ee Makefile 我没有改,因为有了:--with-everything \ // 所有功能全上.(自己看着办吧)
根据上面的帖子给你的makefile里加上必要的CONFIGURE_ARGS,然后保存退出ee。本例中没有指定安装目录,使用ports默认的安装目录。
#make WITH_MYSQL=1 WITH_LANG=simplified-chinese install clean

1. MYSQL数据库支持,2.提示文字为简体中文

随后安装会很顺利完成。继续下面的配置,执行下列操作,为pure-ftpd增加配置文件:
# cd /usr/ports/ftp/pure-ftpd
# make WITH_MYSQL=1 WITH_LANG=simplified-chinese install clean

# cd /usr/local/etc
# cp pure-ftpd.conf.sample pure-ftpd.conf
# cp pureftpd-mysql.conf.sample /etc/pureftpd-mysql.conf
# cd /usr/local/etc
# ee pure-ftpd.conf
把mysql数据库的那行的那个注释去掉——准备使用mysql作为验证。
MySQLConfigFile /etc/pureftpd-mysql.conf
再指定禁止匿名登录:
NoAnonymous yes
再指定允许上传人修改文件名:
NoRename no
允许登录用户使用chmod指令
NoChmod no
使用者可刪除文件
KeepAllFiles no
自动建立帐户的home dir
CreateHomeDir yes

conf设置完毕。随后导入数据库初始值。把下面这段拷贝粘贴为一个文本文件,例如ftp.mysql,然后执行下列命令导入mysql数据库里:
#mysql -u root -p123456 < ftp.mysql

代码:
复制内容到剪贴板
代码:
INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv,
Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv,
Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv,
Index_priv, Alter_priv) VALUES
('localhost','ftp',PASSWORD('123456'),'Y','Y','Y','Y','N','N','N','N',
'N','N','N','N','N','N');

FLUSH PRIVILEGES;

CREATE DATABASE ftpusers;

USE ftpusers;

CREATE TABLE admin (
Username varchar(35) NOT NULL default '',
Password char(32) binary NOT NULL default '',
PRIMARY KEY (Username)
) TYPE=MyISAM;

INSERT INTO admin VALUES ('Administrator',MD5('123456'));

CREATE TABLE users (
User char(16) NOT NULL default '',
Password char(32) binary NOT NULL default '',
Uid int(11) NOT NULL default '2000',
Gid int(11) NOT NULL default '2000',      
Dir char(128) NOT NULL default '',
QuotaFiles int(10) NOT NULL default '500',
QuotaSize int(10) NOT NULL default '30',
ULBandwidth int(10) NOT NULL default '80',
DLBandwidth int(10) NOT NULL default '80',
status enum('0','1') NOT NULL default '1',
ipaccess varchar(15) NOT NULL default '*',
comment tinytext NOT NULL,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;

INSERT INTO `users` VALUES ('test',MD5('test'),2001,2000,'/home/test',500,30,80,5,1,'*','*');
创建新数据库ftpusers,并新建1个表ftpd.
然后我们运行以下命令来生成数据库ftpusers。

# mysql -u root -ppassword < ftp.mysql
注意,-p是输入密码,它和后面你输入的password中没有空格。


数据库导入之后,还不能使用,还需要设置pureftpd-mysql.conf
#ee /etc/pureftpd-mysql.conf

5.修改/etc/pureftpd-mysql.conf配置文件
内容如下所示:

注意这几行就可以了,其他的不要修改
#如果你的Mysql是按ports默认安装,那么选择
MYSQLSocket /tmp/mysql.sock
以下几行要注意和MYSQLUser、MYSQLPassword、MYSQLDatabase下面的ftp.mysql指定中的一致
MYSQLUser ftp
MYSQLPassword 123456
MYSQLDatabase ftpusers
MYSQLCrypt md5
#密码加密方式"cleartext", "crypt", "md5" and "password"
# cleartext 明文,crypt,md5,password是Backend password(‘your-passwd’)函数(MYSQL数据库所使用的password()函数)
MYSQLGetPW SELECT Password FROM users WHERE User="\L"
# 密码字段,我使用users表中的Password做为密码字段
MYSQLGetUID SELECT Uid FROM users WHERE User="\L"
#UID用户ID字段
MYSQLDefaultUID 1000
#默认的UID (注:如何开启该选项,MYSQLGetUID将失去作用)
MYSQLGetGID SELECT Gid FROM users WHERE User="\L"
#GID组ID字段
MYSQLDefaultGID 1000
#默认的GID (注:如何开启该选项,MYSQLGetGID将失去作用)
MYSQLGetDir SELECT Dir FROM users WHERE User="\L"
#FTP用户目录如/home/web/www-9812-net
MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L"
#磁盘限额,文件数限制。如1000,允许用户上传1千个文件
MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L"
#磁盘限额,FTP用户空间限制(单位为M),如:100M
MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L"
MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L"
#上传/下载比率。MySQLGetRatioUL为上传比,MySQLGetRatioDL下载比。如:1:5
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L"
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L"
#下传/下载带宽(单位KB/s)。MySQLGetBandwidthUL上传带宽,MySQLGetBandwidthDL下载带宽。如上传500KB/s,下载50KB/s
MySQLForceTildeExpansion 1
MySQLTransactions On
#不会翻译
启动脚本:/usr/local/etc/rc.d/pure-ftpd.sh restart
至此有关系统里的修改全部完毕。你现在重启系统,可以试试用test/test来登录一下ftp了。
支持典典论坛,支持铜驴!

TOP

回复 #1 admin 的帖子

ph-pmanage安全问题!

7:安全
phpmanager目录绝对不能让人随便访问,否则要乱套了,一般我都是在apache中对这个目录进行限制。

ee /usr/local/etc/apache2/httpd.conf

<Directory "/usr/www/phpmanager">;
    deny from all
    Options None
    AllowOverride AuthConfig
    Order deny,allow
</Directory>;

ee /usr/www/phpmanager/.htaccess

AuthType Basic
AuthUserFile /usr/local/pureftpd.passwd
AuthName 想添加用户就得过我这一关,嘿嘿^_^
require valid-user
satisfy any


/usr/local/sbin/htpasswd -bc /usr/local/pureftpd.passwd jxtm lovefreebsd

/usr/local/etc/rc.d/apache2.sh restart重启apache

这样再以http://ip或域名/phpmanager/index.php来访问的时候会提示要用户名密码了,必须输入jxtm和lovefreebsd才可以进去的。

另外还可以写个shell来定期的修改用户名、密码,这样就更安全些,密码也要复杂些。

关于pureftpd,大概的就说这么多吧,至于具体的配置,google一下吧,很多帖子专门讲的就是它的每一行配置是什么意思的,可根据实际情况选择。
支持典典论坛,支持铜驴!

TOP

建议 php 5.1.2

TOP

发新话题
版块跳转