1

Тема: Подскажите как к серверу который описан в мануале прикрутить перл ???

Вообшем если вы знаете подскажите плыз что нужно сделать....??? что где прописать если надо...??? де какие папочки пососдавать...??? З.Ы. прост дали скрипт чата того который мы с моими друзьями так дого искали.... а он с работает через перл.... надо на локалке разобратся как что тма делать...

2

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

1) Сперва переходим сюда - http://www.activestate.com/activeperl/ - и скачиваем дистрибутив.
2) Устанавливаем не внося никаких изменений, за исключением пути установки. Изначально предлагается C:\Perl, следует изменить его на C:\usr. Это нам очень сильно поможет с shebang в скриптах, его не придется менять при переносе на, или с, Unix систем.
3) Перезагружаем компьютер после установки, чтобы активировать изменения в PATH.
4) Открываем конфигурационный файл Apache - httpd.conf.

4.1) Добавляем директиву ExecCGI для запуска cgi скриптов на корневую директорию. Теперь весь блок будет выглядеть так:
<Directory />
    Options Includes Indexes FollowSymLinks ExecCGI
    AllowOverride All
    Allow from all
</Directory>

4.2) Добавьте индексные файлы с расширением скриптов Perl: .pl .cgi.
<IfModule dir_module>
    DirectoryIndex index.html index.htm index.shtml index.php index.pl index.cgi
</IfModule>

4.3) Найдите строку:
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"

Замените её на:
ScriptAlias /cgi-bin/ "C:/apache/cgi-bin/"

4.4) Найдите этот блок:
<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

Замените его на:
<Directory "C:/apache/cgi-bin">
    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
</Directory>

Создайте пустой каталог C:/apache/cgi-bin, который будет содержать глобальные скрипты  доступные из всех виртуальных хостов.

4.5) Найдите, раскомментируйте и отредактируйте строку, добавив .pl, определяющую расширения файлов perl скриптов:
AddHandler cgi-script .cgi .pl

5) Создайте тестовый скрипт printenv.pl следующего содержания:

#!/usr/bin/perl
##
##  printenv -- Демонстрационная CGI программа выводящая значения переменных окружения
##

print "Content-type: text/plain; charset=iso-8859-1\n\n";
foreach $var (sort(keys(%ENV))) {
    $val = $ENV{$var};
    $val =~ s|\n|\\n|g;
    $val =~ s|"|\\"|g;
    print "${var}=\"${val}\"\n";
}

Положите этот файл в C:\apache\localhost\www\ и C:\apache\cgi-bin\.

6) Запускаем веб сервер и проверяем:
Глобальный скрипт - http://localhost/cgi-bin/printenv.pl
Локальный, относящийся к виртуальному хосту localhost - http://localhost/printenv.pl

Если скрипты не запускаются, проверьте что у них в shebang (первая строка). Обычно должно быть так:
#!/usr/bin/perl

3 (изменено: Гоша, 2009-02-04 15:28:42)

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

Громадное спасибо!!!))) big_smile как токо перебью винду так сразу и проверю... и отпишусь... smile

4 (изменено: Hanut, 2009-02-16 02:55:36)

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

эээээ после запроса к скрипту долно показать следуюшее????? эт у меня выдает при локальном http://localhost/printenv.pl :

А при запросе в глобальному http://localhost/cgi-bin/printenv.pl ошибку сервера, вообшем :

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, gosha@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


--------------------------------------------------------------------------------

Apache/2.2.11 (Win32) PHP/5.2.8 Server at localhost Port 80

а в файле ошибок localhost :

[Sun Feb 15 14:16:22 2009] [error] [client 127.0.0.1] File does not exist: C:/apache/localhost/www/favicon.ico
[Sun Feb 15 14:20:26 2009] [error] [client 127.0.0.1] (OS 3)Системе не удается найти указанный путь.  : couldn't create child process: 720003: printenv.pl
[Sun Feb 15 14:20:26 2009] [error] [client 127.0.0.1] (OS 3)Системе не удается найти указанный путь.  : couldn't spawn child process: C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/printenv.pl

Я открывал порт проверял всеравно.... ошибка.... Помогите разобратся и устранить ошибку .... sad

5

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

Гоша сказал:

эт у меня выдает при локальном http://localhost/printenv.pl

