PDA

Просмотр полной версии : кто умеет настраивать Апач?



Geser
19.01.2007, 19:03
Короче на том серваке где форум. Большие файл закачиваться не хотят хоть убей
php.ini
upload_max_filesize = 20M
max_execution_time = 300
max_input_time = 600
Обе переменные конкретно в скрипте устанавливаются на 1800
httpd.conf
Timeout 3000

не помогает. Какие идеи?

pig
19.01.2007, 19:30
А сам Апач вкупе с PHP по поводу сорвавшихся закачек что-нибудь говорят?

Geser
19.01.2007, 20:21
А где смотреть?

pig
19.01.2007, 20:59
Ну есть же у них где-то логи. У Апача так точно должны быть. Ошибки, которые регистрирует PHP (если сбой уже при выполнении скрипта или инициализации), пишутся в журнал ошибок сервера (так написано в комментариях к дефолтному php.ini).

sergey_gum
20.01.2007, 04:23
upload_max_filesize = 20M
Это значение менялось?

ALEX(XX)
20.01.2007, 09:09
А где смотреть?
Я конечно могу ошибаться, в Линухах я не гуру, но попробуй посмотреть var/log/httpd

Синауридзе Александр
20.01.2007, 09:48
Я конечно могу ошибаться, в Линухах я не гуру, но попробуй посмотреть var/log/httpd
Нет это не здесь.:) Если httpd.conf в apache/conf то должно быть и apache/log там и надо смотреть.

ALEX(XX)
20.01.2007, 10:27
Нет это не здесь.:) Если httpd.conf в apache/conf то должно быть и apache/log там и надо смотреть.
По крайней мере у меня логи живут там. :)

Geser
20.01.2007, 11:24
Это значение менялось?

Менялось. Было 2М исправил на 20М. Проблема не решилась.

Geser
20.01.2007, 11:30
Ну есть же у них где-то логи. У Апача так точно должны быть. Ошибки, которые регистрирует PHP (если сбой уже при выполнении скрипта или инициализации), пишутся в журнал ошибок сервера (так написано в комментариях к дефолтному php.ini).

О. нашел ошибку.


[Fri Jan 19 09:22:54 2007] [error] [client 85.250.19.122] mod_security: Access denied with code 403. Error processing request body: Multipart: final boundary missing [severity "EMERGENCY"] [hostname "virusinfo.info"] [uri "/index.php?page=upload_clean"]

Что бы это значило?

anton_dr
20.01.2007, 11:45
Отключить его нафик :) который мод секьюрити. Его обычно включают, так как через него ломают частенько. У меня на сайте тоже скриптики не работали, пока он был включен.
Цитата моего хостера

я mod_security отключил, он вмешивался, видать был вызов удаленного урл, так обычно сайты ломают

Geser
20.01.2007, 15:27
Дубовый мод. Замучался с ним :( Не уверен что его можно отключить без перекомпиляции апача.

anton_dr
20.01.2007, 15:32
Вроде у моего хостера заняло пару минут :)

SDA
20.01.2007, 17:31
Geser посмотри здесь, может найдешь http://httpd.apache.org/

megasasha
01.02.2007, 12:45
что значит большие файлы? попробуй переставить новый апач.

sergey_gum
01.02.2007, 14:30
что значит большие файлы? попробуй переставить новый апач.
Эт не винда, где глюки прог в большистве вслучаев исчезают только после перестановки........

Euge
12.02.2007, 21:53
Отключить его нафик :) который мод секьюрити. Его обычно включают, так как через него ломают частенько. У меня на сайте тоже скриптики не работали, пока он был включен.
Цитата моего хостера

Дубовый мод. Замучался с ним Не уверен что его можно отключить без перекомпиляции апача.

Ребята вы прежде чем мод ругать почитали бы сначала почему он заблокировал доступ. В логах ведь написано: "Multipart: final boundary missing". Это значит что после передачи формой данных нет конечного разделителя (обычно переменная $boundary).
У меня была такая же фигня с посылкой данных через multipart форму, посмотрел на логи и на заголовки, пересылаемые скриптом. Оказалось, что все элементы поста разделялись строкой вида "-----$boundary", но после последнего элемента не было указано ничего.
Дописал в конец заголовка строчку "-----$boundary--" (обязательно с двумя "-" после переменной!) и серкьюрити прекрасно все пропустило.

pig
13.02.2007, 00:31
Не осилил. Форму же вроде как браузер посылает, а не скрипт.

Geser
13.02.2007, 12:05
Не осилил. Форму же вроде как браузер посылает, а не скрипт.
Вот вот. Скрипт получает только ссылку на закачанный файл.

saicat
13.02.2007, 14:56
Короче на том серваке где форум. Большие файл закачиваться не хотят хоть убей
php.ini
upload_max_filesize = 20M
max_execution_time = 300
max_input_time = 600
Обе переменные конкретно в скрипте устанавливаются на 1800
httpd.conf
Timeout 3000

не помогает. Какие идеи?

В httpd.conf параметр LimitRequestBody случайно не прописан? Если нет, то попробуйте добавить, что-то типа:

LimitRequestBody 0

Это должно снять ограничение на HTTP-Request-Body. Не помню, как там в 1.3.xx обстояло дело, но во второй версии Apache эту директиву можно прописывать во многих местах, а не только в основном конфиге сервера (это я к тому, что иногда бывает нужно еще найти где она прописана хостером или кем-нибудь еще ;) ).
После этого, естественно, нужно перезапустить Apache.

В Debian это обычно делается так: /etc/init.d/apache restart

По идее, этого и установок из php.ini должно быть достаточно, для закачки файлов на сервер (при условии, что в настройках самого форумного движка нет еще каких-нибудь дополнительных ограничений).

Как выглядит "не закачиваются"? Пишутся какие-нибудь ошибки в лог сервера? Выдаются какие-нибудь сообщения пользователю о невозможности закачки?

Geser
13.02.2007, 15:02
Была ошибка от mod_security. Отключил его, теперь ошибок нигде не видно. Вечером попробую LimitRequestBody

Euge
15.02.2007, 14:38
Не осилил. Форму же вроде как браузер посылает, а не скрипт.

ну это уже от ситуации зависит - у меня все посылал скрипт. И заголовки сам формировал и данные приаттачивал. А если у вас отправляет броузер, то в большинстве случаев форма должна отправляться правильно - во всяком случае я пока особо криворуких броузеров не встречал. Попробуйте под разными броузерами форму отправить и вообще - можно выложить где-то код формы?

Euge
15.02.2007, 14:42
2 GESER:

Вот вот. Скрипт получает только ссылку на закачанный файл.

ну по твоей фразе, что "Обе переменные конкретно в скрипте устанавливаются на 1800", я решил, что форму отправляет скрипт. Или ты отправляешь файл из HTML-ной формы, а уже в принимающем скрипте меняешь переменные?

Geser
15.02.2007, 15:52
Скрипт работает на стороне сервера. Форма передаётся скриптом как HTML браузеру и отображается в браузере на стороне клиента в HTML формате. Далее пользователь выбирает файл и жмёт сабмит, скрипт получает форму по POST. В переменных содержатся поля формы и путь к закачанному файлу во временной директории. Где конкретно поставить эту переменную $boundary? В HTML который передаётся скриптом браузеру?

pig
15.02.2007, 19:10
ну по твоей фразе, что "Обе переменные конкретно в скрипте устанавливаются на 1800", я решил, что форму отправляет скрипт.
Опции самого PHP можно выставлять и в скрипте. А форма - см. правила, приложение 2, там ссылка.

maXmo
16.02.2007, 19:18
это только на той форме не работает? Есть ведь ещё штатная закачка форума. Она работает?

Geser
17.02.2007, 11:12
В штатной закачке ограничение 200к. А том 20М

Euge
19.02.2007, 14:43
Опции самого PHP можно выставлять и в скрипте. А форма - см. правила, приложение 2, там ссылка.

что-то я при регистрации правила вижу, но никаких приложений ни 1, ни 2 не наблюдаю. Кинь сюда прямую ссылку на форму

Euge
19.02.2007, 14:54
Скрипт работает на стороне сервера. Форма передаётся скриптом как HTML браузеру и отображается в браузере на стороне клиента в HTML формате. Далее пользователь ...
Ясно. То есть у тебя скрипт генерит ХТМЛ, который и отправляет файл. У меня на сайте была другая ситуация, файл отправлялся скриптом через сокеты на другой скрипт, поэтому там нужно было вписывать разделители ($boundary) вручную.
Я собственно этот совет запостил лишь для того, чтобы КТО-ТО ДРУГОЙ при возникновении ошибки "Access denied with code 403. Error processing request body: Multipart: final boundary missing" знал где в своем скрипте копать - по поиску в яндексе на запрос "Multipart: final boundary missing" выдается как раз ваша тема, значит люди будут искать совета прежде всего в ней ;)

А у вас случай видимо другой, поэтому и прошу дать ссылку на саму форму. Еще очень полезно посмотреть конфиг самого mod_security

Euge
19.02.2007, 14:56
В штатной закачке ограничение 200к. А том 20М
А при маленьких файлах ошибка тоже вылетает или только при больших?

maXmo
19.02.2007, 15:09
форма (http://virusinfo.info/upload_virus.php)

Geser
19.02.2007, 15:39
Только на больших. При чем скорее всего дело не в размере файла, а во времени закачки