Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: RedIce в Jun 08, 2006, 17:52



Титла: Apache and large file support
Публикувано от: RedIce в 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ГБ на други сървари, въпросът е как?


Титла: Apache and large file support
Публикувано от: nothing в Jun 08, 2006, 18:10
Виж тук
Май имах същия проблем.


Титла: Apache and large file support
Публикувано от: RedIce в Jun 08, 2006, 18:47
а дали има вратички  без прекомпилиране...

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

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





Титла: Apache and large file support
Публикувано от: в 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, на практика при сегашните обеми данни няма да имаш лимити :)

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

Та това е връзката с процесора :)


Титла: Apache and large file support
Публикувано от: Hapkoc в Jun 09, 2006, 10:50
Е не е ли обратно? Т.е. като е signed е 2GB, като е unsigned е 4?


Титла: Apache and large file support
Публикувано от: в Jun 09, 2006, 11:13
Логическа грешка заради двойното отрицание :)

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
Публикувано от: в Jun 09, 2006, 11:36
Тази тема нещо тръгва в друга посока ...

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