Перейти к содержимому


Фотография
- - - - -

Internal Server Error при сохранении элемента

zoo item error

Лучший Ответ SmetDenis , 01 April 2014 - 13:09

У самого элемента нет явных ограничений на размер хранимой информации.

Единственное ограничение было база данных.

longtext  - это ограчение в 4Гб.

 

Сейчас думаю, что проблема тут может быть в двух ситуациях.

 - Текст долго отправляется из браузера на сервер, если это более 30-40 секунд, то fast cgi или nginx не дождется и оборвет соединение. Плохой интернет в наше время далеко не редкость...

 

 - PHP Скрипт не успевает собрать это все добро в JSON с помощью json_decode / json_encode

 

В обоих ситуациях важен именно объем а не деление на отдельные поля.

К сожалению, как эти две момент обойти без уменьшения объема текста, я не знаю.

 

Если только не делать что-то более серьезное, вроде прикрепления текстового файла, который потом как-нибудь сохранится/распарсится уже на стороне сервера, минуя сеть.

 

 

Еще можно отключить лишнюю индексацию (если не нужен поиск).

Как минимум отключить стандартный умный поиск Joomla. Уж больно он прожорливый бывает.

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 7

#1 Apoca1ypto

Apoca1ypto

Отправлено 31 March 2014 - 15:35

Добрый день!

При сохранении элемента получается ошибка Internal Server Error, в логах это mod_fcgid: read data timeout in 40 seconds. Сама база сейчас небольшая но сохраняемые элементы в среднем по 100-500кбайт (рассказы). Подскажите, что можно сделать в данной ситуации, изменить настройки сервера в пользу больших таймингов или что-то можно оптимизировать?

Joomla 2.5.19 / Zoo 3.14 /JBZoo 2.1.2 Pro

Сообщение отредактировал Apoca1ypto: 31 March 2014 - 15:35

  • 0

Во время спора в Интернете Ваш оппонент приводит неопровержимые доказательства своей точки зрения? Не отчаивайтесь. До...тесь до орфографии.


#2 SmetDenis

SmetDenis

Отправлено 31 March 2014 - 16:15

Добрый день.

Возможно это не та ошибка, по крайней мере она мне ни о чем не говорит.
Попробуйте, включить полное отображение ошибок - http://joomla-book.r...error-reporting
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 Apoca1ypto

Apoca1ypto

Отправлено 31 March 2014 - 16:20

После данной ошибки в логах появляются две записи:
1. mod_fcgid: read data timeout in 40 seconds, referer: /administrator/index.php?option=com_zoo&controller=item&changeapp=2&task=edit&cid[]=109

2. Premature end of script headers: index.php, referer: /administrator/index.php?option=com_zoo&controller=item&changeapp=2&task=edit&cid[]=109

В итоге модуль Apache после ожидания 40 секунд обрывает запрос/выполнение скрипта и получается Internal Server Error. Но правда не всегда... в итоге вопрос, увеличить время выполнения/ожидания запроса или что-то нужно оптимизировать?

Сообщение отредактировал Apoca1ypto: 31 March 2014 - 16:21

  • 0

Во время спора в Интернете Ваш оппонент приводит неопровержимые доказательства своей точки зрения? Не отчаивайтесь. До...тесь до орфографии.


#4 SmetDenis

SmetDenis

Отправлено 01 April 2014 - 09:33

Возможно у вас запущен nginx ?
Можно ли переключить php в режим модуля?
Баг повторяется на локале?

Могу я увидеть ваш сайт? Мне понадобится ftp и панель управления.
+ адрес страницы, которая наверняка выдает ошибку.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 Apoca1ypto

Apoca1ypto

Отправлено 01 April 2014 - 12:01

Да, все верно, стоит связка nginx + apache.
Это не баг, возможно в определенные моменты нагрузки, при сохранение данных в базу превышается лимит времени... с этим все понятно, избежать это можно увеличив лимит времени ны выполнение скрипта. Вопрос состоит в том, как поступить, увеличить время или что-то нужно оптимизировать в Joomla/Zoo?

Не стал заводить новую тему, появился еще вопрос. Есть ли ограничение на объем сохраняемого поля в Joomla/Zoo. Т.к. на сайте публикуются рассказы и объем их доволно большой и разный, заметил такую вещь, если сохранять по 500кбайт в текстовом поле то все хоршо, после сохранения данные появляются, если же объем текстового поля около или равен 1мбайту то после сохранения элемента поле остается пустым. что можно сделать?
  • 0

Во время спора в Интернете Ваш оппонент приводит неопровержимые доказательства своей точки зрения? Не отчаивайтесь. До...тесь до орфографии.


#6 SmetDenis

SmetDenis

Отправлено 01 April 2014 - 12:31

Сохранение не должно длиться более 30 секунд.

 

Если вы отправляете тексты по мегабайту (переживаю за ваших пользователей, им же эти страницы в буквальном смысле "скачивать"), то возможно дело не в скорости сервера, а просто данные от вас долго отправляются на сервер. Потом это все нужно переварить в JSON формат. Хоть функция и работает на уровне C++, но вполне возможно такой объем не переварит за разумные сроки.

 

Вообще считаю это не нормально.

Еще могу посоветовать изменить тип поля #__zoo_item.elements на longtext, чтобы внезапно сам MySQL не обрезал сохраненный текст, тем самым данные оставались валидными.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#7 Apoca1ypto

Apoca1ypto

Отправлено 01 April 2014 - 12:45

Скачивать ничего не придется т.к. с помощью специальной разметки и плагина для joomla/zoo рассказы делятся на главы, которые выбираются из выпадающиего списка и имеют пагинацию по тем же главам.

Я проверил эту таблицу и параметр (#__zoo_item.elements на longtext) еще до создания топика, там уже был установлен longtext.

Возможно со стороны кажется это не совсем нормально, но рассказы публикуются пользователями и они у всех разные по объему. Если даже каждую главу делить на свое поле, то это ничего не изменит т.к. объем данных при сохранении не уменьшится.

Есть ли какие либо способы сохранять объемы по 1-3мбайта в элементе?

Сообщение отредактировал Apoca1ypto: 01 April 2014 - 12:51

  • 0

Во время спора в Интернете Ваш оппонент приводит неопровержимые доказательства своей точки зрения? Не отчаивайтесь. До...тесь до орфографии.


#8 SmetDenis

SmetDenis

Отправлено 01 April 2014 - 13:09   Лучший Ответ

У самого элемента нет явных ограничений на размер хранимой информации.

Единственное ограничение было база данных.

longtext  - это ограчение в 4Гб.

 

Сейчас думаю, что проблема тут может быть в двух ситуациях.

 - Текст долго отправляется из браузера на сервер, если это более 30-40 секунд, то fast cgi или nginx не дождется и оборвет соединение. Плохой интернет в наше время далеко не редкость...

 

 - PHP Скрипт не успевает собрать это все добро в JSON с помощью json_decode / json_encode

 

В обоих ситуациях важен именно объем а не деление на отдельные поля.

К сожалению, как эти две момент обойти без уменьшения объема текста, я не знаю.

 

Если только не делать что-то более серьезное, вроде прикрепления текстового файла, который потом как-нибудь сохранится/распарсится уже на стороне сервера, минуя сеть.

 

 

Еще можно отключить лишнюю индексацию (если не нужен поиск).

Как минимум отключить стандартный умный поиск Joomla. Уж больно он прожорливый бывает.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.






Темы с аналогичным тегами zoo, item, error

Click to return to top of page in style!