如何让Nginx支持中文文件名具体设置步骤

如何让Nginx支持中文文件名具体设置步骤,第1张

首先得让你的系统有中语语言包:

设置前可以执行:locale 看一下,如果显示是en_US.UTF-8,即是正常,不用按下面的步骤设置。如果显示其他编码需要按如下步骤设置。

CentOS

编辑/etc/sysconfig/i18n 文件,内容修改为:(可以使用vi、nano或winscp图形管理软件,依个人口味选择)

LANG="en_US.UTF-8"

SYSFONT="latarcyrheb-sun16"

保存,重启系统。

Debian

apt-get install -y locales

dpkg-reconfigure locales

执行dpkg-reconfigure locales后会出现如下对话框:

用向下的方向键找到en_US.UTF-8 UTF-8,按空格选择,再按回车键。

再按向下键选择en_US.UTF-8,再按回车键确认,重启系统。

Ubuntu

编辑/etc/default/locale文件,修改内容为(没有的话创建一个):

LANG="en_US.UTF-8"

LANGUAGE="en_US:en"

保存,再执行:

locale-gen en_US en_US.UTF-8

重启系统。

执行:locale 看一下是否显示是en_US.UTF-8,如果报错,请在本文反馈。按以上步骤设置好后即可支持中文,可以上传中文的文件或中文的目录。

在nginx.conf文件里配置的字符集也是utf-8