Все правильно. Это значения переменных окружения.

Пункт 4.3. Смотрите выше.

6 (изменено: Hanut, 2009-02-15 17:05:39)

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

Hanut сказал:
Гоша сказал:

эт у меня выдает при локальном http://localhost/printenv.pl

Все правильно. Это значения переменных окружения.

Пункт 4.3. Смотрите выше.

Ну насчет пункта 4,3 могу даже файл конфига выложить все там правильно, ошибка сёровно ошибку выбивает , вот файл:

7

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

Найдите строку:
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"

Замените её на:
ScriptAlias /cgi-bin/ "C:/apache/cgi-bin/"

Потом добавлю в свое сообщение выше, чтобы другие люди тоже не попались на мой недосмотр.

8

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

Hanut сказал:

Найдите строку:
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"

Замените её на:
ScriptAlias /cgi-bin/ "C:/apache/cgi-bin/"

Потом добавлю в свое сообщение выше, чтобы другие люди тоже не попались на мой недосмотр.

Кса я думал насчет этой строчки ток был не уверен, в своей догадке... оказалось не такой я и тьупой.. как я думал:)

9 (изменено: Ruskat, 2011-08-13 11:15:00)

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

И ещё добавлю важного:
«Найдите и раскомментируйте параметр: ScriptInterpreterSource registry
Это позволит Apache использовать Реестр для поиска Perl-интерпретатора.

Вот, собственно, и все. Для проверки работоспособности Perl создайте в директории z:\localhost\cgi файл test.pl с таким содержанием:
#!/usr/local/bin/perl -w
print "Content-type: text/html\n\n";
print "It works!<br>\n";
Важно!
Обратите внимание на первую строчку в скрипте. Можно подумать, что она указывает Apache, что Perl расположен в z:\usr\local\bin\perl.exe. На самом же деле Apache видит, что такого файла не существует, и использует Реестр для поиска ассоциации для расширения pl. Происходит это благодаря директиве ScriptInterpreterSource, которую мы активизировали до этого. Однако, хотя Apache игнорирует первую строку в скрипте, Perl ее использует для того, чтобы определить, какие флаги были использованы при его запуске (в нашем примере это флаг -w, который включает режим вывода сообщений об ошибках в скрипте).»

10

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

Ruskat сказал:

На самом же деле Apache видит, что такого файла не существует, и использует Реестр для поиска ассоциации для расширения pl.

Тогда надо ассоциировать файлы с расширением .pl и .cgi на perl.exe. Я правильно понял?

11 (изменено: Ruskat, 2011-08-13 12:08:19)

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

Hanut,  правильно, потому что perl.exe и помогает системе разбираться с *.pl и *.cgi файлами. и даже с *.exe и *.bat
Для проверки, создал файл 01.bat, в который закинул код:

@echo off
echo Content-type: text/html
echo.
echo.
dir

На что я получил вывод в браузере:
«Том в устройстве L имеет метку Разное Серийный номер тома: 48A9-C41A Содержимое папки L:\server\cgi-bin 13.08.2011 11:18
. 13.08.2011 11:18
.. 13.08.2011 10:38 58 01.bat 13.08.2011 11:39 317 01.pl 13.08.2011 11:17 6 968 index.cgi 13.08.2011 11:37
wbm 3 файлов 7 343 байт 3 папок 17 581 604 864 байт свободно.»
Если будут непонятки с кодировкой, то она windows-1251.

12

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

Ruskat сказал:

perl.exe и помогает системе разбираться с *.pl и *.cgi файлами. и даже с *.exe и *.bat

Только с файлами .exe и .bat работает командная строка (cmd.exe), а не perl.exe.

13

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

Hanut, Вполне могу и ошибаться.

14

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

отрубился сервер!!!
предыстория:
создал второй хост (test1.ru) по анологии с test.ru
Hе перезагрузил сервер, подключил wordpress визуально все было в порядке, увидел что не создаются error и access в test.ru. Перезагрузил сервер и все рухнуло.... не реагирует на test.ru, test1.ru, localhost....
Что делать как исправить???

15

Re: Подскажите как к серверу который описан в мануале прикрутить перл ???

fedor сказал:

Что делать как исправить?

Смотрите записи в логах (error.log). Попробуйте временно убрать записи на виртуальный хост test1.ru.