部门bug系统采用bugfree,由于不能上传大附件,需要解决一下。 1.修改bugfree的配置: 在bugfree的配置文件中:bugfree目录的Include中的文件:Config.inc.php中找到 $_CFG['File']['MaxFileSize'] 这个参数,设置到10M 在bugfree的页面中,已经显示可以上传10M附件了,但是上传大文件失败; 2. 解决MySQL的大文件问题: (http://dev./doc/refman/5.1/zh/problems.html#packet-too-large http://blog.csdn.net/wangpingpaul/archive/2009/04/15/4075568.aspx ) 原来以为bugfree的所有内容都放在MySQL中,首先从MySQL着手。 MySQL要设定最大packet的大小(缺省为1M),设定方式为: 在/etc/my.cnf中,添加: set-variable=max_allowed_packet=16M,重启MySQL 进入到MySQL,输入命令: show variables; 找到:max_allowed_packet 这一行,值为:16777216,生效了。 但是Bugfree还是无法上传2M多的文件 3.可能是Php的问题: 按照网上的说法,php的上传,也有限制大小的问题。 修改php.ini的修改方法修改配置(都是网上抄的,都差不多),修改/etc/php.ini (系统中只找到这个php.ini文件,也是后面错误的关键) (http://www./course/4_webprogram/php/phpjs/20090307/159333.html# http://www.w3school.com.cn/php/php_file_upload.asp http://www./html/97/14397-4443.html )
修改后(上述表格中的8M,在我这里都设置成20M) ,重启apache,但是还是不行。 把bugfree的源码也看了半天(php自己从来么有学过,只能现学现卖),编写了一些php代码,发现问题: php文件上传,还有错误标识,把错误表示打出来:
发现结果是1,说明刚才修改的php.ini没有发生效果。可能的原因有2点 1. 修改错了 2. 根本没有读到这个php.ini 第二种可能性比较大。 首先排除第一种可能性了。如何显示到底读取那个php.ini?当前php的maxfile配置是多少? 还好知道有一个phpinfo,自己写了一个php页面:非常简单就只有: <?php echo phpinfo(); ?> 把php的所有信息都打印出来。 检查:果然maxfilesize只有1M,php.ini读的也不是/etc下的。 按照phpinfo中显示的php.ini的目录位置,把php.ini文件复制过去,重启apache,问题解决了。 还有一种方法,在apache中指定php的配置文件:
总结: 修改php参数的时候,花费了最多的时间。问题在于:前2步修改后,对修改的效果做了校验,确信修改的参数发生了效果,但是最后修改php的时候,没有做这一步,浪费了大量的时间。 |
|