Проблема при загрузке файла.

programmer_2006

Новичок
Проблема при загрузке файла.

Использую зф, для загрузки файлов на сервер, версия либы последняя. Локально под виндой все работает.
На серваке линукс + nginx столкнулся с траблой, что независимо от настроек пхп у nginx свои ограничения на передаваемые данны в том числе и на файлы. Этот момент побороли. Но появилась новая трабла, файлы маленького размера до метра загружаются без проблем, файлы более 1.5 не грузятся.
Начал копатся. Просмотрел через дамп массив $_FILES и получил такой результат:
PHP:
array(1) {
  ["file"] => array(5) {
    ["name"] => string(22) "xtheme-gray-extend.zip"
    ["type"] => string(15) "application/zip"
    ["tmp_name"] => string(14) "/tmp/phpMdCQE0"
    ["error"] => int(0)
    ["size"] => int(127942)
  }
}
array(1) {
  ["file"] => array(5) {
    ["name"] => string(8) "Temp.rar"
    ["type"] => string(0) ""
    ["tmp_name"] => string(0) ""
    ["error"] => int(7)
    ["size"] => int(0)
  }
}
Первый файл маленький, второй большой. Как видим второй файл не загрузился во временую директорию на серваке. Админ разводит руками, типа в коде дело, но как видно из дампа не в коде дело. Ради эксперимента решил залить файл по старинке используя move_uploaded_file результат тот же.

Может кто сталкивался с похожей трабой на линуксе или nginx, мне кажется что там дело.

Заранее спасибо за советы.
 

HEm

Сетевой бобер
какого размера второй файл? попробуй выявить границу
 

Фанат

oncle terrible
Команда форума
И больше ничего ты во втором массиве не увидел?
 

DiMA

php.spb.ru
Команда форума
> но как видно из дампа не в коде дело

ага, дело в дампе, которое ты НЕ видишь :)
 

programmer_2006

Новичок
Автор оригинала: HEm
какого размера второй файл? попробуй выявить границу
Второй файл весит 1.8 М, поэтому я и написал, что примерная граница 1.5 М

-~{}~ 18.02.09 11:16:

Автор оригинала: *****
И больше ничего ты во втором массиве не увидел?
Ошибка №7 которая гласит "Файл не может быть записан"

Но из-за чего она выскакивает не понятно, ведь более меньшие файлы пишутся, разрешения везде стоят, ограничения по размеру загружаемых файлов, а так же пост данных установлены в 15 М, время работы скрипта установлено в 300 сек. Т.е. все, что можно прописано.

-~{}~ 18.02.09 11:17:

Автор оригинала: DiMA
> но как видно из дампа не в коде дело

ага, дело в дампе, которое ты НЕ видишь :)
А к чему тут сорказм? Есть ,что сказать говори, нет молчи. Если видишь ошибку сообщи буду благодарен. На эту проблему убил уже много времени.
 

Yaponchick

Новичок
А ты думаешь, чтобы писать на пхп, достаточно знать язык и не знать операционную систему?
---
@Фа
Может стоит уже создать новое правило, а-ля: "Если ты незнаешь что такое ls -la, dir /b /r, Permission denied - забей на пхп, купи самоучитель Windows/Unix & etc." ?
 

DiMA

php.spb.ru
Команда форума
> А к чему тут сорказм? Есть ,что сказать говори, нет молчи.

"сарказм"
"есть что сказать - говори, нет - молчи"

Если бы ты видил ошибку, вопрос был бы таким: при загрузке такая-то неустранимая апшибка. MAX_FILE_SIZE пробовал задать? Хотя, ошибка не эта.

Откуда взял расшифровку кода 7? Что-то я не вижу в доке расшифровки.

И покажи phpinfo().
 

programmer_2006

Новичок
Автор оригинала: DiMA
> А к чему тут сорказм? Есть ,что сказать говори, нет молчи.

"сарказм"
"есть что сказать - говори, нет - молчи"

Если бы ты видил ошибку, вопрос был бы таким: при загрузке такая-то неустранимая апшибка. MAX_FILE_SIZE пробовал задать? Хотя, ошибка не эта.

Откуда взял расшифровку кода 7? Что-то я не вижу в доке расшифровки.

И покажи phpinfo().
Я не писал про ошибку № 7 так как она не имеет отношения к скрипту выполняющему загрузку. Хотя опять же упамянул об этом
не загрузился во временую директорию на серваке
Где брал расшифровки ошибок уже не помню, где то в мане. Искать сейчас времени нет но, когда находил выписал их себе

PHP:
    const INI_SIZE   = 'iniSize';     // Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini
    const FORM_SIZE  = 'formSize';   // Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form. 
    const PARTIAL    = 'partial';      // Value: 3; The uploaded file was only partially uploaded. 
    const NO_FILE    = 'noFile';       // Value: 4; No file was uploaded. 
    const NO_TMP_DIR = 'noTmpDir';  // Value: 6; Missing a temporary folder.
    const CANT_WRITE = 'cantWrite'; // Value: 7; Failed to write file to disk.
    const EXTENSION  = 'extension';  // Value: 8; File upload stopped by extension. Introduced in PHP 5.2.0. 
    const ERROR      = 'error';          // General error for future proofing against new PHP versions
