Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простой вопрос, Как выполнить на хосте .pl? 
:(
    Опции темы
RYB
Дата 10.5.2007, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



Вот так случилось, что мне пришлось "поработать" с перлом (найти и запустить прогу на хосте).
Есть скрипты, один из которых главный.
Я понимаю что вопрос не из ряда умных, но:

как выполнить этот скрипт??

И вообще pl и cgi файлы отличаються?

P.S.
На самом хосте я пробовал следущее: указал pl как cgi, но во время выполнения появилась 500-я ошибка сервера.


PM MAIL WWW   Вверх
nitr
Дата 10.5.2007, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



тут все перебрали (все варианты незапуска скриптов)
http://forum.vingrad.ru/forum/topic-149280...риптов-cgi.html


--------------------
PM   Вверх
RYB
Дата 10.5.2007, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



Скажи, nitr, а если даже перл скрипт аля твоя подпись не работает?
PM MAIL WWW   Вверх
nitr
Дата 10.5.2007, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



RYB, таааааак... снова начинается...
прочел весь топик? Хоть понял чего там писали? Аля моя подпись - НЕ-CGI-скрипт!
Код

#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print '<html><body><h1> :) </h1></body></html>';

и проверь все пункты!!! я перечислил более разпространенные, остальное уже нюансы, которые разбирают отдельно. В том посте все описано. Да и ещё - а вообще перл есть? smile) и Апач настроен? smile


--------------------
PM   Вверх
RYB
Дата 11.5.2007, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



Перл есть, апач настроен(правда я не знаю как), так как хост находится на ho.com.ua.
Код

#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print '<html><body><h1> :) </h1></body></html>';

Тоже не работает  smile 

PM MAIL WWW   Вверх
Nab
Дата 11.5.2007, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



1. Если на ho.com.ua, то файл должен и иметь расширение .cgi, права 755б должен быть расположен в cgi-bin, а не в htdocs...
У себя в панели можно включить ведение логов, и они будут находиться в каталоге logs.

2. Ответ 
Цитата(RYB @  11.5.2007,  11:36 Найти цитируемый пост)
Тоже не работает  smile
, на этом форуме боюсь не прокатит, нужно как минимум привести ошибку выдаваемую броузером и желательно логи сервера, 
также желательно привести строку которой вызывали скрипт, ну и опишите что из первого пункта сделано smile



--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
RYB
Дата 11.5.2007, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



С ошибкой запуска cgi простого скрипа я уже разобрался:
Код

#!/usr/bin/perl -wT
print "Content-type: text/html\n\n";
print '<H1>hello</H1>';

При этом разницы нет в какой папке скрипт находиться.
 smile 

А как запустить программу, которая состоит из pl файлов в браузере на выполнение?  smile 

Это сообщение отредактировал(а) RYB - 11.5.2007, 19:12
PM MAIL WWW   Вверх
korob2001
Дата 11.5.2007, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Попробуй так:
http://your_domain.ru/cgi-bin/script.cgi

Разумеется вместо your_domain и script.cgi подставь свои значения.

PS:
Модератор: Название темы должно отражать суть вопроса.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
RYB
Дата 11.5.2007, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



Цитата

Попробуй так:
http://your_domain.ru/cgi-bin/script.cgi

Разумеется вместо your_domain и script.cgi подставь свои значения.


Спасибо, такое тоже работает.

А как быть с pl?
Как его переделать в сgi?

Код

#!/usr/bin/env perl

use strict;
use FindBin qw($RealBin);
use lib "$RealBin";
use lib "$RealBin/src";
use lib "$RealBin/src/deps";

use Time::HiRes qw(time usleep);
use Carp::Assert;


sub __start {
    use ErrorHandler;
    use XSTools;
    srand();


    ##### BASIC INITIALIZATION #####

    use Translation;
    use Settings qw(%sys);
    use Utils::Exceptions;

    eval "use OpenKoreMod;";
    undef $@;
    parseArguments();
    Settings::loadSysConfig();
    Translation::initDefault(undef, $sys{locale});

    use Globals;
    use Interface;
    $interface = Interface->loadInterface($Settings::default_interface);
    selfCheck();


    ##### LOAD OPENKORE MODULES #####

    use Utils::PathFinding;
    require Utils::Win32 if ($^O eq 'MSWin32');
    require 'functions.pl';

    use Modules;
    use Log;
    use Utils;
    use Plugins;
    use FileParsers;
    use Network::Receive;
    use Network::Send ();
    use Commands;
    use Misc;
    use AI;
    use AI::CoreLogic;
    use AI::Attack;
    use Skills;
    use Actor;
    use Actor::Player;
    use Actor::Monster;
    use Actor::You;
    use Actor::Party;
    use Actor::Portal;
    use Actor::NPC;
    use Actor::Pet;
    use Actor::Unknown;
    use ActorList;
    use Interface;
    use ChatQueue;
    use TaskManager;
    use Task;
    use Task::WithSubtask;
    use Task::TalkNPC;
    use Utils::Benchmark;
    use Utils::HttpReader;
    use Utils::Whirlpool;
    use Poseidon::Client;
    Modules::register(qw/Utils FileParsers
        Network::Receive Network::Send Misc AI AI::CoreLogic
        AI::Attack AI::Homunculus Skills
        ChatQueue Actor Actor::Player Actor::Monster Actor::You
        Actor::Party Actor::Unknown Actor::Item Match Utils::Benchmark/);


    ##### MAIN LOOP #####
    # Note: Further initialization is done in the mainLoop() function in functions.pl.

    Benchmark::begin("Real time") if DEBUG;
    $interface->mainLoop();
    Benchmark::end("Real time") if DEBUG;

    main::shutdown();
}

