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

Ошибка сценария cgi 2010

Надеюсь, ты сможешь помочь, я новичок! Я перечислил несколько дополнительных деталей, которые могут не иметь отношения.

Я загружаю cgi-скрипты в локальный / личный каталог на сервере Apache / 2.2.10, используя FTP95Pro в ASCII. Скрипты правильно выполняются с использованием perl на моем веб-сервере в терминальном сеансе. Таким образом, в моем коде нет фатальных синтаксических ошибок.

«Действие» веб-страниц для каждого сценария cgi в / cgi-bin /. Существуют символические ссылки, которые связывают файлы системного каталога с файлами моего локального каталога. FollowSymLinks включен (не знаю, как). Разрешения правильные (755). Очевидно, эта установка не изменилась.

Скрипты отлично выполнялись в течение многих лет, вплоть до 2010 года. Но теперь, в 2010 году, я заменил рабочие скрипты новыми скриптами / файлами, теперь с точно таким же текстом, именем файла и разрешениями. Изменилась только дата (последнее изменение). Но теперь я получаю 500 Internal Server Error и не могу определить причину. Администратор моего сервера предполагает, что у меня есть ошибки в коде. Но код не изменился с прошлого года, и он отлично работает (хотя и без аргументов) на консоли веб-сервера с использованием perl myscript.cgi

Есть ли что-нибудь, что могло измениться? Я с подозрением отношусь к новому десятилетию. Я думаю, что в прошлом году сервер переключился с Linux на ОС Windows, но у моего администратора сервера все заработало. Возможно, он пропустил что-то необычное, связанное с 2010 годом?

Если CGI-скрипт не сломался с 1 января 2010 года, то я сильно сомневаюсь, что это связано с 2010 годом.

  • См. Вопрос Q3.4 Perl и CGI FAQ, и дважды проверьте элементы на этом Отладка сценария Perl CGI список.

  • Использовать diff инструмент для сравнения старой и новой версии, чтобы убедиться, что исходный код ничем не отличается.

  • Добавить Perl Cgi: Карп поддержка для отладки установленного скрипта.

  • Использовать use warnings и use strict в скрипте Perl

  • Тест с использованием perl -c script.cgi (видеть: perldoc perlrun)

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