Привет.
Часто возникают проблемы при закачке perl-скриптов по FTP
в бинарном режиме, если скрипт имеет "кодировку Windows".
Проявлется это тем, что apache при запросе такого скрипта
отдает "Internal server error". Лечится тем, что пользователь
должен закачивать скрипт в текстовом (ASCII) режиме.
Есть более радикальный способ, который позволяется не беспокоиться
от том, в каком режиме закачивается файл.
Суть проблемы в том, что Windows и Unix имеют разные мнения
по поводу того, как должна заканчиваться строка - у Windows
конец строки "\r\n" или 0x0D 0x0A, у Unix просто "\n" или 0x0A.
Для perlа конец строки не важен, но он важен для ядра, которое
стартует скрипт.
Первая строка perl-скрипта указывает путь к интерпретатору perl
(или любому другому интерпретатору) и может содержать аргументы
запуска интерпретатора. В большинстве случаев первая строка содержит
только путь к perl.
Если скрипт имеет Windowsский конец строки (первая
строка "#!/usr/bin/perl\r\n") , при попытке запуска
скрипта ядро будет искать интерпретатор в файле "#!/usr/bin/perl\r",
поэтому нам достаточно лишь скопировать/слинковать "perl" в "perl\r".
Делается это так: perl -e '$pp = "/usr/bin/perl"; link ($pp, $pp."\r");'
После этого ваши пользователи могут не беспокоиться на счет того,
в каком режиме они закачивают скрипт.
Sincerely your,
Cyril A. Vechera
=============================================================================
= Apache-Talk@lists.lexa.ru mailing list =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =