🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

1回答

1660閲覧

Macでxamppを使って入力されたデータの受け取りをしたい

syanimuni

総合スコア0

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

0クリップ

投稿2020/06/05 22:02

Mac OSで、xamppのhtdocsフォルダの中のjsbookフォルダのなかにgetname.html(コード下参照)というファイルを置き、cgi-binフォルダの中にgetname.cgi(コード下参照)というファイルを置いています。
しかし、送信ボタンを押しても、
Server error!
サーバ内部で障害が発生し、 リクエストに応えることができませんでした。
Error message:
End of script output before headers: getname.cgi
サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。
Error 500
localhost
Apache/2.4.43 (Unix) OpenSSL/1.1.1g PHP/7.4.5 mod_perl/2.0.8-dev Perl/v5.16.3
と表示されます。どうすれば、解決できるのか教えていただきたいです。

getname.html

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>入力フォーム</title> </head> <body> <form action="http://localhost:8080/cgi-bin/getname.cgi" method="get"> <p>名前<input type="text" name="NM"</p> <p><input type="submit" value="送信"></p> <p><input type="reset" value="取り消し"></p> </body> </html>

getname.cgi
#!/usr/bin/perl
$str = $ENV{"QUERY_STRING"};
print "Content-type:text/html¥n¥n";

print "<!DOCTYPE html>¥n";
print "<html lang=¥"ja¥">¥n";
print "<head>¥n";
print "<meta charset=¥"UTF-8¥">¥n";
print "<title>CGI</title>¥n";
print "</head>¥n"
print "<body>¥n";
print "<p>$str</p>¥n";
print "</body>¥n";
print "</html>¥n";

※xamppは起動し、serviseもstartさせ、networkもlocalhost:8080をenableにしています。

先日やっと、cgiファイルをcgi-binに置くことに成功したのですが、早くも違う壁にぶつかってしまいました。
解決策が思いつく方は是非教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/06/05 22:46

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 あと >/cgi-bin/getname.cgi これだと、 public/cgi-bin/getname.cgi にアクセスしにいってるのでは。
m.ts10806

2020/06/05 22:47

あと「Java」は本件とどう関係するのでしょう。
退会済みユーザー

退会済みユーザー

2020/06/06 08:52

#!/usr/bin/perl パスは上記で正しいですか?
退会済みユーザー

退会済みユーザー

2020/06/06 09:17

まあ、 Apacheのエラーログを見ましょう
guest

回答1

0

perl の cgi であれば、getname.cgi のあるディレクトリで perl -wc getname.cgi と実行するとどのようなメッセージが表示されますか?

また、macOS をお使いということですが、プログラム中の ¥n\n にするとなにか変わりますか? (\ は、 optionキーを押しながら ¥ キーを押すと入力できます。)

投稿2020/06/06 05:52

CHERRY

総合スコア25218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/06/06 08:51

そもそも、perlのパス(一行目)がxamppのではないからだろ。 macて標準でインストールされてるの?
CHERRY

2020/06/06 09:04 編集

macOS の場合、perl ( /usr/bin/perl )も ruby ( /usr/bin/ruby ) も入っています。 最新ではないですけれどね...
syanimuni

2020/06/07 19:39

回答ありがとうございます。 すいません、getname.cgiのあるディレクトリでperl - wc getname.cgiを実行するというのがわかりません。 ¥nを\nに変えても変化はなかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問