php上传不到文件,Linux 服务器

服务器从2010-12月一直运行到2011-4-7日,可以上传图片

但今天发现突然就上传不到文件了php.ini的配置已经是.

环境:linux(Centos 5.3) + Apache + php +mysql

网站目录文件:使用smb挂载 windows 服务器的磁盘阵列共享

网站目录权限:777

php.ini :

-----------------------------------------------------

upload_max_filesize = 200M

max_file_uploads = 20

post_max_size = 200M

max_execution_time = 60000

max_input_time = 6000

;max_input_nesting_level = 64

memory_limit = 256M

------------------------------------------------------

可CMS系统一直提示说没有足够的权限,查阅相关资料得知php.ini文件中有一个指定临时文件夹的参数(会把所有上传的文件都放到临时文件夹里面)

即:

-----------------------------------------------------

;upload_tmp_dir =

-----------------------------------------------------

上面默认是注释的,即会使用虚拟内存来做存储

当内存使用满了就会出现上传不到文件的问题了,也就是会提示777错误

使用df - h 命令查询 发现结果如下:

--------------------------------------------------------------------------------------

/dev/mapper/VolGroup00-LogVol00

29G 28G 0 100% /

/dev/sda1 99M 12M 82M 13% /boot

tmpfs 1014M 0 1014M 0% /dev/shm

//192.168.1.100/website 322G 21G 301G 7% /www/web/website

----------------------------------------------------------------------------------------

tmpfs已经满了,所以我把改成在mount的目录里面建立了个upload_tmp文件夹,把刚才的“upload_tmp_dir = ”设置成 “upload_tmp_dir =/www/web/website/upload_tmp

保存后重启了一下apache,恢复上传了.

注意:要给上传的目录 777权限 包括下面的子目录 chmod -R 777 目录名

总结:

临时文件最好是还是设置成挂载的磁盘空间(最好大一点),因为tmpfs默认值会是物理内存的1/2倍,上传几个文件很快就会满了,这样会引起文件上传不了,所以配置各种网站环境的时候 应该注意临时文件存放的目录