綠色資源網(wǎng):您身邊最放心的安全下載站! 最新軟件(jiàn)|熱門排行|軟件分類|軟件專題|廠商大全(quán)

綠(lǜ)色資(zī)源網

技術教程
您的(de)位置:首(shǒu)頁(yè)操作係統(tǒng)linux → CentOS 6.4 中 Vsftpd 中文亂碼的解決方案

CentOS 6.4 中 Vsftpd 中文(wén)亂碼的解決方案

我要評論 2013/05/18 13:37:54 來(lái)源(yuán):綠色資源網 編(biān)輯:www.chithemodel.com [ ] 評論:0 點擊:443次

Windows客戶端(duān)訪問FTP應(yīng)用服務(wù)器出現亂碼。這是由(yóu)於UTF-8與GBK不兼容而頭疼的引起的(de),采用源碼方(fāng)式編譯安裝就可將此問題解決。

亂碼解決過程:

1、首先使用 rpm -e vsftpd卸載係統安裝的默(mò)認VSFTPD應用服務器:

[root@localhost ~]# rpm -e vsftpd 

2、從http://vault.centos.org/6.3/updates/Source/SPackages/網站下(xià)載(zǎi)vsftpd-2.2.2-11.el6_3.1.src.rpm 源碼包(bāo)。

3、使用 rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 對該(gāi)包進行安裝:

[root@localhost birdofprey]# rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 

安(ān)裝過(guò)程中係統會提示類似如下(xià)錯誤:

warning: vsftpd-2.2.2-11.el6_3.1.src.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 

1:vsftpd warning: user mockbuild does not exist - using root 

########################################### [100%] 

warning: user mockbuild does not exist - using root 

warning: group mockbuild does not exist - using root 

warning: user mockbuild does not exist - using root 

warning: group mockbuild does not exist - using root 

warning: user mockbuild does not exist - using root 

warning: group mockbuild does not exist - using root 

此(cǐ)時需要使用adduser mockbuild命令創建mockbuild用(yòng)戶:

[root@localhost birdofprey]# adduser mockbuild 

4、重新使用rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 對該包(bāo)進行安裝:

[root@localhost birdofprey]# rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 

warning: vsftpd-2.2.2-11.el6_3.1.src.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 

1:vsftpd       ########################################### [100%] 

5、使用命(mìng)令 cd /root/ rpmbuild/SOURCES/vsftpd/SOURCES進入vsftpd源碼包目錄(lù),並使用tar -zxvf vsftpd-2.2.2.tar.gz解(jiě)壓vsftpd-2.2.2.tar.gz源碼包(bāo):

[root@localhost SOURCES]# tar -zxvf vsftpd-2.2.2.tar.gz 

6、使用命令cd vsftdp-2.2.2進入vsfftpd-2.2.2源碼目錄:

[root@localhost SOURCES]# cd vsftpd-2.2.2 

7、使用命令vi features.c修改(gǎi) features.c文(wén)件;將(jiāng)行內容為(wéi):vsf_cmdio_write_raw(p_sess, " UTF8\r\n");

修(xiū)改(gǎi)為://vsf_cmdio_write_raw(p_sess, " UTF8\r\n")。 

8、使用命令vi opts.c修改 opts.c文(wén)件;

將handle_opts函數修改成(chéng)如下: 

void 

handle_opts(struct vsf_session* p_sess) 

str_upper(&p_sess->ftp_arg_str); 

//if (str_equal_text(&p_sess->ftp_arg_str, "UTF8 ON")) 

//{ 

//vsf_cmdio_write(p_sess, FTP_OPTSOK, "Always in UTF8 mode."); 

//} 

//else 

//{ 

//vsf_cmdio_write(p_sess, FTP_BADOPTS, "Option not understood."); 

//} 

9、返回上層目錄(lù)並使用(yòng) tar -zcvf vsftpd-2.2.2.tar.gz vsftpd-2.2.2/命令重新壓縮vsftpd-2.2.2.tar.gz文(wén)件:

[root@localhost SOURCES]# tar -zcvf vsftpd-2.2.2.tar.gz vsftpd-2.2.2/ 

我們(men)使用ls -命令可以看到列表中vsftpd-2.2.2.tar.gz文件創建時間已經為當前創建時(shí)間,如下所示:

