500 Internal Server Ошибка в зависимости от внешних загруженных файлов?

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

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

Время кодирования PHP

Если ваш PHP-скрипт устанавливает внешние сетевые соединения, время ожидания может истечь. Если будет предпринято слишком много подключений и истечет время ожидания, это вызовет "500 Internal Server Error". Чтобы избежать этих тайм-аутов и ошибок, вы должны убедиться, что PHP-скрипты закодированы с некоторыми правилами тайм-аута. Однако, как правило, трудно обнаружить ошибку тайм-аута при подключении к базе данных или извне к удаленным ресурсам (например, RSS-каналы). Они, по сути, замораживают сценарий от продолжения работы.

Удаление любых внешних подключений может повысить как производительность вашего веб-сайта, так и уменьшить вероятность получения "500 Internal Server Error".

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

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

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

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

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

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

1 ответ

Решение

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

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

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

О кэшировании ресурсов js и css: вы можете указать apache указать браузеру использовать кэшированную копию файла, используя некоторые директивы в файле.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>

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

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

Другие вопросы по тегам