• 禅道上传文件失败的解决方法


    今天在使用禅道上传文件的时候发现了一个问题,我可以上传几十k的文件,但是上传不了大几M的文件,当文件过大的时候,一直卡在哪里,上传不了(使用的是开源版9.8.1)。

    在官方文档中可以看到需要调整php.ini 中的 post_max_size 和 upload_max_filesize值,然后重启apache即可生效:

    #cd /opt/zbox/etc/php
    #vim php.ini
    ...........
    register_argc_argv = Off
    auto_globals_jit = On
    post_max_size = 50M
    magic_quotes_gpc = Off
    magic_quotes_runtime = Off
    magic_quotes_sybase = Off
    ............
    file_uploads = On
    upload_tmp_dir = "/opt/zbox/tmp/"
    upload_max_filesize = 50M
    allow_url_fopen = On
    allow_url_include = Off
    default_socket_timeout = 60
    ............

    进去之后看到我的是50M,说明不是空间的问题,接着从百度看到需要修改my.php中的$config->debug 参数,将false修改为true:

    #cd /opt/zbox/app/zentao/config
    #vim my.php
    <?php
    $config->installed       = true;
    $config->debug           = true;
    $config->requestType     = 'PATH_INFO';
    $config->db->host        = '127.0.0.1';
    $config->db->port        = '3307';
    $config->db->name        = 'zentao';
    $config->db->user        = 'root';
    $config->db->password    = '123456';
    $config->db->prefix      = 'zt_';
    $config->webRoot         = getWebRoot();
    $config->default->lang   = 'zh-cn';

    重启之后再次提交,发现还是上传不了大文件,无奈,查看禅道的日志,发现里面有下面这样的报错:

    16:02:30 ERROR: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) in /opt/zbox/app/zentaobiz/framework/base/router.class.php on line 2145, last called by /opt/zbox/app/zentaobiz/framework/base/router.class.php on line 2103 through function connectByPDO.
     in /opt/zbox/app/zentaobiz/framework/base/router.class.php on line 2196 when visiting 

    看日志似乎是权限的问题,这时候我就在想如果权限不对,为什么小文件就可以上传,而大文件不行,显然不对,接着在排查,突然想到是不是又是nginx代理的问题,又动手查看nginx的配置文件,在配置禅道代理的地方加入一行client_max_body_size 1024M;

    #vim nginx.conf
    worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name xx.xxxx.com; location / { client_max_body_size 1024M; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://192.168.3.175:81; } }

    接着重启nginx,然后进入禅道上传大文件,哇,成功上传!

  • 相关阅读:
    Java学习日报8..4
    Java学习日报8.3
    Java学习日报8.2
    Java学习日报7.31
    Java学习日报7.30
    Java学习日报7.29
    [标签] Java学习日报7.28
    Java学习日报7.27
    停更
    MG51--day5 I AM BACK/流水灯/数码管动态显示
  • 原文地址:https://www.cnblogs.com/heyongboke/p/8946988.html
Copyright © 2020-2023  润新知