![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
いつもお世話になっております。
今回、質問させて頂く問題と内容は以下になります。
解決したい問題
cgiから、自作した実行ファイル「create_file」を動かしファイルを作成したい。
構成は以下になります。
OS:Ubuntu 10.10
作業ディレクトリ
/var/www/cgi-bin
ファイルと機能
index.html : cgiの呼び出し用html。
create.cgi : 実行ファイル「create_file」を呼び出す。
create_file : 実行ファイル。実行すると同ディレクトリに”result.txt”を作成する。
以上の構成でindex.htmlを開いた際にcreate.cgiがcreate_fileを呼び出し、result.txtを
同ディレクトリに作成するようにしたいのですが、実現できません。
create_file単体を実行した際は、同ディレクトリにresult.txtが作成されるので、create_fileを呼び出す箇所が上手くいっていない様です。
尚、create.cgiにおけるcreate_file呼び出しを以下のようにしています。
index.html
<HTML>
<BODY>
<a href = "create.cgi">cgi呼び出し</href>
</BODY>
</HTML>
create.cgi
~~~~~~~~~~~~~~~~~~~~
chmod(0755,"./create_file");
system`./create_file`;
~~~~~~~~~~~~~~~~~~~~
情報が少なく申し訳ないのですが、問題箇所が分かる方いらっしゃいませいたら、どうぞ御教授お願い致します。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
chmod も system も失敗しても致命的なエラーにならないので、自力でエラー処理をする必要があります。
system に失敗しているようなら、当然同じプログラムからの chmod も失敗しているのではないかと思います。標準モジュールの CGI::Carp を使うと失敗の原因をブラウザの画面に表示してくれるので、原因の特定に役立つかもしれません。create.cgi
--------------------
use CGI::Carp qw(fatalsToBrowser); # 冒頭付近に追加
...
chmod(0755, "./create_file") or die "chmod error: $!";
system("./create_file") == 0 or die "system error";
>kumoz様
再度ご回答ありがとうございます。
ご指摘頂いた内容をにソースに反映させたところ、
「Software error:
system error at /var/www/cgi-bin/create.cgi line 39.
」
と表示されました。
どうやら、chmod、systemともに正常に動作していないようです。
このようなデバッグ手法は知らなかったので、非常に有難いです。ありがとうございます。
No.3
- 回答日時:
一応確認ですが。
・CGIプログラムは動いているが、ファイルが作られていない
・CGIプログラムが動いていないから、ファイルが作られない
どちらですか?
>taloo様
ご回答ありがとうございます。
>・CGIプログラムは動いているが、ファイルが作られていない
>・CGIプログラムが動いていないから、ファイルが作られない
現状態は前者となります。そのように判断しましたのは、
create.cgi内において、
~~~~~~~~~~~~~~~~~~~~
print "moge";
chmod(0755,"./create_file");
system`./create_file`;
~~~~~~~~~~~~~~~~~~~~
とした際、画面に「moge」と表示されるからです。
No.2
- 回答日時:
> chmod 755 /var/www/cgi-bin
/var/www/cgi-bin の所有者と、cgiを実行するユーザーは同じですか?
よくある設定では、httpサーバーはnobodyで動作してます。cgi-binのオーナーがnobodyでなければ、755では書き込めません。
>kmee様
ご回答ありがとうございます。
/var/www/cgi-bin の所有者と、cgiを実行するユーザーは同じですか?
現在ローカルで動かしているのですが、「cgiを実行するユーザー」という内容が知識不足の為わかりません。申し訳ないです。apacheの権限が/var/www/cgi-binの所有者と異なるということでしょうか。
追加ですが、
chmod 777 /var/www/cgi-bin とした場合でも不可でした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxの実行結果を修正したいです。 6 2022/11/22 12:57
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- PHP php エラー 2 2022/10/23 16:43
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
URLに~/cgi-bin/~を隠す方法
-
PyCharmでのCGIを使ったWebサー...
-
カウンターが表示されません;;
-
cgiのパスについて
-
下記の文章を翻訳願います
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
VBScriptで、ファイルから任意...
-
CGIをHTML(scriptタグ)上でうま...
-
画像認証をつけたい
-
私書箱掲示板プラス添付ファイル
-
perl 矢印演算子 -> の使い方
-
cgiからファイルの書き込みがで...
-
ソースを見せたくないです。
-
ftpでuploadのとき上書きとする...
-
htmlにアクセスと同時に、あるC...
-
コアサーバー(coreserver)でのc...
-
リンク参照元について。
-
CGIでソースがそのままでてしま...
-
リビングのソファー(皮)のキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLに~/cgi-bin/~を隠す方法
-
PyCharmでのCGIを使ったWebサー...
-
apache で /cgi-bin/にアクセス...
-
相対パスか絶対パス??
-
cgiでのアクセスカウンターの表...
-
cgiのsystem関数を用い、ファイ...
-
cgiが動作しないのは?
-
apeboard+の設置について (UUHP)
-
カウンターが表示されません;;
-
CGIが動作しません。
-
patipati設置について
-
Apacheでのコンテントネゴシー...
-
ローカル環境でのCGIエラー
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
VBAでサーバーにアクセスするに...
-
CGIでソースがそのままでてしま...
-
ラジオボタンのグループ化
-
ASP(IIS?)のエラーについて
-
FTPにて553エラー
おすすめ情報