0

У меня есть внутренняя ошибка сервера 500 и, скорее всего, в моем случае думаю, что загрузка внешних файлов - вот моя проблема. В моей строке состояния я получил сообщение Waiting for available sockets..., прежде чем это произошло.500 Внутренняя ошибка сервера в зависимости от внешних загружаемых файлов?

Я нашел эту информацию, я гугл:

PHP Coding таймаут

Если ваш PHP скрипт делает внешние сетевые соединения, соединение может тайм-аут. Если слишком много попыток подключения и тайм-аут, этот вызовет «Внутреннюю ошибку сервера 500». Чтобы предотвратить эти тайм-ауты и ошибки, вы должны убедиться, что PHP-скрипты будут закодированы с помощью некоторых правил таймаута. Как правило, однако, ловить ошибку таймаута, когда , подключающихся к базе данных или извне к удаленным ресурсам (пример: RSS-каналов), сложны. Фактически они замораживают скрипт от , который продолжает работать.

Извлечение любых внешних соединений может увеличить как производительность вашего веб-сайта, так и уменьшить вероятность получения «Внутренней ошибки сервера ». »

1) Я динамически генерирую/загружаю файлы css и js с моего веб-сервера (*.php файлов). Поэтому я не знаю, действительно ли современный браузер кэширует это или не может кэшировать это вообще и обрабатывает его как новый запрос на каждую загрузку страницы? Потому что PHP генерирует это в зависимости от параметров, заданных для указания того, какой css/js должен быть загружен. Это даже проблема или проблема, которые могут вызвать эту ошибку внутреннего внутреннего сервера?

2) Какое расширение Chrome вы можете рекомендовать для отслеживания и отладки всех сетевых данных? Какие инструменты вообще, кроме Chrome DevTools, могут мне помочь?

3) В цитируемом тексте говорится, что я должен заботиться о тайм-аутах. Какие важные источники я должен проверить? Могут ли проблемы ajax или, возможно, сеансы php?

4) Самое главное: как я могу исправить эту ошибку? Домен может быть перемещен по адресу www.vaymodels.com, если это поможет упомянуть. Я не могу открыть его ни с одним браузером, ни с моим смартфоном (отключенный WiFi). Возможно, кто-то из вас мог бы открыть его и просмотреть источник страницы.

Также стоит упомянуть, что это поведение только началось в последние несколько дней. Я постоянно загружал файлы, когда работал на моем сайте, и многократно обновлял домен, и он случайно не загружал его на 5-10 минут. Но после этого может быть достигнуто без 500 ошибок. Теперь это кажется недостижимым.

Редактировать: Мой webhoster просто сказал мне, что они обновили мой предел FPM с 15 до 30. Было слишком много процессов php, которые он сказал. Может ли это быть вызвано запросами mysql, которые я выполняю через файл, загружаемый через cronjob, или какие могут быть те процессы, которые я должен искать, и, скорее всего, проблема?

+0

** 1 **. Если для файлов одинаковый URL-адрес, браузер может его кэшировать. Если это вызывает проблему? Без понятия! Мы не знаем, как выглядит код. ** 2 **. Просить стороннее программное обеспечение отключено от темы SO, а плагин chrome не может видеть, что происходит на сервере (так как он ничего не возвращает браузеру). ** 3 **. Таймауты можно установить в php.ini или с помощью 'iniset()'. Просто google: «установите тайм-аут в php». ** 4 **. Я не могу сказать, как «исправить» ошибку, поскольку мы не знаем, что ее вызывает. Вы проверили журналы ошибок? –

+0

Я только что редактировал мой вопрос. Спасибо что подметил это. Я бы показал свой код, если бы знал, какие части имеют отношение к моему делу. И я полностью перепутал это с тех пор, как я работаю над FrontEnd, извините. Я прочитаю эту тему. Также я не могу получить доступ к своим журналам ошибок, но, как и в моем edit, говорит: что-то о пределе FPM и слишком многих процессах. Я думаю, что мой cronjob мог вызвать это, но я еще не уверен, что это процесс, который я должен рассмотреть. – AlexioVay

ответ

1

Вы должны сначала понять, какие сценарии вызывают ошибку 500. Вы можете посмотреть на журналы ошибок или вы можете добавить в верхней части подозрительных скриптов:

ini_set("display_errors",1); 
error_reporting(E_ALL); 

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

О кэшировании JS и CSS ресурсов: вы можете поручить апача, чтобы сообщить браузеру использовать сохраненную копию файла, используя некоторые директивы в файле the.htaccess как:

<IfModule mod_expires.c> 
ExpiresActive on 
ExpiresByType text/css     "access plus 1 month" 
ExpiresByType application/javascript "access plus 1 month" 
ExpiresByType text/javascript   "access plus 1 month" 

<IfModule mod_headers.c> 
Header append Cache-Control "public" 
</IfModule> 

</IfModule> 

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

Надеюсь, что помогло.

Смежные вопросы