近来在研究PHP中的TP框架,对于FTP一直不了解,就顺手搭建了一个FTP服务;在此Mark一下!
一、安装环境准备
1. 阿里云服务器
2. Linux系统 CentOS 6.5系统
3. 可以使用wget的PhpStudy 一键安装包
安装地址
这个包是PHP + Nginx/Apache+Mysql的集成版本,如果想学习PHP必须要安装它,这个和本文无管,只是最后建PHP ftp上传的时候要用到它!
4. 使用
【工具:update_source.sh】
功能:自动检测系统并更新源
适用系统版本:兼容线上所有linux版本
执行方法:以root身份执行命令:bash update_source.sh
解决了什么问题:一键式检测系统并更新源
给客户带来了好处:用户只需执行该脚本一次即可自动检测系统并更新源。
备注:由于系统版本都有支持的周期所以部分源可能会出现不可用的情况,包括官方的源,这是正常情况
二、安装vsftp
使用yum命令安装vsftp
#yum install vsftpd -y
三、安装完成后
1 .添加ftp帐号和目录
先检查一下nologin的位置,通常在/usr/sbin/nologin或者/sbin/nologin下。
使用下面的命令创建帐户,该命令指定了/alidata/www/root为用户pwftp的所能范围目录,换而言之也就是用户pwftp使用ftp工具登陆服务器后,所能访问的文件目录,这样的话这个用户是一定访问不了www 或者是 alidata的目录的,您也可以自己定义帐户名和目录,
例如
#useradd -d /alidata/www/root -s /sbin/nologin pwftp
命令解释
#useradd -d (用户所管理的路径) -s (nologin文件位置通常不是在/usr/sbin/nologin就是在/sbin/nologin) (用户名)
修改该帐户密码:
#passwd pwftp
命令解释
#passwd (用户名)
修改指定目录的权限
#chown -R pwftp.pwftp /alidata/www
命令解释
#chown -R (用户名):(组名称) /alidata/www
四、配置vsftp
1.编辑vsftp配置文件,命令如下:
#vi /etc/vsftpd/vsftpd.conf
将配置文件中”anonymous_enable=YES “改为 “anonymous_enable=NO”
取消如下配置前的注释符号:
local_enable=YES
write_enable=YES
chroot_local_user=YES
保存修改,按ESC键,输入
:wq
2.修改shell配置
vi编辑/etc/shells,如果该文件里没有/usr/sbin/nologin或者/sbin/nologin(具体看当前系统配置)则追加进去
3.启动vsftp服务并测试登录
使用命令启动vsftp服务:
#service vsftpd start
然后用帐号pwftp测试下是否可以登陆ftp。目录是/alidata/www。
=================================================================================
遇到的坑
【坑一】像上面那样一个简单的ftp就算搭建完成了,但是大家思考一下如果多个用户想ftp上传,但是可能管理的路径还都一致,但是代码里面必须要写两个用户,这里就要引入组的概念了,
Linux是既可以吧用户交给文件来进行管理,又可以交给组来进行管理;
[list]
[*]创建组
groupadd (组名字)
[*]为组里面添加用户
usermod -g (组名) (用户名)
[*]给组授予管理目录的权限
chown -R (用户名):(组名) /目录名称
[*]查看用户在那个组里面
groups (用户名)
[*]查看用户在那个组里面
id (用户名)
[/list]
【坑二】阿里云服务器21端口对外网访问是禁用的,需要到阿里云控制台自己打开
【坑三】涉及到的一些查看用户和授权文件文件目录的命令操作
1.参数 -R 对目标目录进行全递归的处理
2. chmod 对目录进行读写权限操作
例子
chmod -R 777 /phpstudy/www
chmod -R a+w /phpstudy/www
对于chmod的部分讲解
如下图所示,为每个文件的属性
linux 分为3种类型的用户
1. 拥有着(用户)=u
2. 用户组=g
3. 其他=o
4. 以上全部为=a
因此 当你发现 有的命令为
chmod -R a+x /phpstudy/www
的时候,不要怪异,其实就是u+g+o=a 的情况
linux 分为3种类型的执行权限
1. 读=r
2. 写=w
3. 执行=x
因此就有了多种组合哈
如下图所示
权限集合也可以通过数字来识别并进行分配,如下图
对于一些不常使用的命令,我们还是一笔带过可能会用到
1. 服务启动停止类
service vsftpd restart #ftp服务重启
service vsftpd start #ftp服务启动
service vsftpd stop #ftp服务停止
2. 改变ftp用户登录后管理的目录
usermod -d /phpstudy/www/flj_images/store/logo sz_sh_lo
3. 开启与关闭防火墙
service iptables stop
service iptables start
4. 端口使用列表
netstat -ano
5.About
(1)
http://help.aliyun.com/knowledge_detail/5973912.html?spm=5176.7618386.5.1.Pt66Jx
(2)
http://www.phpstudy.net/
(3)
http://jingyan.baidu.com/article/afd8f4de4d6ea434e286e914.html