# Parse command-line arguments.
sub parseArguments {
    eval {
        if (!Settings::parseArguments()) {
            print $Settings::usageText;
            exit 1;
        }
    };
    if (my $e = caught('IOException', 'ArgumentException')) {
        print "Error: $e\n";
        if ($e->isa('ArgumentException')) {
            print $Settings::usageText;
        }
        exit 1;
    } elsif ($@) {
        die $@;
    }
}

# Perform some self-checks to ensure everything is OK.
# Precondition: $interface is initialized.
sub selfCheck {
    use Globals qw($interface);

    if ($^O eq 'MSWin32' && !defined(getprotobyname("tcp"))) {
        $interface->errorDialog(TF(
            "Your Windows TCP/IP stack is broken. Please read\n" .
            "  %s\n" .
            "to learn how to solve this.",
            "http://www.visualkore-bot.com/faq.php#tcp"));
        exit 1;
    }

    # If Misc.pm is in the same folder as openkore.pl, then the
    # user is still using the old (pre-CVS cleanup) source tree.
    # So bail out to prevent weird errors.
    if (-f "$RealBin/Misc.pm") {
        $interface->errorDialog(T("You have old files in the OpenKore folder, which may cause conflicts.\n" .
            "Please delete your entire OpenKore source folder, and redownload everything."));
        exit 1;
    }

    if (!defined &XSTools::majorVersion) {
        $interface->errorDialog(TF("Your version of the XSTools library is too old.\n" .
            "Please read %s", "http://www.openkore.com/aliases/xstools.php"));
        exit 1;
    } elsif (XSTools::majorVersion() != 4) {
        $interface->errorDialog(TF("Your version of XSTools library is incompatible.\n" .
            "Please read %s", "http://www.openkore.com/aliases/xstools.php"));
        exit 1;
    } elsif (XSTools::minorVersion() < 3) {
        $interface->errorDialog(TF("Your version of the XSTools library is too old. Please upgrade it.\n" .
            "Please read %s", "http://www.openkore.com/aliases/xstools.php"));
        exit 1;
    }
}

sub shutdown {
    Plugins::unloadAll();
    # Translation Comment: Kore's exit message
    Log::message(T("Bye!\n"));
    Log::message($Settings::versionText);

    if (DEBUG && open(F, ">:utf8", "benchmark-results.txt")) {
        print F Benchmark::results("mainLoop");
        close F;
        print "Benchmark results saved to benchmark-results.txt\n";
    }
}

__start() unless defined $ENV{INTERPRETER};



PM MAIL WWW   Вверх
korob2001
Дата 11.5.2007, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Измени расширение c .pl на .cgi
Какое расширение использовать зависит от настроек сервера, на некоторых серверах вообще можно расширение не ставить.
Но и с тем и другим расширением скрипт может быть CGI приложением.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
RYB
Дата 11.5.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



Я менял разширение, добавлял в настройки сервера распознание pl как cgi, но результат один:
Ошибка на сервере 500.

Такое было даже с 
Код

#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print '<html><body><h1> :) </h1></body></html>';


 но в коде:
Код

#!/usr/bin/perl -wT
print "Content-type: text/html\n\n";
print '<H1>hello</H1>';

ошибок нет.

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

Скажите, какой заголовок написать?
Я пробовал 
Код

#!/usr/bin/perl -wT
print "Content-type: text/html\n\n";
...

но это не пошдошло.
PM MAIL WWW   Вверх
nitr
Дата 11.5.2007, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



RYB, вообще запустите perl -w имя_скрипта.cgi, исходник которого вы указали выше... думаю у вас такие же проблемы, что и у человека, пост которого я давал выше...
Напишите ответ... что выдала данная команда.


--------------------
PM   Вверх
nitr
Дата 11.5.2007, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



RYB, выложи логи...

Добавлено через 1 минуту и 15 секунд
сначала перечитай этот пост сначала ;)


--------------------
PM   Вверх
RYB
Дата 11.5.2007, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



Я закачал Active Perl, запустил эту прогу - она работает (правда говорит что не может открыть кофиг файл, но это уже мелочи).




Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  listing.txt 5,16 Kb
PM MAIL WWW   Вверх
nitr
Дата 11.5.2007, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Цитата(nitr @  11.5.2007,  21:45 Найти цитируемый пост)
сначала перечитай этот пост сначала ;)

я это незря сказал, не кажется ? smile
Так вот, Nab, сказал где там на хостинге можно глянуть логи... их выложить стоит, чтобы помогли, а то телепатия тут не практикуется (к сожалению smile)) )


--------------------
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1008 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.