VPS侦探论坛

 找回密码
 注册
查看: 6584|回复: 0

[总结] 解决php上传大附件的问题--Php、MySQL、Bugfree

[复制链接]
发表于 2011-10-11 13:38:58 | 显示全部楼层 |阅读模式

解决php上传大附件的问题--Php、MySQL、Bugfree



部门bug系统采用 bugfree 2.1.3 版本,由于新建bug指向时,不能上传大附件,需要进行解决一下。



1.修改bugfree的配置


在bugfree的配置文件中:bugfree目录的Include中的文件:Config.inc.php中找到

$_CFG['File']['MaxFileSize']
= 1024 * 1000
这个参数,

设置到10240 * 1000;(即10M)


在bugfree的页面中,已经显示可以上传10M附件了,但是上传大文件失败;





2. 解决MySQL的大文件问题


原来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文件,也是后面错误的关键)



  


  
  
设 置
  
  


  
  
file_uploads
  
  
on
  
  是否允许通过HTTP上传文件的开关。默认为ON即是开

  
  
upload_tmp_dir
  
  
--
  
  文件上传至服务器上存储临时文件的地方;

  必须注释掉前面的  ; 号,然后给个合法路径

  
  
upload_max_filesize
  
  
300m
  
  即允许上传文件大小的最大值。默认为2M
  
  
post_max_size
  
  
300m
  
  指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
  


一般地,设置好上述四个参数后,在网络正常的情况下,上传<=8M的文件是不成问题;但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得继续设置下面的参数

  


  
  
设置
  
  


  
  
max_execution_time
  
  
600
  
  每个PHP页面运行的最大时间值(秒),默认30秒

  
  
max_input_time
  
  
600
  
  每个PHP页面接收数据所需的最大时间,默认60秒

  
  
memory_limit
  
  
8m
  
  每个PHP页面所吃掉的最大内存,默认8M
  


修改后(上述表格中的8M,在我这里都设置成20M),重启apache,但是还是不行。

发现结果可能的是:系统中,apache根本没有载入读取到这个php.ini

如何显示到底读取那个php.ini?当前php的maxfile配置是多少?还好知道有一个phpinfo,写一个php页面:非常简单就只有:

<?php echophpinfo(); ?>
把php的所有信息都打印出来。

检查:果然max_filesize只有1M,php.ini读的也不是/etc下的。按照phpinfo中显示的php.ini的目录位置,把php.ini文件复制过去,重启apache,问题解决了。

还有一种方法,在apache中指定php的配置文件

  在Apache中改变php.ini的路径的方法如下:

  打开httpd.conf,

  找到LoadModule php5_module "E:/apm/php-5.2.11-win32/php5apache2_2.dll"  在其下面增加多一行代码:

  PHPIniDir  "E:/apm/php-5.2.11-win32/php.ini"
  即php.ini所在的文件夹; (APMServ 安装在win 2003 情况下

  保存,重启Apache即开始生效。

  

  


经验总结:


修改php参数的时候,花费了最多的时间。
问题在于:前2步修改后,对修改的效果做了校验,确信修改的参数发生了效果,
但是最后修改php的时候,没有做这一步,浪费了大量的时间。



另外需要注意的是:

Bugfree上传附件 图片的实体路径:

\bugfree\BugFile\Project2\日期

请保证该路径下 有足够的用户权限 能写入、上传、创建文件

===========================================================================================

自己工作中的一些经验~~~和大家一起分享!

感谢支持
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-12-23 10:29 , Processed in 0.025504 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表