Назад | Перейти на главную страницу

сужение, почему сообщение сервера из веб-приложения Perl не работает на ec2

Обновить: Я исправил проблему с разрешениями ниже, и я могу читать файлы журнала, которые генерирует танцор. Исправлена ​​небольшая ошибка кода. Итак, теперь журналы ничего не отображают, но мой запрос POST по-прежнему просто терпит неудачу! : '(

Обновление 2 : Я исправил это, просто предоставив права на запись /srv/www/domain.com/MyApp/logs

У меня есть:

  1. Экземпляр amazon-ec2 с AMI Amazon Linux.
  2. У него есть apache2, запускающее приложение танцора Perl на cgi как описано здесь.

У меня есть код, выполняющий OAuth с API github. Отлично работает на моей машине, но финальный POST не работает амазонка.

Это может показаться вопросом разработчика, но я новичок в системном администраторе linux и мне нужны подсказки, как мне следует сузить мою проблему.

Это мой код:

my $browser                = LWP::UserAgent->new;
#alteast from the browser, seems like this POST never happens.
my $resp                   = $browser->post($github_post_url,
[
 client_id                  => $client_id,
 client_secret              => $client_secret, 
 code                       => $code,
 state                      => $state
]);
die "error while fetching: ", $resp->status_line
unless $resp->is_success;

my %querystr = parse_query_str($resp->decoded_content);
my $acc = $querystr{access_token};

if($acc) {
        #code to retrive access token...
    redirect $github_auth_success;
    return;
} 
    return redirect "/fail";#<<< THIS HAPPENS

Журналы отсюда (tail /srv/www/domain.com/logs/error.log) для этого приложения говорят:

каталог журналов /srv/www/domain.com/MyApp/bin/ .. не доступен для записи / исполняемого файла и не может изменить его в /usr/local/share/perl5/Dancer/Logger.pm, строка 16.

Но мой каталог / bin доступен для записи! И исполняемый для всех!

ls -al /srv/www/domain.com/MyApp/

Какие разрешения установлены на bin каталог?

Какой бы пользователь ни запускал ваш Perl-скрипт, он должен иметь доступ для чтения / записи к этому каталогу журнала.

Ты можешь chmod каталог (буквально "режим изменения") вот так chmod +600 /srv/www/domain.com/MyApp/bin

Лучше поместить каталог журналов в ожидаемое место, например /var/log/MyApp но это не относится к делу. 'var' означает 'переменные данные', например журналы. ;-)