Назад | Перейти на главную страницу

Apache: включить виртуальный SSI, не работающий для сценария CGI

У меня есть следующие включения на стороне сервера в .html файл называется test.html...

<!--#include virtual="/cgi-bin/myScript.cgi"-->

<!--#include virtual="/includes/myFile.html"-->

Когда я смотрю test.html жить в моем браузере, myFile.html вставляется / отображается нормально, однако myScript.cgi дает мне

[произошла ошибка при обработке этой директивы]


Итак, если 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/*

===> Никогда не давайте им или файлу .htaccess разрешений 777, иначе кто-то извне может легко их изменить.


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

Пример вывода журнала попыток взлома, в основном заблокированных RBL: