1导盅、前言
一般來說荧降,你不可能在服務(wù)器上編寫php代碼之類的髓窜,這樣既不安全捍岳,也很難回退版本之類的槐瑞,而且還會有相當(dāng)?shù)难舆t掀亩。所以一般我們都是本地編寫厉颤,然后上傳到服務(wù)器美旧。
上傳到服務(wù)器的方式有很多種鼎文,接下來本章節(jié)主要介紹幾種上傳到服務(wù)器的方法渔肩。同時,我也會接下來幾個章節(jié)主要介紹我們的Git服務(wù)器部署以及配置拇惋。
2. SCP傳輸文件
SCP是簡單的文件傳輸命令周偎,因為是加密的,所以很安全蚤假,內(nèi)網(wǎng)傳輸速度快栏饮。
# 1、本地 ---文件--> 遠(yuǎn)程服務(wù)器
# 格式:
$ scp [-P 端口號] <本地文件路徑> <遠(yuǎn)程服務(wù)器用戶名>@<遠(yuǎn)程服務(wù)器ip地址>:<要上傳到遠(yuǎn)程服務(wù)器的文件位置>
### 如:
$ scp /usr/local/nginx/html/50x.html root@139.xxx.xxx.xxx:/home/guest/scp
root@139.xxx.xxx.xxx's password: #輸入密碼
# 50x.html 100% 537 6.8KB/s 00:00
##### 傳輸成功 ####
# 2磷仰、遠(yuǎn)程服務(wù)器 ---文件--> 本地
# 格式:
$ scp [-P 端口號] [遠(yuǎn)程服務(wù)器用戶名]@[遠(yuǎn)程服務(wù)器ip地址]:[遠(yuǎn)程服務(wù)器文件路徑] [本地文件路徑]
### 如:
$ scp root@139.xxx.xxx.xxx:/home/guest/scp/50x.html /tmp
root@139.xxx.xxx.xxx's password: #輸入密碼
# 50x.html 100% 537 12.2KB/s 00:00
##### 下載成功 #####
# 3袍嬉、 本地 ---文件夾--> 遠(yuǎn)程服務(wù)器
$ scp [-P 端口號] -r [本地文件夾路徑] [遠(yuǎn)程服務(wù)器用戶名]@[遠(yuǎn)程服務(wù)器ip地址]:[要上傳到遠(yuǎn)程服務(wù)器的文件位置]
# 4、遠(yuǎn)程服務(wù)器 ---文件夾--> 本地
$ scp [-P 端口號] -r [遠(yuǎn)程服務(wù)器用戶名]@[遠(yuǎn)程服務(wù)器ip地址]:[遠(yuǎn)程服務(wù)器文件夾路徑] [本地文件路徑]
3. sftp文件傳輸
類似ftp傳輸文件灶平,但是比ftp更加安全
$sftp root@139.xxx.xxx.xxx # 通過sftp連接到遠(yuǎn)程服務(wù)器
root@139.xxx.xxx.xxx's password: # 輸入登錄密碼
Connected to 139.xxx.xxx.xxx. # 已連接到遠(yuǎn)程服務(wù)器
sftp> put <本地文件路徑> <遠(yuǎn)程文件路徑> # 上傳文件
sftp> get <遠(yuǎn)程文件路徑> <本地文件路徑> # 下載文件
4. ftp傳輸文件
1.部署FTP文件服務(wù)器
2.FTP服務(wù)器主要下載組件vsftpd(Very Secure FTP)
3.FTP服務(wù)端口(21端口用于連接伺通,20端口)
1、配置安裝啟動Ftp
1逢享、 下載vsftpd
$yum search vsftpd
$yum install vsftpd
2罐监、 修改配置開機啟動
###配置文件位于 /etc/vsftpd/ 詳細(xì)參數(shù)見Tips
$chkconfig --level 35 vsftpd on #開機啟動
3、啟動ftp服務(wù)
$service vsftpd start
#或:
$systemctl start vsftpd.service
2瞒爬、配置文件詳解
配置文件路徑: /etc/vsftpd
配置文件夾主要有三個文件(sh文件不算):
- ftpusers
- user_list
- vsftpd.conf
1. ftpusers
禁止使用ftp的用戶列表弓柱,即FTP黑名單
2. user_list
禁止或者允許使用ftp的用戶列表沟堡,分兩種情況:
- 如果vsftpd.conf配置文件userlist_deny=YES,則用戶列表里的用戶禁止登陸(默認(rèn))
- 如果vsftpd.conf配置文件userlist_deny=NO,則用戶列表里的用戶允許登錄
3. vsftpd.conf內(nèi)容詳解:
# 默認(rèn)配置文件地址 /etc/vsftpd/vsftpd.conf
### 監(jiān)聽
listen_address=ip_addr # 指定監(jiān)聽的ip地址
listen_port=21 # 監(jiān)聽的端口位置(默認(rèn)FTP端口21)
listen=NO # 開啟ipv4監(jiān)聽
listen_ipv6=YES # 開啟piv6監(jiān)聽
### 用戶
#nopriv_user=ftpsecure # 指定vsftp服務(wù)運行的賬戶,默認(rèn)是ftp
local_root=/home/ftp #所有用戶(除匿名用戶)根目錄
write_enable=YES # 是否允許用戶寫文件
####### 本地用戶
local_enable=YES # 是否允許本地用戶登錄
local_umask=022 # 設(shè)置本地用戶生成文件的掩碼為022(若不設(shè)置為077)
#local_max_rate = 300 # 本地用戶最大傳輸速度(Byts/s)
####### 匿名用戶
anonymous_enable=YES # 是否允許匿名登錄
anon_upload_enable=YES # 是否允許匿名用戶上傳文件
anon_mkdir_write_enable=YES # 是否允許匿名用戶創(chuàng)建和寫文件
#anon_max_rate = 300 # 匿名用戶最大傳輸速度(Byts/s)
####### 虛擬用戶
userlist_enable=YES # 僅僅user_list里的用戶可以訪問
#userlist_deny=YES
# email用戶
#deny_email_enable=YES # 是否拒絕banned_email_file里面的email地址登錄
#banned_email_file=/etc/vsftpd/banned_emails # 默認(rèn)banned_email_file路徑
###權(quán)限
chown_uploads=YES # 是否具備上傳權(quán)限矢空,用戶由chown_username指定
chown_username=whoever
#chroot_local_user=YES # 限制所有本地用戶只能在自家目錄
#chroot_list_enable=YES # 指定不能離開用戶目錄的用戶
#chroot_list_file=/etc/vsftpd/chroot_list # 默認(rèn)的chroot_list文件位置
###日志
xferlog_enable=YES # 是否開啟上傳下載日志
xferlog_file=/var/log/xferlog # 日志位置
xferlog_std_format=YES # 標(biāo)準(zhǔn)日志格式
###超時操作
idle_session_timeout=600 # 設(shè)置用戶600(s)后沒有操作的話,連接中斷
data_connection_timeout=120 # 設(shè)置用戶120(s)后沒有進行數(shù)據(jù)連接航罗,連接中斷
###系統(tǒng)設(shè)置
ftpd_banner=Welcome to blah FTP service.# 用戶連接服務(wù)器后顯示的消息
#async_abor_enable=YES # 是否允許客戶端使用sync等命令
ascii_upload_enable=YES # 是否允許上傳二進制文件
ascii_download_enable=YES # 是否允許下載二進制文件
dirmessage_enable=YES # 當(dāng)切換到目錄時,是否顯示該目錄下的.message隱藏文件的內(nèi)容
#ls_recurse_enable=YES # 是否允許使用ls -R等操作
pam_service_name=vsftpd # 設(shè)置PAM認(rèn)證服務(wù)的配置文件名稱屁药,該文件存放在/etc/pam.d/
tcp_wrappers=YES # 在vsftpd中是否使用TCP_Wrappers遠(yuǎn)程訪問控制機制粥血,默認(rèn)YES
connect_from_port_20=YES # 是否使用20端口傳輸數(shù)據(jù)(主動模式)
4、PAM認(rèn)證酿箭,實現(xiàn)虛擬賬號登錄FTP服務(wù)器(推薦)
#安裝組件包
$yum install db4* -y
坑:
坑1. 匿名用戶開啟上傳文件遇到的坑
開啟上傳文件复亏,需要先在配置文件中設(shè)置
write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES
但是,設(shè)置完配置文件并重啟后缭嫡,并不能上傳文件缔御,還需要額外的設(shè)置:
# 1.觀察是否開啟SeLinux功能 $getsebool #兩種結(jié)果: #1.顯示"usage: getsebool -a or getsebool boolean...",說明已開啟 #2.顯示 "getsebool: SELinux is disabled",說明已關(guān)閉 # 2.開啟Selinux(如果已開啟跳過) $vim /etc/selinux/config 把selinux=disable 改為 selinux=1 #開啟后需要重啟電腦 # 3.查看ftp設(shè)置 $getsebool -a | grep ftp #顯示內(nèi)容如下:
ftp_home_dir --> off
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
tftp_home_dir --> off
4.設(shè)置SeLinux上ftp操作
$setsebool -P allow_ftpd_anon_write on
$setsebool -P allow_ftpd_full_access on
FTP 文件上傳還有點問題械巡,待定