Internal server error при загрузке медиа-файлов
Добрый день. При загрузке изображений через родной загрузчик modx постоянно выскакивает ошибка «Internal server error», при этом картинка загружается (в менеджере файлов появляется) но вызвать ее в чанке не получается. Ошибка появилась после переноса с другого хоста. Права на папку с изображениями стоит 777. Расширениями и размером файлов игрался, ничего не помогает. Какие настройки я мог упустить при переносе?
Комментарии: 13
Гадать нет никакого смысла, это может быть все что угодно. Смотрите серверный логи (практически любой хостер дает логи прям в панели управления). Без этого просто никак. Логи наше все.
Я смотрел логи. Ни на какие мысли они меня не навели. Вот весь error.log:
2019/01/07 15:59:25 [error] 26466#26466: *53752 upstream prematurely closed connection while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «GET /assets/template/css/bootstrap.min.css.map HTTP/1.1», upstream: «193.111.156.15:8080/assets/template/css/bootstrap.min.css.map», host: «old.omiksagro.com»
[Mon Jan 07 16:12:31.829705 2019] [:error] [pid 29542] [client 193.111.156.15:53541] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/artik/web/old.omiksagro.com/public_html/core/model/modx/modlexicon.class.php on line 148
[Mon Jan 07 16:14:06.506729 2019] [:error] [pid 29562] [client 193.111.156.15:55610] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/artik/web/old.omiksagro.com/public_html/core/model/phpthumb/phpthumb.class.php on line 4360
[Mon Jan 07 16:15:08.821786 2019] [:error] [pid 1628] [client 193.111.156.15:57264] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/artik/web/old.omiksagro.com/public_html/core/model/modx/sources/modmediasource.class.php on line 401
2019/01/07 16:17:38 [error] 26466#26466: *53750 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «GET /perenos.html HTTP/1.1», upstream: «193.111.156.15:8080/perenos.html», host: «old.omiksagro.com»
2019/01/07 16:37:52 [error] 26467#26467: *54448 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «GET /update.html HTTP/1.1», upstream: «193.111.156.15:8080/update.html», host: «old.omiksagro.com»
2019/01/07 16:39:27 [error] 26467#26467: *54448 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «GET /update.html HTTP/1.1», upstream: «193.111.156.15:8080/update.html», host: «old.omiksagro.com»
2019/01/07 16:41:46 [error] 26467#26467: *54567 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «GET /update.html HTTP/1.1», upstream: «193.111.156.15:8080/update.html», host: «old.omiksagro.com»
2019/01/08 23:26:57 [error] 26467#26467: *113563 upstream prematurely closed connection while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «POST /connectors/index.php HTTP/1.1», upstream: «193.111.156.15:8080/connectors/index.php», host: «old.omiksagro.com», referrer: «old.omiksagro.com/admin/?a=element/chunk/update&id=47»
Я вчера добился, чтобы изображение отображалось на сайте. Был мой косяк, не прописал baseURL в параметрах источника файлов. Следовательно неправильно отображался путь к картинке.
Но меня по-прежнему беспокоит это выскакивающее сообщение «Internal server error» при загрузке. Хоть оно по факту и не мешает работе.
2019/01/07 15:59:25 [error] 26466#26466: *53752 upstream prematurely closed connection while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «GET /assets/template/css/bootstrap.min.css.map HTTP/1.1», upstream: «193.111.156.15:8080/assets/template/css/bootstrap.min.css.map», host: «old.omiksagro.com»
[Mon Jan 07 16:12:31.829705 2019] [:error] [pid 29542] [client 193.111.156.15:53541] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/artik/web/old.omiksagro.com/public_html/core/model/modx/modlexicon.class.php on line 148
[Mon Jan 07 16:14:06.506729 2019] [:error] [pid 29562] [client 193.111.156.15:55610] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/artik/web/old.omiksagro.com/public_html/core/model/phpthumb/phpthumb.class.php on line 4360
[Mon Jan 07 16:15:08.821786 2019] [:error] [pid 1628] [client 193.111.156.15:57264] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /home/artik/web/old.omiksagro.com/public_html/core/model/modx/sources/modmediasource.class.php on line 401
2019/01/07 16:17:38 [error] 26466#26466: *53750 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «GET /perenos.html HTTP/1.1», upstream: «193.111.156.15:8080/perenos.html», host: «old.omiksagro.com»
2019/01/07 16:37:52 [error] 26467#26467: *54448 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «GET /update.html HTTP/1.1», upstream: «193.111.156.15:8080/update.html», host: «old.omiksagro.com»
2019/01/07 16:39:27 [error] 26467#26467: *54448 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «GET /update.html HTTP/1.1», upstream: «193.111.156.15:8080/update.html», host: «old.omiksagro.com»
2019/01/07 16:41:46 [error] 26467#26467: *54567 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «GET /update.html HTTP/1.1», upstream: «193.111.156.15:8080/update.html», host: «old.omiksagro.com»
2019/01/08 23:26:57 [error] 26467#26467: *113563 upstream prematurely closed connection while reading response header from upstream, client: 5.105.125.72, server: old.omiksagro.com, request: «POST /connectors/index.php HTTP/1.1», upstream: «193.111.156.15:8080/connectors/index.php», host: «old.omiksagro.com», referrer: «old.omiksagro.com/admin/?a=element/chunk/update&id=47»
Я вчера добился, чтобы изображение отображалось на сайте. Был мой косяк, не прописал baseURL в параметрах источника файлов. Следовательно неправильно отображался путь к картинке.
Но меня по-прежнему беспокоит это выскакивающее сообщение «Internal server error» при загрузке. Хоть оно по факту и не мешает работе.
Говорю, читайте логи. У вас написано
PHP Fatal error: Maximum execution time of 30 seconds exceeded inТо есть запрос не выполняется за 30 секунд и обрываются. В админке MODX запрашивает картинки не напрямую, а через phpthumb. У вас скорее всего большие картинки и хостинг не справляется с их обработкой. Если картинку не получилось пережать, отдается ее оригинал. Вот для вас как бы и работает.
Ужимал картинки до сотен байт для эксперимента. И появляются они в менеджере файлов моментально после нажатия кнопки «Загрузить», независимо от размера. И при всём при этом выскакивает вышеозначенная ошибка.
Когда в админке открывается какой-либо файловый менеджер с превью картинок, запросы на эти картинки через вышеупомянутый phpthumb идет на все картинки в списке, а не только на ту, какую вы загружаете. Эти запросы встают в очередь. Потом по мере очереди отваливаются с записью в логи. У вас определенно есть серверные проблемы. 98% хостинг не справляется с нагрузкой.
Нашёл! Проблема была в установленном когда-то плагине ResizeImageOnUpload. Не стал разбираться в чём именно причина, а просто снёс его за ненадобностью.
Речь об этом?
Перепроверьте у себя в настройках MODX config_cache_maxage, config_cache_maxsize и config_cache_maxfiles. По умолчанию они не нулевые и это создает большую нагрузку при работе phpthumb, потому что тот при записи считает общее кол-во файлов и занимаемое место. Я писал про это здесь.
То есть плагин срабатывает на загруженный файл и пытается сразу сгенерить самбы, а phpthumb пытается посчитать файлы. Установите настройки по нулям и попробуйте опять плагин включить, просто проверить. Вероятно будет работать ОК.
Перепроверьте у себя в настройках MODX config_cache_maxage, config_cache_maxsize и config_cache_maxfiles. По умолчанию они не нулевые и это создает большую нагрузку при работе phpthumb, потому что тот при записи считает общее кол-во файлов и занимаемое место. Я писал про это здесь.
То есть плагин срабатывает на загруженный файл и пытается сразу сгенерить самбы, а phpthumb пытается посчитать файлы. Установите настройки по нулям и попробуйте опять плагин включить, просто проверить. Вероятно будет работать ОК.
Спасибо большое. Буду пробовать.
Не за что.
Можно ещё вопрос? Не знаю, стоит ли создавать новую тему?
У меня периодически в error.log появляются ошибки типа
phpThumb was unable to generate a thumbnail for: /home/artik/web/old.omiksagro.com/public_html/core/cache/phpthumb/old.omiksagro.com__srcc03886b322b5efefb835224bffdbb7b7_par0ba78bb0326502335f8683fdf331013a_dat0.jpeg
Error outputting thumbnail:
OutputThumbnail() failed because !is_resource($this->gdimg_output) in file «phpthumb.class.php» on line 618
В чём может быть причина?
У меня периодически в error.log появляются ошибки типа
phpThumb was unable to generate a thumbnail for: /home/artik/web/old.omiksagro.com/public_html/core/cache/phpthumb/old.omiksagro.com__srcc03886b322b5efefb835224bffdbb7b7_par0ba78bb0326502335f8683fdf331013a_dat0.jpeg
Error outputting thumbnail:
OutputThumbnail() failed because !is_resource($this->gdimg_output) in file «phpthumb.class.php» on line 618
В чём может быть причина?
Точно не скажу, но может с этим связано: modxclub.ru/comments/comment-9741.html
Благодарю. Проблема была действительно в аватарке. Причём изначально она стояла пустая, по умолчанию. Я поставил свою и ошибки перестали сыпаться. Какой-то странный глюк )
Таких странностей полно, когда не знаешь как искать.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.