Так же зенд фрэймверк выдает расшифровку ошибок, все точно.

allow_call_time_pass_reference On On
allow_url_fopen On On
allow_url_include Off Off
always_populate_raw_post_data Off Off
arg_separator.input & &
arg_separator.output & &
asp_tags Off Off
auto_append_file no value no value
auto_globals_jit On On
auto_prepend_file no value no value
browscap no value no value
default_charset no value no value
default_mimetype text/html text/html
define_syslog_variables Off Off
disable_classes no value no value
disable_functions no value no value
display_errors On On
display_startup_errors Off Off
doc_root no value no value
docref_ext no value no value
docref_root no value no value
enable_dl Off Off
error_append_string no value no value
error_log /var/log/apache2/php.log /var/log/apache2/php.log
error_prepend_string no value no value
error_reporting 6135 6135
expose_php On On
extension_dir /usr/lib/php5/20060613+lfs /usr/lib/php5/20060613+lfs
file_uploads On On
highlight.bg #FFFFFF #FFFFFF
highlight.comment #FF8000 #FF8000
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000
html_errors On On
ignore_repeated_errors Off Off
ignore_repeated_source Off Off
ignore_user_abort Off Off
implicit_flush On On
include_path .:/usr/share/php:/usr/share/pear .:/usr/share/php:/usr/share/pear
log_errors On On
log_errors_max_len 1024 1024
magic_quotes_gpc Off On
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
mail.force_extra_parameters no value no value
max_execution_time 90 30
max_input_nesting_level 64 64
max_input_time 60 60
memory_limit 128M 16M
open_basedir no value no value
output_buffering no value no value
output_handler no value no value
post_max_size 20M 8M
precision 12 12
realpath_cache_size 16K 16K
realpath_cache_ttl 120 120
register_argc_argv On On
register_globals Off Off
register_long_arrays On On
report_memleaks On On
report_zend_debug On On
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
safe_mode_include_dir no value no value
sendmail_from no value no value
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
serialize_precision 100 100
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
suhosin.log.phpscript 0 0
suhosin.log.phpscript.is_safe Off Off
suhosin.log.phpscript.name no value no value
suhosin.log.sapi no value no value
suhosin.log.script no value no value
suhosin.log.script.name no value no value
suhosin.log.syslog no value no value
suhosin.log.syslog.facility no value no value
suhosin.log.syslog.priority no value no value
suhosin.log.use-x-forwarded-for Off Off
track_errors Off Off
unserialize_callback_func no value no value
upload_max_filesize 20M 2M
upload_tmp_dir no value no value
user_dir no value no value
variables_order EGPCS EGPCS
xmlrpc_error_number 0 0
xmlrpc_errors Off Off
y2k_compliance On On
zend.ze1_compatibility_mode Off Off
-~{}~ 18.02.09 15:48:

Автор оригинала: Pestilence
А ты думаешь, чтобы писать на пхп, достаточно знать язык и не знать операционную систему?
---
@Фа
Может стоит уже создать новое правило, а-ля: "Если ты незнаешь что такое ls -la, dir /b /r, Permission denied - забей на пхп, купи самоучитель Windows/Unix & etc." ?
Я не сис админ, я не обязан знать линукса. Вот ты знаешь линукс, так почему мой код не пашет? Или нечего сказать?
 

DiMA

php.spb.ru
Команда форума
поставь аплоп, пост и мемори лимиты в 1Gb

залей файл из своего же отдельного пхп-скрипта.. или там через прокси посмотри на трафик и выложи заголовки передачи (твоего и сервера)

логи от аплода веб-сервера приведи
 

Активист

Активист
Команда форума
Может места на разделе нет?
Права на временную директорию?
Suhosin патч?
 

programmer_2006

Новичок
Автор оригинала: DiMA
поставь аплоп, пост и мемори лимиты в 1Gb

залей файл из своего же отдельного пхп-скрипта.. или там через прокси посмотри на трафик и выложи заголовки передачи (твоего и сервера)

логи от аплода веб-сервера приведи
с логами проблема, так как доступа на сервак у меня нет, а админ сейчас занят.

-~{}~ 18.02.09 16:56:

Автор оригинала: Активист
Может места на разделе нет?
Права на временную директорию?
Suhosin патч?
Похоже на истину, но тогда почему мелкие файлы грузятся...

-~{}~ 20.02.09 10:49:

Нашли в чем трабла. До этого у нас был глюк со свободным местом на диске. Место осободили но трабла где то осталось. Убунту при старте видил, что места мало и создавал папку tmp размером 1М в памяти. Из-за этого файлы более 1М не грузились и начались бока с БД.
 
Сверху