Автор Тема: Apache and large file support  (Прочетена 2480 пъти)

RedIce

  • Напреднали
  • *****
  • Публикации: 162
    • Профил
Apache and large file support
« -: Jun 08, 2006, 17:52 »
Ползвам:
Slackware 10.2
kernel: 2.6.15.4
apache: 1.3.34

Доста се порових в гогъла,но решение не открих, проблемът е като кача фаилове по големи от 2GB на апачето и няма достъп до тях.

дава следното съобщение:

Примерен код
You don't have permission to access FILENAME on this server.


a в error loga е следното положение:
Примерен код
(75)Value too large for defined data type: access to FILENAME failed


Решение знам че има, понеже съм виждал фаилове от по 4ГБ на други сървари, въпросът е как?
Активен

nothing

  • Напреднали
  • *****
  • Публикации: 26
    • Профил
Apache and large file support
« Отговор #1 -: Jun 08, 2006, 18:10 »
Виж тук
Май имах същия проблем.
Активен

Dig for gold
Dig for fame
You dig to make your name

RedIce

  • Напреднали
  • *****
  • Публикации: 162
    • Профил
Apache and large file support
« Отговор #2 -: Jun 08, 2006, 18:47 »
а дали има вратички  без прекомпилиране...

гледам отговора на темата, в линка който си пратил, и там ставаше дума нещо за процесори... '<img'>
какво общо има това с CPU-ро...
понеже сърварчето ми е на една щайга с CELERON на 400 (испържен на 450) и работи близо 3 год нонстоп, като са правени чат пат някои ъпдеитчета....

не ме претиснява толкова самото прекомпилиране, колкото тези врътки сър процесорите, някак си не виждам логиката....



Активен

  • Гост
Apache and large file support
« Отговор #3 -: Jun 09, 2006, 10:39 »
Ъъъм на 32 битови архитектури типа long е 32 бита=4 байта.

2^32= 4294967296.
Очевидно програмистите държат големината на файла в променлива, която не е unsigned => 2^31= 2147483648 (което май указва точно 2 гигабайта)
Ако не беше unsigned вероятно максималния размер на файла щеше да е 4ГБ.

При 64 битови архитектури типа long е 64 бита=8 байта.
2^64=1.84е+19, на практика при сегашните обеми данни няма да имаш лимити '<img'>

Всъщност нещата стоят малко по-усложнено и едва ли някъде в сорс-а на апача има нещо от сорта на "long filesize", вероятно се ползва size_t, с който тип нещата са по-усложнени, но в основата си стоят по-същия начин.

Та това е връзката с процесора '<img'>
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Apache and large file support
« Отговор #4 -: Jun 09, 2006, 10:50 »
Е не е ли обратно? Т.е. като е signed е 2GB, като е unsigned е 4?
Активен

  • Гост
Apache and large file support
« Отговор #5 -: Jun 09, 2006, 11:13 »
Логическа грешка заради двойното отрицание '<img'>

unsigned - един бит повече
signed - един бит указва знака (+/-) => възможните стойности са два пъти по-малко.

size_t - пълна каша, по принцип е декларирано в sys/types.h, обаче там се include-ва bits/types.h, там доколкото знам с #ifdef в зависимост от архитектурата се include-ват разни хедъри от сорса на ядрото.

Нещо интересно, което съм забелязал е че на 64-битови архитектури (поне моето АМД64) sizeof(int) дава че е 4 байта, както и на i386, a би трябвало да са 8. Това бих искал някой дето знае повече да ми го обясни?
Активен

  • Гост
Apache and large file support
« Отговор #6 -: Jun 09, 2006, 11:36 »
Тази тема нещо тръгва в друга посока ...

Първото ми попаднало обяснение за "large file support" , което обяснава защо са флаговете посочени във второто съобщение е : http://www.suse.de/~aj/linux_lfs.html
Активен