Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: запуск скриптов
 
 автор: axe79   (07.02.2010 в 12:31)   письмо автору
 
 

Всем привет.
Есть небольшая проблемма.

Установил апач2
пакеты
apache2-cgi-bin - cgi-bin for Apache
apache2-cgi-bin-printenv - cgi-bin/printenv for Apache
apache2-cgi-bin-test-cgi - cgi-bin/test-cgi for Apache


моды
cgi и perl включены

так вот test-cgi и printenv запускаются
а свой скрипт нет.

задача запустить хотябы простейший скрипт на perl

  Ответить  
 
 автор: axe79   (08.02.2010 в 00:08)   письмо автору
 
   для: axe79   (07.02.2010 в 12:31)
 

Что интересно при изменении содержания test-cgi dslf`n ne ;t cfve. jib,re xnj b ghb pf vecrt vjtuj crhbgnf
Server error!

The server encountered an internal error and was unable to complete your request.

Error message:
Premature end of script headers: m

If you think this is a server error, please contact the webmaster.
Error 500
192.168.0.7
Sun Feb 7 23:07:38 2010
Apache/2.2.14 (Unix) mod_perl/2.0.4 Perl/v5.8.9

  Ответить  
 
 автор: Тень&   (08.02.2010 в 01:08)   письмо автору
 
   для: axe79   (08.02.2010 в 00:08)
 

Покажи сам скрипт

  Ответить  
 
 автор: axe79   (08.02.2010 в 10:20)   письмо автору
 
   для: Тень&   (08.02.2010 в 01:08)
 

#!/usr/bin/perl
use CGI;
use strict;

print header;
print "<B>Hello, World!</B>";

  Ответить  
 
 автор: .heed   (08.02.2010 в 13:32)
 
   для: axe79   (08.02.2010 в 10:20)
 

какая ОС ?

>#!/usr/bin/perl

/usr/bin/perl должен соответствовать

и смотрите что пишется в error.log

вместо
use CGI;
print header;

можно попробовать просто
print "content-type: text/plain\n\n"

  Ответить  
 
 автор: axe79   (08.02.2010 в 15:08)   письмо автору
 
   для: .heed   (08.02.2010 в 13:32)
 

оська линь

путь к интерпритатору соответствует точно потому что test-cgi тот же самый перл

вот выволд ерор_лога

[Sun Feb 07 23:50:45 2010] [error] [client 192.168.0.7] Premature end of script headers: t
[Mon Feb 08 09:27:25 2010] [error] [client 192.168.0.7] File does not exist: /var/www/html/favicon.ico
[Mon Feb 08 09:27:28 2010] [error] [client 192.168.0.7] File does not exist: /var/www/html/favicon.ico
[Mon Feb 08 12:22:19 2010] [error] [client 192.168.0.7] String found where operator expected at /var/www/cgi-bin/t line 12, near "ptint "GOOD WORK""
[Mon Feb 08 12:22:19 2010] [error] [client 192.168.0.7] \t(Do you need to predeclare ptint?)
[Mon Feb 08 12:22:19 2010] [error] [client 192.168.0.7] syntax error at /var/www/cgi-bin/t line 12, near "ptint "GOOD WORK""
[Mon Feb 08 12:22:19 2010] [error] [client 192.168.0.7] Unmatched right curly bracket at /var/www/cgi-bin/t line 12, at end of line
[Mon Feb 08 12:22:19 2010] [error] [client 192.168.0.7] Execution of /var/www/cgi-bin/t aborted due to compilation errors.
[Mon Feb 08 12:22:19 2010] [error] [client 192.168.0.7] Premature end of script headers: t
[Mon Feb 08 14:01:10 2010] [error] [client 192.168.0.7] syntax error at /var/www/cgi-bin/m line 6, near "print"
[Mon Feb 08 14:01:10 2010] [error] [client 192.168.0.7] Execution of /var/www/cgi-bin/m aborted due to compilation errors.
[Mon Feb 08 14:01:10 2010] [error] [client 192.168.0.7] Premature end of script headers: m
[Mon Feb 08 14:01:35 2010] [error] [client 192.168.0.7] syntax error at /var/www/cgi-bin/m line 6, near "print"
[Mon Feb 08 14:01:35 2010] [error] [client 192.168.0.7] Execution of /var/www/cgi-bin/m aborted due to compilation errors.
[Mon Feb 08 14:01:35 2010] [error] [client 192.168.0.7] Premature end of script headers: m
[Mon Feb 08 14:01:37 2010] [error] [client 192.168.0.7] syntax error at /var/www/cgi-bin/m line 6, near "print"
[Mon Feb 08 14:01:37 2010] [error] [client 192.168.0.7] Execution of /var/www/cgi-bin/m aborted due to compilation errors.
[Mon Feb 08 14:01:37 2010] [error] [client 192.168.0.7] Premature end of script headers: m


скрипт
#!usr/bin/perl
print "content-type: text/plain\n\n"

не выдаёт ошибки выдаёт просто пустую страницу
наверное всё работает но я пишу не правильно
есл не тяжело подкинте простенький CGI cкрипт на несколько строк

  Ответить  
 
 автор: axe79   (08.02.2010 в 15:10)   письмо автору
 
   для: axe79   (08.02.2010 в 15:08)
 

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

  Ответить  
 
 автор: heed   (08.02.2010 в 13:38)   письмо автору
 
   для: axe79   (08.02.2010 в 10:20)
 

>моды cgi и perl включены
mod_perl в принципе не используется совсем, если скрипт запускается mod_cgi

// стормозил :) было-же написано что Unix :)

смотрите в error.log
и там с правами на cgi-bin , и на сами файлы скриптов нужно разбираться в unix

у меня под win32 строчка #!/usr/loca/perl/bin/perl.exe не нужна совсем, если скрипты интерпритирует mod_perl

  Ответить  
 
 автор: heed   (08.02.2010 в 15:42)   письмо автору
 
   для: axe79   (07.02.2010 в 12:31)
 

вывод текущей дирректории
###!/usr/bin/perl -W 
#<?
print "Content-Type: text/html\n\n";
my $dir ".";

opendir FDIR$dir
while(
my  $name readdir FDIR
#next if -d $name;
print("<a href='$name'>$name</a><br>\n"); 

closedir FDIR;

у меня это #!/ закомментировано
потомучто в конфиге такое


PerlModule ModPerl::ROCK

<Location /perl-status>
      SetHandler modperl
      PerlOptions +GlobalRequest
      PerlResponseHandler Apache2::Status
</Location>

Alias /cgi-glob/ "/home/cgi-glob/"
# общая для всех виртуальных хостов
<Location "/cgi-glob/">

#    AddHandler perl-script .pl
    SetHandler perl-script

    PerlResponseHandler ModPerl::ROCK
#    PerlHandler ModPerl::Registry

  PerlOptions +ParseHeaders -GlobalRequest
  PerlSetupEnv On
    Options ExecCGI FollowSymlinks 
</Location>
первая строчка нужна только для того чтобы показывало в /perl-status

, а ModPerl::ROCK это я просто скопировал файл apache/ModPerl/Registry.pm в файл ROCK.pm
и заменил там
chdir_file => 'chdir_filel',
на
chdir_file => 'chdir_file_normal',

потомучто рабочим каталогом для скриптов оказывается тот из которого запустили apache
, и глобально изменялся для всех скриптов при каждом chdir


// забыл сказать добавил там ещё вначале
package ModPerl::ROCK;
 
 BEGIN { unshift @INC, '.', '/usr/local/perl/lib', '/usr/local/perl/site/lib'; }


// upd
и делал небрежно так всё, мне главное было просто тестить
, там возможностей многовато,нужно читать, я половину ещё и не понял

////upd
правда не знаю чем может отличаться , у меня такая строчка
Apache/2.2.11 (Win32) mod_fcgid/2.3.4 DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i SVN/1.6.6 mod_ftp/0.9.6 PHP/5.2.11-dev mod_perl/2.0.4 Perl/v5.10.0

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования