Привет.
Часто возникают проблемы при закачке 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@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.