UPLOAD_ERR_CANT_WRITE Но другие файлы загружаются

Я сталкиваюсь с довольно странным поведением на моем сервере.

Я могу загрузить любые файлы размером менее 1 МБ без проблем, но те, которые больше, возвращают мне ошибку UPLOAD_ERR_CANT_WRITE == 7.

В папке tmp/есть разрешения, так как я могу загрузить другие файлы.

Конфигурация моего PHP.INI кажется прекрасной, я загружал файлы размером более 1 МБ, используя phpmyadmin раньше, и это сработало.

PHP.INI

  • file_uploads Включено
  • post_max_size 200M
  • max_execution_time 30
  • memory_limit 128M
  • max_file_uploads 20
  • upload_max_filesize 200M
  • upload_tmp_dir/tmp

Там что-то мне не хватает? на моей локальной машине отлично работает та же конфигурация: S

Я использую сервер ubuntu 13.04 PHP 5.4.9 и Apache 2.2.22

Конечно, это самая глупая вещь, и я потратил 2 часа на это, я уже проверил множество документов на php.net, но не повезло. Любая помощь более чем приветствуется.

Спасибо!!!

ОБНОВЛЕНИЕ 10-01-2014: Мне все равно не удастся это исправить.

Ответ 1

Благодаря всем вашим ответам я обнаружил ошибку.

Сервер - это установка Ubuntu, выполняемая установщиком OVH. Я не знал, что они будут создавать разделы таким образом:

  • Размер файловой системы Используется Использовать% Установлено на
  • переполнение 1.0M 136K 888K 14%/tmp
  • /dev/md2 1.8T 13G 1.7T 1%/home

Итак, что я сделал, измените в php.ini файл upload_tmp_dir в другую папку с пробелом...

Ужасно Я потратил столько времени, я никогда не думал, что это проблема пространства, так как в HD у меня 2 ТБ!

Еще раз спасибо и надеюсь, что это может сработать кому-то еще.

Ответ 2

Удалите или переместите все файлы из /tmp и отключите устройство, чтобы он использовал обычный раздел для /tmp.

 mkdir /usr/tmp
 mv /tmp/* /usr/tmp
 sudo umount -l /tmp
 mv /usr/tmp/* /tmp

Ответ 3

Вероятно, это связано с вашей конфигурацией memory_limit. Попробуйте заменить на 256M. Если он работает, вы должны просмотреть свой код, чтобы уменьшить использование памяти.

Если это связано с вашей настройкой разрешений, вы увидите:

ls -la /yourUploadDirectory

Вы должны увидеть что-то вроде:

drwxr-xr-x 65 user group     4096 nov 13 09:47 .
drwxr-xr-x  3 user   group       4096 ago  7 18:09 ..

group каталога . (первая строка) должен быть www-data. Если это не так:

chown yourUser:www-data /yourUploadDirectory

Также drwxr-xr-x должен быть drwxrwxr-x. Если это не так:

chmod 0775 /yourUploadDirectory

Теперь вы можете загрузить.