Apache-2.2

縮小來自 perl Web 應用程序的伺服器發佈在 ec2 上失敗的原因

  • January 13, 2013

**更新:**我更正了以下權限問題,並且可以讀取 dancer 生成的日誌文件。有一個小程式碼錯誤,已修復。所以現在日誌什麼都沒有顯示,但我的 POST 請求仍然只是默默地失敗!:'(

更新 2:我通過僅授予寫入權限來修復它/srv/www/domain.com/MyApp/logs

我有:

  1. 帶有 Amazon Linux AMI 的 amazon-ec2 實例。
  2. 它有 apache2,在 cgi 上執行 perl dancer 應用程序,如此處所述

我有使用 github API 進行 OAuth 的程式碼。在我的機器上執行良好,但最終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 行對其進行 chmod。

但是我的 /bin 目錄是可寫的!並且適用於所有人!

  • 我怎麼知道這裡到底發生了什麼?我會在某處查看其他日誌嗎?
  • amazon-ec2 會阻止傳出的文章嗎?似乎沒有我可以在安全組中設置的任何出站規則?

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

bin目錄設置的權限是什麼?

無論使用者正在執行您的 perl 腳本,都需要對該日誌目錄具有讀/寫權限。

你可以chmod像這樣的目錄(字面意思是“改變模式”)chmod +600 /srv/www/domain.com/MyApp/bin

最好將您的日誌目錄放在預期/var/log/MyApp的位置,但這不是重點。‘var’ 用於’可變數據’,如日誌。;-)

引用自:https://serverfault.com/questions/464400