CentOS 6.4 中 Vsftpd 中文乱码的解决方案
Windows客户端访问FTP应用服🤦务器出🐢现乱码【xiàn luàn mǎ】。这是由【zhè shì yóu】🏹于【yú】UTF-8与【yǔ】GBK不兼容【bú jiān róng】而头疼🏧的引起【de yǐn qǐ】🏧的🔻,采用源码方式编译安装就可将此问题解决。
乱码解决过程:
1、首先使用 rpm -e vsftpd卸载系【xiè zǎi xì】👭统安装的默认【de mò rèn】⛴VSFTPD应用服【yīng yòng fú】🖲务器:
[root@localhost ~]# rpm -e vsftpd
2、从http://vault.centos.org/6.3/updates/Source/SPackages/网站下【wǎng zhàn xià】载【zǎi】🎸vsftpd-2.2.2-11.el6_3.1.src.rpm 源码包👪。
3、使用【shǐ yòng】 rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 对该包【duì gāi 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 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ǐ shí xū】要使用【yào shǐ yòng】😴adduser mockbuild命令创💾建mockbuild用户:
[root@localhost birdofprey]# adduser mockbuild
4、重新使用【yòng】rpm -ivh vsftpd-2.2.2-11.el6_3.1.src.rpm 对该包【duì gāi 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、使用命【shǐ yòng mìng】😞令 cd /root/ rpmbuild/SOURCES/vsftpd/SOURCES进入🐮vsftpd源码包目录【mù lù】,并使用tar -zxvf vsftpd-2.2.2.tar.gz解压【jiě yā】😓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源码目【yuán mǎ mù】录【lù】:
[root@localhost SOURCES]# cd vsftpd-2.2.2
7、使用命🔬令【lìng】vi features.c修改【xiū gǎi】 features.c文件;将行内容为🎷:vsf_cmdio_write_raw(p_sess, " UTF8\r\n");
修改为【xiū gǎi wéi】🍋://vsf_cmdio_write_raw(p_sess, " UTF8\r\n")。
8、使用命【shǐ yòng mìng】🔇令🏞vi opts.c修改 opts.c文件【wén jiàn】;
将【jiāng】🌋handle_opts函数修改成如【gǎi chéng rú】🙁下:
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/命令重【mìng lìng chóng】新压缩vsftpd-2.2.2.tar.gz文件【wén jiàn】:
[root@localhost SOURCES]# tar -zcvf vsftpd-2.2.2.tar.gz vsftpd-2.2.2/
我们使用🍳ls -命令可以看到【yǐ kàn dào】🎥列表中vsftpd-2.2.2.tar.gz文件创【wén jiàn chuàng】❓建时间【jiàn shí jiān】已经为💬当前创建时间【jiàn shí jiān】,如下所示【shì】:
-rw-rw-r--. 1 mockbuild mockbuild 186982 5月【yuè】🐉 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月【yuè】🐉 13 00:06 vsftpd_conf_migrate.sh -rw-r--r--. 1 mockbuild mockbuild 125 2月【yuè】🐉 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月【yuè】🐉 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月【yuè】🐉 13 00:06 vsftpd.xinetd
10、进入源【jìn rù yuán】码包下的🦋 SPECS目录【mù lù】,并使用💡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
我们可【wǒ men kě】以从【yǐ cóng】CentOS6.4安装盘中找到🈹如下【rú xià】RPM软件包进行手🎟动安装🛫,包名如下【rú xià】:
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、将以上【jiāng yǐ shàng】各包使用🌬rpm -ivh *.rpm -force --nodeps命令进【mìng lìng jìn】行强制安装🈯:
[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、再次使【zài cì shǐ】用rpmbuild -bb vsftpd.spec对【duì】🐾vsftpd-2.2.2-11.el6.1.x86_64.rpm包重新🖨进行编译:
[root@lo
关键词【guān jiàn cí】💴:CentOS,Vsftpd
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 0
- 0
- 0