Perlからbashのファイルを呼び出そうとしています。
sendmail2.cgiは、呼び出せていまが、
sendmail3.cgiは、呼び出せません。
bashのファイル自体は、./(bashファイル)とやると実行できます。
パーミッションは、
sendmail3.cgi 655
mail_plain.sh 755
sendmail2.cgi 705
mailsend.sh 705
です。
パスの設定の問題かとも思ったのですが、よくわかりません。
宜しくお願いします。
===sendmail2.cgi=============
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<P>sendmail test</P>\n";
print "mailtest\n";
print "</HTML>\n";
exec('/home/httpd/wwwroot/yoshida/mailsend.sh');
exit(0);
==============================
===sendmail3.cgi=============
#!/usr/bin/perl
exec("/home/httpd/wwwroot/bbstest/mail_plain.bash");
exit(0);
==============================
No.3ベストアンサー
- 回答日時:
#2 です。
問題の原因が
a. mail_plain.bash が起動出来ないのか
b. mail_plain.bash の内部で問題が発生しているのか
のどちらなのかを調査されてみてはいかがでしょうか?
上記のいずれかによって対策も変わってくるのではないかと思います。
例えば、以下の様なスクリプトを流してみるとか...
#!/usr/bin/perl
my(@buf);
my($rc);
unless( open S, '/home/httpd/wwwroot/bbstest/mail_plain.bash 2>&1|' ) {
print "Status: 500 ERROR\n";
print "Content-Type: text/plain\n\n";
print "ERROR.\n";
exit(0);
}
@buf = <S>;
close S;
$rc = $?;
print "Status: 200 OK\n";
print "Content-Type: text/plain\n\n";
print "exit status = ",$rc,"\n";
print @buf;
exit(0);
具体的なアドバイスを頂き有難うございます。
上のものを試してみたら、
exit status = 512
Can't create temporary directory!
でした。
mail_plain.bashで作業用のディレクトリを作るようにしていたのですが、そこがうまくいってなかったんですね。
Perlの質問する場所なのに、シェルが原因だったなんて、勉強不足でした。
大変お世話になりました。
No.4
- 回答日時:
#1です。
成る程。ではこれでどうですか?
("sh /home/httpd/wwwroot/bbstest/mail_plain.bash");
アドバイス頂いておいて、大変恐縮なのですが、
原因はシェル側でした。
シェルをそのまま実行した際、見かけ上うまくいっていたので勘違いしていました。
上のような書き方もできるというのは参考になりました。
有難うございました。
No.1
- 回答日時:
ファイル名が違うようですが
.bashではなく.shでは?
("/home/httpd/wwwroot/bbstest/mail_plain.bash");
↓
("/home/httpd/wwwroot/bbstest/mail_plain.sh");
この回答への補足
すみません。書き間違いでした。
正しくは、mail_plain.bash(755)でした。
system("");や`(バッククウォート)`も試しましたがうまくいきません。
うまくいくと、メールが届くはずなんですが。
サーバの方の、httpd.confにAddHandlerでcgi-scriptに.shと.bashがないのが原因かと思ったのですが、これも違いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI -T(汚染モード)でメールが送れません 1 2022/06/12 14:11
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- その他(プログラミング・Web制作) awkのtoupper() 1 2022/10/21 20:39
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- その他(プログラミング・Web制作) ログインシェル時のSHELL環境変数 1 2022/06/08 19:21
- UNIX・Linux Kali Linuxで起動できない - Minimal BASH Like Line Editing 1 2022/06/03 13:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sendmailができない
-
perl フォームメール送信の...
-
sendmailで送信したメールが届...
-
JSONで文字列が長い時
-
Application.ScreenUpdating = ...
-
16進の10進変換について
-
文字の横にプルダウンを表示さ...
-
formで特定のinputを送信しない...
-
回数を指定しないで空白行まで...
-
問題作成のWebアプリの作り方を...
-
ACCESS テキストボックスを隙...
-
子windowsからsubmit()後にclos...
-
pythonで演算子を変数に代入す...
-
FindFirst を複数条件で検索
-
【至急!!!】python言語で本を見...
-
<SELECT>タグの折り返し
-
構造体の各データの表示につい...
-
【C#】数値の範囲チェックについて
-
C言語のflagの使い方が分かりま...
-
VBAでPDFのコピーとリネームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
sendmailで複数の宛先にメール...
-
フォームの日本語が文字化け
-
Perl からbashを呼び出したい
-
sendmailで複数アドレスに送信...
-
メール送信プログラムに詳しい...
-
Perlにて、sendmailを使用する...
-
Perlからメール送信で文字化け
-
Sendmailの文字化けについて
-
Perl メール 初心者
-
Sendmailで送信すると本文にメ...
-
sendmailで本文が文字化けします
-
crontabで
-
sendmailで送信したメールが届...
-
メールのタグ(<a href="mailto:...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
どちのほうがすきですか?
-
formで特定のinputを送信しない...
-
Pythonでターミナルに文字を出...
-
16進の10進変換について
おすすめ情報