濮阳杆衣贸易有限公司

主頁 > 知識庫 > CentOS 6.4中出現(xiàn)Vsftpd中文亂碼解決過程

CentOS 6.4中出現(xiàn)Vsftpd中文亂碼解決過程

熱門標(biāo)簽:平頂山手機自動外呼系統(tǒng)違法嗎 科研地圖標(biāo)注 辦理400電話怎么劃傷 江蘇客服外呼系統(tǒng)怎么樣 灰谷地圖標(biāo)注 省份地圖標(biāo)注 南寧銷售電銷機器人廠家 陽江智能電銷機器人 地圖標(biāo)注軌跡
Windows客戶端訪問FTP應(yīng)用服務(wù)器出現(xiàn)亂碼。這是由于UTF-8與GBK不兼容而頭疼的引起的,采用源碼方式編譯安裝就可將此問題解決。

亂碼解決過程

1、首先使用 rpm -e vsftpd卸載系統(tǒng)安裝的默認(rèn)VSFTPD應(yīng)用服務(wù)器:

[root@localhost ~]# rpm -e vsftpd

2、從http://vault.centos.org/6.3/updates/Source/SPackages/網(wǎng)站下載vsftpd-2.2.2-11.el6_3.1.src.rpm 源碼包。

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

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

安裝過程中系統(tǒng)會提示類似如下錯誤

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

此時需要使用adduser mockbuild命令創(chuàng)建mockbuild用戶

[root@localhost birdofprey]# adduser mockbuild

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

[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、使用命令 cd /root/ rpmbuild/SOURCES/vsftpd/SOURCES進入vsftpd源碼包目錄,并使用tar -zxvf vsftpd-2.2.2.tar.gz解壓vsftpd-2.2.2.tar.gz源碼包:

[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修改 features.c文件;將行內(nèi)容為:vsf_cmdio_write_raw(p_sess, " UTF8\r\n");

修改為://vsf_cmdio_write_raw(p_sess, " UTF8\r\n")。

8、使用命令vi opts.c修改 opts.c文件;

將handle_opts函數(shù)修改成如下:


復(fù)制代碼
代碼如下:

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、返回上層目錄并使用 tar -zcvf vsftpd-2.2.2.tar.gz vsftpd-2.2.2/命令重新壓縮vsftpd-2.2.2.tar.gz文件:

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

我們使用ls -命令可以看到列表中vsftpd-2.2.2.tar.gz文件創(chuàng)建時間已經(jīng)為當(dāng)前創(chuàng)建時間,如下所示:


復(fù)制代碼
代碼如下:

-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月 13 00:06 vsftpd-2.2.2-uint-uidgid.patch
-rw-r--r--. 1 mockbuild mockbuild 1640 2月 13 00:06 vsftpd-2.2.2-v6only.patch
-rw-r--r--. 1 mockbuild mockbuild 514 2月 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月 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月 13 00:06 vsftpd.user_list
-rw-r--r--. 1 mockbuild mockbuild 345 2月 13 00:06 vsftpd.xinetd

10、進入源碼包下的 SPECS目錄,并使用rpmbuild -bb vsftpd.spec命令生成vsftpd-2.2.2-11.el6.1.x86_64.rpm:

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

此時因為系統(tǒng)缺少依賴包會報如下錯誤:

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

我們可以從CentOS6.4安裝盤中找到如下RPM軟件包進行手動安裝,包名如下:

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、將以上各包使用rpm -ivh *.rpm -force --nodeps命令進行強制安裝:

[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包重新進行編譯:

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

13、進入x86_64目錄,此時可以看到該目錄下已經(jīng)生成相關(guān)RPM包:

命令模式如下:

復(fù)制代碼
代碼如下:

[root@localhost RPMS]# cd x86_64/
[root@localhost x86_64]# ls
vsftpd-2.2.2-11.el6.1.x86_64.rpm vsftpd-debuginfo-2.2.2-11.el6.1.x86_64.rpm

14、重新安裝進行過源碼修改的vsftpd應(yīng)用服務(wù)器組件包:

[root@localhost x86_64]# rpm -ivh vsftpd-2.2.2-11.el6.1.x86_64.rpm

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

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

15、CentOS6.4修改系統(tǒng)默認(rèn)字符集:

[root@localhost /]# vi /etc/sysconfig/i18n

將原文件修改為如下內(nèi)容:

復(fù)制代碼
代碼如下:

#LANG="zh_CN.UTF-8"
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:zh_CN.GB2312:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"

此時所有修改工作已經(jīng)完成,重起FTP應(yīng)用服務(wù)器之后我們在windows系統(tǒng)中使用IE瀏覽器以及前期應(yīng)用軟件進行測試中文亂碼問題消失。該解決辦法同樣適用于RHEL6系列操作系統(tǒng)中存在的VSFTPD于windows客戶端字符集兼容原因?qū)е碌膩y碼問題。

標(biāo)簽:瀘州 儋州 玉樹 臨汾 蕪湖 玉溪 通化 泰安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《CentOS 6.4中出現(xiàn)Vsftpd中文亂碼解決過程》,本文關(guān)鍵詞  CentOS,6.4,中,出現(xiàn),Vsftpd,中文,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《CentOS 6.4中出現(xiàn)Vsftpd中文亂碼解決過程》相關(guān)的同類信息!
  • 本頁收集關(guān)于CentOS 6.4中出現(xiàn)Vsftpd中文亂碼解決過程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    宜良县| 潢川县| 阳高县| 沙坪坝区| 通化市| 洛扎县| 陆丰市| 隆子县| 涪陵区| 河南省| 海阳市| 眉山市| 九台市| 大英县| 璧山县| 理塘县| 长春市| 鹿泉市| 南城县| 台东县| 米泉市| 科技| 南川市| 三台县| 安图县| 崇礼县| 景谷| 罗城| 清徐县| 托里县| 和顺县| 历史| 昭苏县| 云梦县| 敖汉旗| 布尔津县| 宜君县| 淮南市| 宣威市| 陈巴尔虎旗| 永济市|