server {

listen 80

server_name test.cn

root /data

index index.html index.jsp

charset utf-8

……

ay%PM'G+U0

客户端用的是secureCRT,用的字符集改为utf-8,用uft-8后再用rz上传文件,在ie下中文可以正常显示了。

注意:

如果中文文件名是gb2312的需要转换成utf-8.(注是文件名,不是文件内容)。使用convmv转换,(如果找不到这个命令,光盘中有这个包 convmv-1.10-1.el5.noarch.rpm)convmv -fGBK -tUTF8 -r--notesttarget

其中-f是源编码,-t是目标编码,-r是递归处理目录,–notest是不移动,实际上对文件进行改名(actually do rename the files),target是目标目录。其余参数可以参考man或者-h。

如果是在没有更改编码前上传的文件,设置好后依然会是乱码的,建议重新上传一下文件。如果没有原来文件的备份可以使用下面命令进行转换:for f in `ls *.html` do mv $f `ls $f|iconv -f GBK -t UTF-8`done 。

其中*.html为要转换的文件类型,也可以更换为*.txt,*.rar 主要是看你是什么文件了,里面的GBK为源文件的编码类型,如果不知道源文件的编码类型可以执行:file -bi 文件名 。

如果想在Windows下改的话其实也是可以的Editplus就有批量修改文件编码的功能,其他的软件可能也有此类功能,可以自行研究一下。

如果是目录的话,目前好像是没有办法进行转换。

还有一个问题,如果是html之类的网页文件,如果原来是网页内容是gb2312或类似的非utf-8的编码,先要将网页里面的charset 改为charset=utf-8,再转换文件编码,否则网页还是会乱码的。

convmv 可以从http://j3e.de/linux/convmv 下载,

wget http://j3e.de/linux/convmv/convmv-1.14.tar.gz

tar -zxvf convmv-1.14.tar.gz

cd convmv-1.14

make clean

make install

如:

./convmv -f GB2312 -t UTF-8 -r --nosmart --notest userfiles/*.*

以上表示 userfiles下的所有文件的文件名由GB2312转换为UTF-8

对于文件内容的字符集转换可以使用iconv

LNMP环境的搭建配置(CentOS6.2+nginx1.1.15+mysql5.5+php5.3.10)

一、安装前的准备

1、下载所需要的安装包

Nginx 下载:http://nginx.org/download/nginx-1.1.15.tar.gz

Mysql下载:http://mysql.cs.pu.edu.tw/Downloads/MySQL-5.5/mysql-5.5.21.tar.gz

php下载:http://cn.php.net/distributions/php-5.3.10.tar.gz

2、首先对环境需要的库和编译工具进行安装

yum -y install gcc

gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype

freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2

glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs

e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel

openldap openldap-devel nss_ldap openldap-clients openldap-servers

二、安装过程

1、编译安装Mysql

1) 创建mysql安装目录及数据存放目录 

# mkdir -p/usr/local/mysql/

# mkdir -p /data/mysql/

2)创建用户和用户组与赋予数据存放目录权限

# groupadd mysql

# useradd mysql -M -s/sbin/nologin

# chown mysql.mysql -R /data/mysql/

3)安装必要的组件

# yum -y install cmake

# yum -y installncurses-devel

4)开始编译安装Mysql

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk

-DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1

-DMYSQL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306

# make

# make install

5)初始化数据库

# cd /usr/local/mysql

#

scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql

--datadir=/data/mysql/

6)配置环境

# cpsupport-files/my-medium.cnf /etc/my.cnf

# cpsupport-files/mysql.server /etc/init.d/mysql

# chmod 755/etc/init.d/mysql

# chkconfig mysql on

# exportPATH=/usr/local/mysql/bin:$PATH

7)启动并设置初始密码

# /etc/init.d/mysql start

# mysqladmin -urootpassword '123456'

进行再修改密码的语句

>UPDATE mysql.userSET Password = PASSWORD(‘newpwd’) WHERE User = ‘root’(生新设置密码)

>flush privileges(刷新权限)

2、 编译安装nginx

1) 添加一个不能登录并且没有主目录的用户

# useradd www -M -s /sbin/nologin

2) 下载必要的组件并安装

# wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.21/pcre-8.21.zip

# unzip pcre-8.21.zip

# cd pcre-8.21

# ./configure

# make &&makeinstall

3)下载编译安装nginx

# wgethttp://nginx.org/download/nginx-1.1.15.tar.gz

# tar zxvfnginx-1.1.15.tar.gz

# cd nginx-1.1.15

# ./configure

--prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module

--with-http_ssl_module

# make &&makeinstall

4)启动nginx

#/usr/local/nginx/sbin/nginx

启动后,在浏览器里输入IP,即可查看到:Welcome to nginx!的欢迎界面

# echo"/usr/local/nginx/sbin/nginx" >>/etc/rc.local

4 编译安装php

1) 下载安装必要的组件

wget -chttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

wget

http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz 或者wget

ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

wgethttp://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz

wgethttp://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz

wgethttp://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz

wgethttp://cn.php.net/distributions/php-5.3.10.tar.gz

wget http://pear.php.net/go-pear.phar

# yum -y installlibjpeg-devel libpng-devel

# tar zxvf libiconv-1.14.tar.gz

# cd libiconv-1.14

# ./configure

# make

# make install

# tar -zxvflibmcrypt-2.5.8.tar.gz

# cd libmcrypt-2.5.8

# ./configure

# make

# make install

# /sbin/ldconfig

# cd libltdl/

# ./configure--enable-ltdl-install

# make

# make install

# cd ../../

# tar zxvfmhash-0.9.9.9.tar.gz

# cd mhash-0.9.9.9

# ./configure

# make

# make install

# cd ../

ln -s/usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la

ln -s/usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so

ln -s/usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4

ln -s/usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8

ln -s/usr/local/lib/libmhash.a /usr/lib/libmhash.a

ln -s/usr/local/lib/libmhash.la /usr/lib/libmhash.la

ln -s/usr/local/lib/libmhash.so /usr/lib/libmhash.so

ln -s/usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2

ln -s /usr/local/lib/libmhash.so.2.0.1/usr/lib/libmhash.so.2.0.1

ln -s/usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config

# tar zxvfmcrypt-2.6.8.tar.gz

# cd mcrypt-2.6.8

# /sbin/ldconfig

#./configure

# make

# make install

# cd ../

2)编译安装php

# tar zxvfphp-5.3.10.tar.gz

# cd php-5.3.10

# ./configure

--prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc

--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config

--with-iconv-dir=/usr/local/lib --with-freetype-dir --with-jpeg-dir

--with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml

--disable-rpath --enable-safe-mode

--enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization

--with-curl --with-curlwrappers --enable-mbregex --enable-fpm

--enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf

--with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap

--with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --without-pear

--with-fpm-user=www --with-fpm-group=www

# makeZEND_EXTRA_LIBS='-liconv'

# make install

3) 复制和修改php配置文件

# cp php.ini-production

/usr/local/php/lib/php.ini 或是

/usr/local/lib/php.ini

# cp/usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

# /usr/local/php/bin/php--ini //测试ini文件是否加载

注:Nginx+PHP整合,在安装时必须启用–enable-fastcgi 和 –enable-fpm

5 环境测试,写一个phpinfo文件测试一下

Nginx服务器默认是没有支持字体的mime-type设置的,并且对.eot文件的mime-type也是不正确的。在配置文件夹下找到mime-type设置的地方。通常,在mimes.types文件下。

搜索.eot,并在下它的设置下添加下面几行:

application/font-sfntotf ttf

application/font-woffwoff

application/font-woff2 woff2

application/vnd.ms-fontobjecteot

对于CORS headers 信息设置,添加下面的几行到你的vhost配置中:

location ~* \.(eot|otf|ttf|woff|woff2)$ {

add_header Access-Control-Allow-Origin *

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11219482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存