У меня 500 Внутренняя ошибка сервера и, скорее всего, в моем случае я думаю, что загрузка внешних файлов — моя проблема здесь.
В моей строке состояния я получил сообщение Waiting for available sockets...
до того как это случилось
Я нашел эту информацию, когда я погуглил:
Время кодирования PHP
Если ваш PHP-скрипт устанавливает внешние сетевые соединения, соединения
может истечь время Если слишком много попыток подключения и время ожидания истекло, это
вызовет «500 Internal Server Error.» Чтобы предотвратить эти тайм-ауты
и ошибки, вы хотите убедиться, что PHP-скрипты будут закодированы с
некоторые правила тайм-аута. Как правило, однако, обнаружение ошибки тайм-аута, когда
подключение к базе данных или извне к удаленным ресурсам (пример:
RSS-каналы) являются сложными. По сути, они замораживают сценарий
продолжая бежать.Удаление любых внешних подключений может повысить как производительность
ваш сайт и уменьшить шансы на получение «500 внутренних
Ошибка сервера.»
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, или какими могут быть те процессы, которые мне нужно искать, и, скорее всего, это проблема?
Сначала вы должны понять, какие сценарии вызывают ошибку 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>
Также имейте в виду, что такие лимиты срока годности могут быть хорошими в производственной среде, где вы должны менять их не часто.
Надеюсь, что это помогло.
Других решений пока нет …