Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Как подружить Apache и Perl? (http://forum.oszone.net/showthread.php?t=43777)

Savant 13-01-2005 23:30 288362

Как подружить Apache и Perl?
 
На сервере (Windows 2k) стоит Apache 2.0.51 . Но никак не удается запустить perl-скрипты. Пёрл потребовался мне недавно, поэтому я не очень знаком с конфигурированием сервера на работу с пёрл. Сначала просто продублировал настройки для PHP c необходимыми поправками, но при запуске скрипта вылезает ошибка 500 (скрипты тут не при чем, тестировал даже простейший Hello World с одним print'ом). Помудрил еще, теперь файлы не запускаются, а загружаются с сервера :( . Вернул назад, к ошибке 500.

Помогите настроить перл, ведь он у многих стоит, дайте свои настройки в крайнем случае. Active Perl 5.8.6

mar 14-01-2005 00:00 288371

1) Перл сам по себе работает?
2) пример простого скрипта, выдающего 500-ую ошибку?
3) что в логе апача? (про ошибку)

Vlad Drakula 14-01-2005 00:26 288383

Savant
могу сказать что если взять настройки от ПХП и переписать их для перла то перл будет работать, но это так для если устанавливать перл в режиме CGI.

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

Savant
а инсталлеер запускал?

Savant 14-01-2005 00:51 288387

mar
Спасибо, что сказал про лог Апача
[Fri Jan 14 00:43:50 2005] [error] [client 192.168.0.1] malformed header from script. Bad header=Hello, World...: hello.pl

добавил в начало print "Content-Type: text/html\n\n"; и все заработало. Клево :) Ща учить будем
Но почему попадающиеся мне перловые скрипты не имеют в начале этой строчки?

С Новым годом друзья

Oaxa 14-01-2005 08:23 288442

Цитата:

Но почему попадающиеся мне перловые скрипты не имеют в начале этой строчки?
Скорее всего потому, что в попадающихся тебе скриптах есть немного другая строчка, например такая:
Код:

use CGI qw(:standard);
print header();
print start_html("Title");
.....

Другими словами, print "Content-Type: text/html\n\n"; в чистом виде используется редко. Чаще ее вызывают через функцию header модуля CGI.pm.

Savant 14-01-2005 12:38 288509

Oaxa
Да, действительно, вызов функций этого модуля используется. Спасибо

N:I:C:K:O:L:A 13-10-2005 12:31 363907

Извеняюсь за тупость и лень но вот вопрос:
настроил апач по инструкциям отсюда взял простенькии принт скрипт и в ответ получил ошибку 403 Forbidden, разрешения говорит к файлу нет. Перепробавал на всех 2 пользаватей на машине но ответ такой же.

Работаю с\на

Apache/2.0.54 (Win32)
ActivePerl 5.8.0.802 Beta
Windows 2000 profesioal


Всем большое спасибо.

dmitryst 13-10-2005 17:46 363999

N:I:C:K:O:L:A
Видно, он у вас вне cgi-bin лежит, или cgi-bin секция сконфигурирована неверно
Дайте ту часть конфига (httpd.conf) где cgi-bin описывается, помозгуем

N:I:C:K:O:L:A 14-10-2005 11:20 364209

Не совсем уверен то что вам нужно поэтому выложу кажую строску с упоминанием cgi-bin

ScriptAlias /cgi-bin/ "E:/Program Files/Apache Group/Apache2/cgi-bin/"


<Directory "E:/Program Files/Apache Group/Apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

там их оказалось всего две.

А что может лежать вне cgi-bin? и какие должны быть конфигурации у cgi-bin?

vadimiron 14-10-2005 11:45 364217

N:I:C:K:O:L:A
Ну а скрипт то лежит в cgi-bin папке?? то есть в E:/Program Files/Apache Group/Apache2/cgi-bin/ ??
Или вы выполнили пункт номер 2 из статьи, приведённой вами?? тогда скрипт должен выполнятся везде

dmitryst 14-10-2005 12:42 364243

N:I:C:K:O:L:A
1. Скрипт должен лежать в cgi-bin
2. в начале перловского скрипта должна быть строка - путь к perl.exe, например '#!c:/perl/perl.exe" ( + в переменные окружения надо добавить путь до перла)
3. а файловая система NTFS?

vadimiron 14-10-2005 12:44 364244

Цитата:

+ в переменные окружения надо добавить путь до перла
А это обязательно?? Это же вроде тольео для удобства нужно, но перл и без этого должен работать

benya 14-10-2005 13:01 364252

1) Можно и как в юниксе, что бы когда будете загружать на сервер не менять пути #!/usr/bin/perl
2) Да эта тема бессмысленна. Perl и Apache дружат по умолчанию. Главное правильно поставить.

N:I:C:K:O:L:A 14-10-2005 20:36 364371

насколько я понял из документации то апач автаматически обрабатывает файлы с именем index.cgi/pl/html

Но да в принцепе указал полный urs не чего не изменилось

benya 17-10-2005 11:02 364888

Не может такого быть. На win32 вообще элементарно апач установить. Ищите ошибки.

dmitryst 17-10-2005 12:40 364910

N:I:C:K:O:L:A
Точно не может. Вчера у себя смотрел - конфиг стандартный, все работает ;)


Время: 17:49.

Время: 17:49.
© OSzone.net 2001-