Forum Webscript.Ru
Программирование => Perl => Тема начата: metton от 19 Июля 2003, 00:51:52
-
...точнее, не самого Perl-а, а скриптов через броузер. Нестабильность состоит в том, что иногда Perl сам запускается при обращении к скрипту, а иногда даже если сам его запускаю, скрипт в браузере с локального сервера никак не хочет исполняться.
-
иногда Perl сам запускается при обращении к скрипту, а иногда даже если сам его запускаю, скрипт в браузере с локального сервера никак не хочет исполняться.
не кури больше эту дурь :)
скрипт в броузере не выполняется, он выполняется на сервере и отдает броузеру (клиенту) HTML-код.
Вообщем либо ты что-то не настроил либо не разобрался как все это работает
-
2Макс
скрипт в броузере не выполняется, он выполняется на сервере и отдает броузеру (клиенту) HTML-код
Оговорился.
Вообщем либо ты что-то не настроил либо не разобрался как все это работает
Что именно это может быть, не подскажешь?
-
Что именно это может быть, не подскажешь?
конечно нет. Я же не телепат.
Проблему опиши нормально, на языке программиста
Фраза иногда Perl сам запускается при обращении к скрипту, а иногда даже если сам его запускаю,
(если учесть что речь идет о CGI-скриптах) звучит как-то глуповато.
ЗЫ
Оговорился.
если хочешь получать ответы, продумывай вопросы заранее. Это ведь тебе надо
-
Есть файл index.html
В нём есть строчки:
В этих файлах только print-ы. Одно время они запускались нормально. Теперь же почему-то не пашут - при обращении к index.html выводится только html из этого файла и не выводится результат работы скриптов.
Фишка в том, что раньше он как-то сам запускался (я просто заходил на сайт на локальном сервере и всё работало), а теперь не так.
Если же пытаться запустить footer.pl отдельно - http://localhost/cgi-bin/footer.pl, то выдаётся Internal Server Error.
-
Ну наконец то ближе к делу.
Теперь назови ось, версию перл, версию вебсервера.
Или ты редактировал скрипт, и теперь он не хочет выполняться, или ты редактировал конфы вебсервера и он теперь не знает что такое перл, или дело в самом перле.
1) Попробуй, в режиме коммандонй страки, не выходя из Вынь, написать следующее:
c:\\путь_к_перл>perl -c g:\\путь_к_скрипту\\footer.pl
и запости сюда ответ перла.
2) создай файл следующего содержания:
#!/usr/bin/perl -w
use strict;
print "Content-type: text/html; Charset=windows-1251\\n\\n";
print "Всё ок.";
exit;
Назови его, например, test.cgi положи в папку с другими скриптами, и запусти из браузера.
О результатах докладАй сюда;)
-
2glebushka
1) e:\\internet\\home\\job\\mslu\\rwj\\cgi-bin\\footer.pl syntax OK
Я уже проверял до этого скрипт непосредственно в Перле - всё нормально.
Кстати, директива -с - это проверка синтаксиса, как я понял?
2) Internal Server Error
-
А вот так?
Замени #!/usr/bin/perl на #!perl.
Путь до перла в autoexec.bat прописан?
[OFF]У меня на локалхосте только Apache (It worked!):
А для каждого проекта завожу виртуальный сервер - httpd.conf:
NameVirtualHost 127.0.0.2
ServerName 127.0.0.2
ServerAdmin root@localhost
DocumentRoot "d:/home/project/WWW"
ScriptAlias /cgi-bin/ "d:/home/project/cgi-bin/"
ErrorLog d:/home/project/error.log
CustomLog d:/home/project/access.log common
[/OFF]
-
metton а что логи апачей по поводу Internal Server Error говорят ?
У тебя вообще e:/usr/bin/perl.exe - существует ?
-
2Wyclef
autoexec.bat вообще пустой... (как прописать этот путь, в смысле, как указать, чтобы "компьютеру было понятно", что этот путь именно к Перлу?)
Насчёт виртуальтных хостов - у меня всё то же самое.
2Макс
Файл существует, но по адресу С:/usr/bin/perl.exe. Чуть выше написано, что я скрипт проверял свой скрипт на ошибки в синтаксисе.
Из разных записей в тему нашёл там такие:
[Sun Jul 20 03:18:03 2003] [error] [client 127.0.0.3] attempt to invoke directory as script: e:/internet/home/job/mslu/rwj/cgi-bin
[Sun Jul 20 15:31:08 2003] [error] [client 127.0.0.3] (2)No such file or directory: couldn\'t spawn child process: e:/internet/home/job/mslu/rwj/cgi-bin/footer.pl
Ошибка о несуществующем файле или директории очень странна. Всё на месте - проверял.
Ещё вопрос по Apache:
Среди программ, загружающихся при старте системы, Apache я не нашёл, а он всё же запускается, причём от системы и убить процесс нельзя. Как это изменить и как он вообще запускается?
И ещё: когда запускаю батник с таким содержанием:
Apache.exe -k shutdown
то убивается только процесс, запущенный вручную, а тот который был создан при старте системы, выдаёт сообщение, что
Cannot read apache PID file c:/program files/apache group/apache/logs/httpd.pid
Этот самый pid появляется только если запускать Apache вручную. Что это за файл и почему его нет когда нужно (:insane: ) ?
-
metton
Файл существует, но по адресу С:/usr/bin/perl.exe.
на диске e:\\ пробовал создавать такие папки или скрипты на диск C:\\ перенести
-
metton:
как прописать этот путь
Например, у меня так:
SET PATH=C:\\Perl\\;C:\\Perl\\5.6.0\\bin;C:\\Perl\\5.6.0\\bin\\MSWin32-x86;C:\\openssl\\bin
Под виндой в начале скриптов пишу просто #!perl.
Apache я не нашёл, а он всё же запускается, причём от системы и убить процесс нельзя
В w2k (если Apache работает как служба) убить можно в "Панели управления -> Администрирование -> Службы".
-
Проверь в конфиге апачи следующие параментры...
- расширения Perl скриптов (по умолчанию только .cgi)
AddHandler cgi-script .cgi .pl
- настройка SSI:
1. Вообще SSI
Options Indexes Includes ExecCGI
Options +Includes ExecCGI
Options FollowSymLinks
AllowOverride None
2. Посмотри в какой папке "парсятся" "инклюды"
Options +Includes ExecCGI
3. В каких файлах (с каким расширением) "парсить" SSI
AddType text/html .shtml
AddHandler server-parsed .shtml .shtm
Потом поробуй еще раз запустить все...
-
2Макс
на диске e:\\ пробовал создавать такие папки или скрипты на диск C:\\ перенести
То есть хочешь сказать, что работает только когда и скрипт и интерпретатор расположены на одно диске? Хотелось бы сделать, чтобы работало с такой структурой, которая есть сейчас, да и работало.
Есть соображения?
2Wyclef
Например, у меня так:
SET PATH=C:\\Perl\\;C:\\Perl\\5.6.0\\bin;C:\\Perl\\5.6.0\\bin\\MSWin32-x86;C:\\openssl\\bin
А теперь не мог бы ты, пожалуйста, к чему ведут все эти пути(большинство мне непонятны), чтобы я смог перенести это себе?
В w2k (если Apache работает как служба) убить можно в "Панели управления -> Администрирование -> Службы".
Вот за это спасибо! :)
2Phoinix
- расширения Perl скриптов (по умолчанию только .cgi)
AddHandler cgi-script .cgi .pl
У меня: AddHandler cgi-script .bat .exe .pl .cgi
настройка SSI
Это опечатка или тут действительно замешан SSI?
1. Вообще SSI
Это у меня закомментировано: (кстати, что это?)
#
# Options FollowSymLinks
# AllowOverride None
#
И ещё вот это: (а это что?)
Options Indexes FollowSymLinks ExecCGI
# Options Indexes Includes
AllowOverride All
Allow from all
2. Посмотри в какой папке "парсятся" "инклюды"
Options +Includes ExecCGI
Это?
DirectoryIndex index.htm index.html index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
-
metton
Есть файл index.html
В нём есть строчки:
А как ты думаешь, что это такое?
Что-то у тебя с конфигом нездоровье какое-то....
Вообщем - , это какие "примочки" Apache ты применяешь к определенной папке... а на каком диске у тебя хосты находятся?
Apache.exe -k shutdown
У меня вообще-то:
Apache.exe -w -n "Apache" -k stop
-
metton
C:\\Perl\\ - путь до библиотек Berkeley DB (libdb.dll, libdb.lib, zlib.dll, zlib.lib) - для корректной работы
C:\\Perl\\5.6.0\\bin - путь до утилит (perldoc.bat, pod2html.bat и т.д.)
C:\\Perl\\5.6.0\\bin\\MSWin32-x86 - путь до бинарников перла (perl.exe, make.exe и т.д)
C:\\openssl\\bin - путь до OpenSSL (может тебе и не надо)
[off]...дааа, бардак там у тебя :)[/off]
-
2Phoinix
Вообщем - , это какие "примочки" Apache ты применяешь к определенной папке
Я так понял, что эти "примочки" применяются к папке, путь к которой идёт после слова Directory. Тогда что значит просто / ? Это относится ко всем папкам?
а на каком диске у тебя хосты находятся?
Тут у меня осталась настройка со старого компа, на котором они были на Z. Теперь на E. Исправил, но на положение дел это не повлияло...
2Wyclef
C:\\Perl\\ - путь до библиотек Berkeley DB (libdb.dll, libdb.lib, zlib.dll, zlib.lib) - для корректной работы
В папке c:\\usr (и во всех поддиректориях), в которую я устанавливал Perl, таких библиотек я не нашёл... Где они могут быть?
...дааа, бардак там у тебя
Это естественно. Все же начинают с незнания. Вот пока я не знаю, у меня и бардак. Надеюсь, что тут мне помогут разобраться.
ЗЫ: забыл сказать конфигурацию:
W2K Server
Apache 1.3.23
ActivePerl, если верить файлу perl5.8.0.exe, версия 5.8.0
ЗЗЫЫ:
У меня в папке bin (где бинарники Perl) лежит такой батник: runperl.bat
При попытке его запустить через окошко терминала выдаётся следующее: `runperl\' not found.
Почему так и что это за файл? (Когда начались проблемы и я лазил по папкам Перла, я наткнулся на него, а так как название у него вполне недвусмысленное, попытался запуститью)
-
В папке c:\\usr (и во всех поддиректориях), в которую я устанавливал Perl, таких библиотек я не нашёл... Где они могут быть?
Может тебе все это и не нужно...
У меня не ActivePerl как таковой (и слава богу :)) - юзаю пакет который вообще не требует инсталяции.
[off]Здесь (http://forums.webscript.ru/showthread.php?s=&postid=84036#post84036), я говорил какой и что в себя включает.[/off]
-
2Phoinix
Вообщем - , это какие "примочки" Apache ты применяешь к определенной папке
Я так понял, что эти "примочки" применяются к папке, путь к которой идёт после слова Directory. Тогда что значит просто / ? Это относится ко всем папкам?
а на каком диске у тебя хосты находятся?
Тут у меня осталась настройка со старого компа, на котором они были на Z. Теперь на E. Исправил, но на положение дел это не повлияло...
2Wyclef
У меня не ActivePerl как таковой (и слава богу ) - юзаю пакет который вообще не требует инсталяции.
Вопрос ко всем: в инете распространён пакет ДЕНВЕР. Каково ваше мнение по его поводу? Стоит ли его устанавливать?
-
ftp://theoryx5.uwinnipeg.ca/pub/other/ (http://ftp://theoryx5.uwinnipeg.ca/pub/other/)
perl-win32-bin-0.10.readme
This is a binary distribution for Win32 of Perl 5.6.1 and Apache 1.3.27,
together with mod_perl-1.27, mod_ssl / OpenSSL (0.9.7b), and php-4.3.2, all built with VC++ 6.0 (SP5). Also included are some popular non-core module packages such libnet, libwww-perl, Tk, and DBI. Perl was built using the sources for build 635 provided by ActiveState.
Perl-5.8-win32-bin.readme
This is a binary distribution for Win32 of Perl 5.8.0 and Apache 2.0.46, together with mod_perl-1.99, mod_ssl / OpenSSL (0.9.7b), and php-4.3.2, all built with VC++ 6.0 (SP5). Also included are some popular non-core module packages such libnet, libwww-perl, Tk, and DBI. Perl was built using the sources of build 806 provided by ActiveState.
И т.д.
[off]З.Ы. Стабильная работа под мелкософтом проверена :) (по крайней мере предыдущих версий)[/off]
-
metton
Это относится ко всем папкам?
Да ко всем.
Не знаю, у меня стоит ActivePerl 5.8.0. я его юзаю спокойно, единственная проблема возникла при установке модулей из локальной папки, только из инета ставяться, ну еще если скрипт "корявый" запускаю, процесс потом фиг удалишь...
-
metton:
Ошибка о несуществующем файле или директории очень странна. Всё на месте - проверял.
в этом случае самая распостраненная ошибка новичков - это когда файлы при переносе меняют свой РеГиСтР...
кстати, при проверке может еще и программа просмотра показывать нормально (если стоит напрмер показывать "все с маленьких")
а вообще скентовался бы с кем то и дал доступ что б кто то посмотрел что там у тебя ))
-
Yaroslav
Это если только не под Win...
под Win регистр и наклон слеша не имеет никакого значения...
-
metton:
ActivePerl, если верить файлу perl5.8.0.exe, версия 5.8.0
А ты уверен, что ты его ставил в папку e:/usr ?
Может все-таки e:/Perl ? Потому что ActivePerl по умолчанию хочет ставиться в папку Perl.
-
2Phoinix
Насчёт модулей у меня тоже была большая запарка. Даже тему на форуме создавал. В итоге десятки ответов и ни одного для реального решения проблемы.
В итоге знакомый подсказал, что нужно 2-ым (а не 3-им) ppm-ом устанавливать...
А вот насчёт папки - я писал, что Perl у меня установлен в C:\\usr, соответственно, бинарники - C:\\usr\\bin
2Yaroslav
в этом случае самая распостраненная ошибка новичков - это когда файлы при переносе меняют свой РеГиСтР
ЛЮДИ! Вы меня совсем за идиота держите?!! (Один говорит, что я положение Перла установить не могу, хотя я писал, где он у меня находится; другой про РеГиСтР.) Да нормально всё с регистром, тем более, в винде насколько я знаю (да и Phoinix говорит то же самое), регистр по барабану.
ЕЩЁ РАЗ ОБРАЩАЮ ВНИМАНИЕ: Perl установлен в C:\\usr
-
metton
Чета я совсем запутался...
Если у тебя Perl стоит в C:/usr, то в заголовке скрипта соответственно должно быть:
#!c:/usr/bin/perl
Во всей теме данного выражения не попадалось, только...
#!e:/usr/bin/perl
#!usr/bin/perl
и просто
#!perl
Так какой заголовок все-таки у тебя????
-
2Phoinix
У меня стоял #!usr/bin/perl
Перепробовал все перечиленные тобой...
Ни один не дал положительного эффекта, даже #!c:/usr/bin/perl
ПОМОГИТЕ!!!
-
metton
вначале ты писал, что у тебя перл нестабильно работает, теперь похоже он у тебя вообще не работает.
Апач, простые ХТМЛ страницы и SSI у тебя нормально запускаются ? А http://localhost/cgi-bin/a.html - нормально отрабатывает (если туда a.html положить) ?
У тебя есть строка типа :
ScriptAlias /cgi-bin/ "C:/www/cgi-bin/"
в httpd.conf ?
-
metton
Тогда мы долго будем ходить вокруг да около, может проще выложить куда-нибудь зазипованый конфиг апачи, файл хостов, скрипт который не работает, и readme.txt с путями где что у тебя находится...
Ибо или вопрос неправильно поставлен, или ошибок такая куча, что решив одну, остальные все равно не дают работать...
Если что, кидай на мыло phoinix@pyaticom.ru (phoinix@pyaticom.ru) или стучись в асю - 3311414
-
Всем спасибо! Всё заработало... после сноса окошек (сносил не по этому поводу) и переустановки всех компонетов.