Вот столкнулся с проблеммой перевода cgi скриптов из windows в linux.
Для того чтобы завелись скрипты нужно их немного подредактировать, известны следующие проблеммы:
1. Символ перевода каретки \r
2. Путь к интерпретатору
Скрипты сайта в основном написаны на perl. Значит задача сводится к тому, чтобы найти все perl скрипты в папке /cgi-bin/ нашего сайта, удалить символ перевода каретки \r и заменить путь к интерпретатору, я сделад это следующеми командами:
1. find ./ -iname \*.pl -exec sed -i -e 's/#!c:\/perl\/bin\/perl/#!\/usr\/bin\/env perl/g' {} \;
2. find ./ -iname \*.pl -exec sed -i -e 's/\r//g' {}
Первая команда ищет начиная с текущей директории все файлы оканчивающиеся на .pl и вызывает потоковый редактор sed, который заменяет строчку #!c:/perl/bin/perl на #!/usr/bin/perl
Вторая команда аналогично ищет все файлы оканчивающиеся на .pl и удаляет символ возврат каретки
Теперь можно пользоваться скриптами, если конечно совместимы версии windows интерпретатора и linux и если в скриптах не завязано на обсалютных путях, но это тоже поправимо по аналогии.
Всем желаю успешного осваивания линукса!
Комментариев 0