系统之家 - Windows操作系统&装机软件下载网站!

当前位置: 首页  >  教程资讯  >  电脑教程 CentOS 6.4中出现Vsftpd 中文乱码怎么办

CentOS 6.4中出现Vsftpd 中文乱码怎么办

时间:2023-06-02 16:16:41 来源: 人气:

   Windows客户端访问FTP应用服务器出现乱码。这是由于UTF-8与GBK不兼容而头疼的引起的,采用源码方式编译安装就可将此问题解决。,  乱码解决过程:,  1、首先使用 rpm -e vsftpd卸载系统安装的默认VSFTPD应用服务器:,  [root@localhost ~]# rpm -e vsftpd,  2、从http://vault.centos.org/6.3/updates/Source/SPackages/网站下载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,  安装过程中系统会提示类似如下错误:,  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命令创建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文件;将行内容为:vsf_cmdio_write_raw(p_sess, " UTF8rn");,  修改为://vsf_cmdio_write_raw(p_sess, " UTF8rn")。,  8、使用命令vi opts.c修改 opts.c文件;,  将handle_opts函数修改成如下:,  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文件创建时间已经为当前创建时间,如下所示:,  -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,  此时因为系统缺少依赖包会报如下错误:,  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目录,此时可以看到该目录下已经生成相关RPM包:,  命令模式如下:,  [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应用服务器组件包:,  [root@localhost x86_64]# rpm -ivh vsftpd-2.2.2-11.el6.1.x86_64.rpm,  Preparing... ########################################### [100%],  1:vsftpd ########################################### [100%],  15、CentOS6.4修改系统默认字符集:,  [root@localhost /]# vi /etc/sysconfig/i18n,  将原文件修改为如下内容:,  #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",  此时所有修改工作已经完成,重起FTP应用服务器之后我们在windows系统中使用IE浏览器以及前期应用软件进行测试中文乱码问题消失。该解决办法同样适用于RHEL6系列操作系统中存在的VSFTPD于windows客户端字符集兼容原因导致的乱码问题。,

作者

教程资讯

电脑教程排行

系统教程

系统主题