work4seo 发表于 2016-3-3 15:30:46

lnmp1.2版本安装GBK版本的discuz X3.2乱码

PHP版本:PHP 5.6.9 (cli) (built: Mar1 2016 12:06:49)
MySQL版本:mysqlVer 14.14 Distrib 5.5.42, for Linux (x86_64) using readline 5.1
nginx版本:nginx version: nginx/1.8.0
discuz版本:简体中文GBK(Discuz_X3.2_SC_GBK.zip)
OS:CentOS release 6.5 (Final)

程序上传方式:
wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip
unzip Discuz_X3.2_SC_GBK.zip

浏览器:IE11(自动编码)、Chrome 50.0.2652.2、firefox 42,全部都是自动编码,默认UTF8
浏览器均没有判断正确。

通过抓包发现是因为在response header里面通通返回了content-type:UTF-8

nginx配置文件:userwww www;

worker_processes auto;

error_log/home/wwwlogs/nginx_error.logcrit;

pid      /usr/local/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
    {
      use epoll;
      worker_connections 51200;
      multi_accept on;
    }

http
    {
      include       mime.types;
      default_typeapplication/octet-stream;

      server_names_hash_bucket_size 128;
      client_header_buffer_size 32k;
      large_client_header_buffers 4 32k;
      client_max_body_size 50m;

      sendfile   on;
      tcp_nopush on;

      keepalive_timeout 60;

      tcp_nodelay on;

      fastcgi_connect_timeout 300;
      fastcgi_send_timeout 300;
      fastcgi_read_timeout 300;
      fastcgi_buffer_size 64k;
      fastcgi_buffers 4 64k;
      fastcgi_busy_buffers_size 128k;
      fastcgi_temp_file_write_size 256k;

      gzip on;
      gzip_min_length1k;
      gzip_buffers   4 16k;
      gzip_http_version 1.1;
      gzip_comp_level 2;
      gzip_types   text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
      gzip_vary on;
      gzip_proxied   expired no-cache no-store private auth;
      gzip_disable   "MSIE \.";

      #limit_conn_zone $binary_remote_addr zone=perip:10m;
      ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.

      server_tokens off;
      #log format
      log_formataccess'$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
                access_log off;

server
    {
      listen 80 default_server;
      #listen [::]:80 default_server ipv6only=on;
      server_name www.lnmp.org;
      index index.html index.htm index.php;
      root/home/wwwroot/default;

      charset gbk;
      
      #error_page   404   /404.html;
      include enable-php.conf;

      location /nginx_status
      {
            stub_status on;
            access_log   off;
      }

      location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
      {
            expires      30d;
      }

      location ~ .*\.(js|css)?$
      {
            expires      12h;
      }

      location ~ /\.
      {
            deny all;
      }

      access_log/home/wwwlogs/access.logaccess;
    }
include vhost/*.conf;
}即使设置了GBK字符集(也试过了设置gb2312字符集),在response header里面通通返回content_type:utf-8
修改过conf文件之后,均重启过nginx+重启过系统,但毫无作用

除了nginx的配置文件外,其他全部都是lnmp1.2的默认配置,没有做过任何修改。

难道lnmp不支持gbk程序?

[ 本帖最后由 work4seo 于 2016-3-3 15:41 编辑 ]

licess 发表于 2016-3-3 20:52:16

直接charset gbk; 就行,我这边测试也没有问题
# curl -IL 69.163.35.abc
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 03 Mar 2016 10:51:06 GMT
Content-Type: text/html; charset=gbk
Content-Length: 2502
Last-Modified: Wed, 02 Mar 2016 02:18:16 GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: "56d64d68-9c6"
Accept-Ranges: bytes

你建站是建站默认虚拟主机目录吗?
如果不是建在默认虚拟主机目录,你改默认虚拟主机的配置是不影响其他虚拟主机的

work4seo 发表于 2016-3-7 11:25:54

回复 2# 的帖子

我已经快崩溃了,已经好几天了,这个诡异的问题还是没有搞定
默认目录(未添加虚拟主机的情况下)
周日的时候试着添加了虚拟主机,在虚拟主机目录下,修改了vhost目录下对应的配置文件
通通都是乱码。
因为数据库的问题,限定了只能用GBK的DZ版本

id886 发表于 2016-3-7 13:27:46

没关系,,,也就在你安装的时候会显示乱码,   你自己手动改一下为gbk编码安装就成了,   
安装后就正常显示的.因为安装php页面没有做强制编码,   安装后论坛配制里是强制GBK编码的..      
这个不影响你论坛的正常运行.

如果实在纠结这个,,,那你就强制把php.ini 里的默认编码改为bgk就成了

sed -i 's/default_charset = \"UTF-8\"/default_charset = \"gbk\"/g' /usr/local/php/etc/php.ini
/etc/init.d/php-fpm restart

如果你的程序都是GBK程序还好,,要是还有Utf-8程序,,那也会出现乱码,编码不能正常识别.

东方优源 发表于 2019-2-2 22:47:52

我跟楼主一样问题,解决办法是:修改/usr/local/php/etc/php.ini文件 default_charset = ""
我们这里也不要写GBK编码,你写了后这台服务器如果安装UTF-8编码程序有又有问题,所以我们都不写,让自动默认。
页: [1]
查看完整版本: lnmp1.2版本安装GBK版本的discuz X3.2乱码