У меня есть следующие включения на стороне сервера в .html
файл называется test.html
...
<!--#include virtual="/cgi-bin/myScript.cgi"-->
<!--#include virtual="/includes/myFile.html"-->
Когда я смотрю test.html
жить в моем браузере, myFile.html
вставляется / отображается нормально, однако myScript.cgi
дает мне
[произошла ошибка при обработке этой директивы]
В адресной строке браузера /cgi-bin/myScript.cgi
выводит результат нормально, доказывая, что файл существует по пути и разрешения верны (755).
Обработчики SSI правильно настроены как myFile.html
включен просто отлично, доказывая, что страница анализируется.
Итак, если SSI работает и myScript.cgi
работает, почему нет #include virtual
работаете над этим скриптом?
В качестве примечания, это на учетной записи хостинга cPanel, и у меня есть много других учетных записей (сайтов) на сервере в той же хостинговой компании с той же конфигурацией. Остальные все работают как положено.
Скрипт просто возвращает год от сегодняшней даты в виде форматированного текста. Выводу предшествует Content-type: text/html\n\n
и это не новый сценарий Perl. Он работает с другими учетными записями.
Моя хостинговая компания передала проблему в cPanel, и, к моему смущению, она оказалась настройкой в моем .htaccess
файл, который все-таки отсутствовал.
У работающей учетной записи была эта строка, где сломанная учетная запись не ...
Options All -Indexes
All
по умолчанию включает в себя то, что добавила хостинговая компания, чтобы заставить его работать ...
Options +Includes +ExecCGI
Без +ExecCGI
, он ломается, как я описал в моем исходном сообщении.
Хорошее устранение неполадок в обнаружении, что ваши SSI работают.
Вы локализовали проблему в подсистеме CGI.
Прежде всего, вам нужно убедиться, что вы установили это в своем .htaccess
файл:
Options ExecCGI
Если проблема не исчезнет, вам нужно будет посмотреть журнал ошибок, чтобы выяснить причину:
Это сообщение об ошибке совпадает с ошибкой 500 (которая обычно возникает с ошибками в самом .htaccess), поэтому в журналах вы найдете описательное сообщение об ошибке.
cPanel позволяет просматривать журналы ошибок.
Они твои лучшие друзья.
В разделе журнала ошибок cPanel покажет вам IP-адрес вашего клиента, который вы ищете - вверху. Это IP-адрес, присвоенный вашим интернет-провайдером.
Современные версии cPanel (например, та, которую я использую на Bluehost, ноябрь 2017 г.) выделяют записи от вашего клиента, чтобы попытки взлома не отвлекали вас. Если у вас нет выделения, используйте функцию Ctrl-F (Найти) в вашем браузере, чтобы найти исходящие от вас записи.
В конце этого ответа приведены примеры всех попыток взлома, с которыми они сталкиваются. Это стоит каждого пенни, чтобы позволить им справиться с этим, а не пытаться запустить свой собственный сервер в дикой природе.
ОТВЕТ: Я считаю, что вы использовали <!--#Include
для CGI проблема.
Большинство современных серверов Apache требуют, чтобы вы использовали:
<!--#exec cgi="/cgi-bin/myScript.cgi" -->
вместо простого включения сценария.
==> Убедитесь, что в вашем HTML-файле есть .shtm
или .shtml
расширение.
Обратите внимание, что все /cgi-bin/
файлы должны иметь 755 разрешений. - это означает RWX для владельца и RX для группы и общественности
chmod 755 /cgi-bin/*
Это показывает, почему лучше использовать службу хостинга, а не запускать собственный сервер.
Пример вывода журнала попыток взлома, в основном заблокированных RBL: