ApacheサーバーでPerlとCGIを使用して、アプリケーションのログファイルを作成しようとしました。このため、スクリプトはログファイルを保持する必要があります。ログファイルは、スクリプトの開始時に開く必要があります。 Unable to open the file: Permission denied at /usr/lib/cgi-bin/generate_logs.cgi
、以下のようにスクリプトが行く:ファイルを開く際の権限の問題 - CGIのPerl
#!/usr/bin/perl
use CGI qw(:standard);
print "Content-type: text/plain\n\n";
...
open (my $logs, ">", "/path/to/directory/logs.txt") || die "Unable to open the file: $!";
...
私は~/Desktop
のように、.txt
ログファイルのroot以外のパスを使用しようとしてきたが、それでもスクリプトが作成することはできません私が手ログから/ openファイルを開きます。より多くの情報が必要な場合は、お気軽にお問い合わせください。事前に感謝します
ファイルのUID:GIDとは何ですか?また、Webサーバーとして機能するユーザーの名前は何ですか。 – stevieb
@stevieb、多分私は間違っていますが、スクリプトがそれを開こうとするときにファイルが存在しなければ作成されるはずのファイルではありませんか? – tulians
あなたの質問は何ですか?エラーが示すように、スクリプトが実行されるuser +グループには '/ path/to/directory'にファイルを作成する権限がありません。別のユーザー+グループを使用するようにApacheを構成するか、既存のユーザー+グループがディレクトリにアクセスしてファイルを作成できるようにアクセス許可を変更します。 – ikegami