-rw-rw-r--. 1 mockbuild mockbuild 186982 5月   3 15:39 vsftpd-2.2.2.tar.gz
-rw-r--r--. 1 mockbuild mockbuild   2828 2月(yuè)  13 00:06 vsftpd-2.2.2-uint-uidgid.patch
-rw-r--r--. 1 mockbuild mockbuild   1640 2月(yuè)  13 00:06 vsftpd-2.2.2-v6only.patch
-rw-r--r--. 1 mockbuild mockbuild    514 2月(yuè)  13 00:06 vsftpd-close-std-fds.patch
-rwxr-xr-x. 1 mockbuild mockbuild    338 2月  13 00:06 vsftpd_conf_migrate.sh
-rw-r--r--. 1 mockbuild mockbuild    125 2月  13 00:06 vsftpd.ftpusers
-rwxr-xr-x. 1 mockbuild mockbuild   2824 2月(yuè)  13 00:06 vsftpd.init
-rw-r--r--. 1 mockbuild mockbuild    335 2月  13 00:06 vsftpd.pam
-rw-r--r--. 1 mockbuild mockbuild    361 2月(yuè)  13 00:06 vsftpd.user_list
-rw-r--r--. 1 mockbuild mockbuild    345 2月  13 00:06 vsftpd.xinetd

10、進(jìn)入源碼包下的 SPECS目錄(lù),並使用rpmbuild -bb vsftpd.spec命令生成vsftpd-2.2.2-11.el6.1.x86_64.rpm:

[root@localhost SPECS]# rpmbuild -bb vsftpd.spec 

此時因為係統缺少(shǎo)依賴包會報(bào)如下錯誤:

error: Failed build dependencies:
libcap-devel is needed by vsftpd-2.2.2-11.el6.1.x86_64
tcp_wrappers-devel is needed by vsftpd-2.2.2-11.el6.1.x86_64

我們(men)可(kě)以從CentOS6.4安裝盤中找到如下RPM軟件包進行手動(dòng)安裝,包名如下:

libattr-2.4.44-7.el6.i686.rpm          libcap-devel-2.16-5.5.el6.x86_64.rpm
libattr-2.4.44-7.el6.x86_64.rpm        tcp_wrappers-devel-7.6-57.el6.i686.rpm
libattr-devel-2.4.44-7.el6.i686.rpm    tcp_wrappers-devel-7.6-57.el6.x86_64.rpm
libattr-devel-2.4.44-7.el6.x86_64.rpm  tcp_wrappers-libs-7.6-57.el6.i686.rpm
libcap-2.16-5.5.el6.i686.rpm           tcp_wrappers-libs-7.6-57.el6.x86_64.rpm
libcap-2.16-5.5.el6.x86_64.rpm         vsftpd-2.2.2-11.el6_3.1.src.rpm
libcap-devel-2.16-5.5.el6.i686.rpm

11、將以上各(gè)包使用rpm -ivh *.rpm -force --nodeps命令進行(háng)強製安裝:

[root@localhost rpm]# rpm -ivh *.rpm --force --nodeps 

warning: libattr-2.4.44-7.el6.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY 

Preparing...             ########################################### [100%] 

1:libattr                ########################################### [  8%] 

2:libcap                 ########################################### [ 17%] 

3:tcp_wrappers-libs      ########################################### [ 25%] 

4:libattr                ########################################### [ 33%] 

5:libcap                 ########################################### [ 42%] 

6:tcp_wrappers-libs      ########################################### [ 50%] 

7:tcp_wrappers-devel     ########################################### [ 58%] 

8:libcap-devel           ########################################### [ 67%] 

9:libattr-devel          ########################################### [ 75%] 

10:tcp_wrappers-devel    ########################################### [ 83%] 

11:libcap-devel          ########################################### [ 92%] 

12:libattr-devel         ########################################### [100%] 

12、再次使用rpmbuild -bb vsftpd.spec對vsftpd-2.2.2-11.el6.1.x86_64.rpm包重新進行編譯(yì):

[root@lo

關鍵詞:CentOS,Vsftpd

閱讀本文(wén)後您有什(shí)麽感(gǎn)想? 已有 人給出評價!

  • 0 歡迎喜歡
  • 0 白癡
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙視