• ベストアンサー

osxのWEBサーバでアプリをcgiから実行させたい

OSX server 1.3上で公開しているcgiを外部からアクセスした時に、cgiからパラメータを渡してインストール済のアプリを起動させたいのですが、こういう事は出来る物なのでしょうか? cgiのなかで system('/Applications/Firefox.app www.yahoo.co.jp'); などといった感じにです。 「戻り値/アプリの終了」などはなくても結構です。実行だけさせたいです。 よろしくお願いします。

  • Perl
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

coralというのはこれですね(http://hmdt-web.net/coral/) perlをお使いのようなので、CGIモジュールでも使ってformのパラメータさえ取得できればあとはsystemコマンドで起動してやればできそうな気がします。 #!/usr/bin/perl use CGI; $coral = /[path]/[to]/coral; $q = new CGI; my $URL = $q->param('URL'); my $NAME = $q->param('name'); system("$coral -o $NAME $URL"); というスクリプトを作って、 http://your_host_name.com/coral.cgi?URL=www.apple.com&name=apple.png でアクセスすればよいのではないかと(未検証)。 書き出しディレクトリやコマンド自体のパーミッション(apacheの設定含む)には注意が必要です。 ※coralを使ったことがないのであてずっぽうです。

safina_lastear
質問者

補足

サンプルコードまで、ありがとうございます。 あれからlowrider_2005さんと同じようなコードを作成し実行させてみましたが、画像生成はされませんでした。 $coral = './coral1.2/coral'; $URL = 'http://www.apple.com'; #テストのため固定 $NAME = 'apple.jpg'; #テストのため固定 system("$coral -o $NAME $URL"); CGIは /OSXユーザー/Sites/ に、 coral1.2フォルダは /OSXユーザー/Sites/coral1.2/ に、 (coral1.2フォルダのパーミッションは777です。) それぞれ置いてあります。 OSXのApacheもまだ設定をみていないので当然かもしれませんが、この方法も見当違いではないという自信(?)も得ましたので、今後Apache等の設定を見ていくつもりです。 アドバイスありがとうございました。

その他の回答 (1)

回答No.1

方法はあると思いますが、何のために? cgiは通常、httpdの設定で指定したユーザでしかコマンドを動かせません。 cgiから(たとえば)Firefoxを起動させたとしても、ログイン中の画面にFirefoxが開くわけではありませんよ。 SuExecなどの方法がありますが、どんな方法なら可能か(または不可能か)は目的によりけりです。

safina_lastear
質問者

補足

回答ありがとうございます。 このような質問をした目的ですが、coralという、指定したサイトを画像化して保存してくれるアプリがありまして、そのアプリにCGIからサイトアドレスを渡して起動させ、画像を保存させたいのです。 このアプリはTerminalで起動し、一切のウインドウは表示しないのでコマンドを渡せさえすればいいかと思っています。 同じようなサイトのサムネイルサービスはあるのですが、会社のサイトの一部として画像を利用する訳にも行かず(相手側サーバーの負担が増大する等)、さしあたっての策として自社内にあるOSXサーバーを利用しようと思った次第です。 ならローカルでサイトを画像化してUPすれば?と言う事になりますが、サイトの更新担当も一人ではなく、いつなんどき更新されるか分からないので、自動でサムネイルするこの方法を模索しています。 なお、windowsサーバーは社内にありませんので、ネット上で公開されている「サムネイル化のためのサーバー構築」が出来ません。。。 なんとかOSXサーバーで動かしたいので、よろしくお願いします。 (OSXサーバーは私の管理の範疇にあるので自由に設定が可能です。)

関連するQ&A

  • CGIがサーバーに与える負荷

    こんばんは。 CGIがサーバーに与える負荷について教えてほしいのですが、 今度、多機能な掲示板をHPに数十個のせる事になりました。 公開はしていないのですが、その公開前にCGIが動いた時の サーバーにかかる負荷がどのぐらいあるか知りたいのですが、 負荷を調べる方法はあるのでしょうか? 当然、サーバーのスペック、アクセス数、回線の太さになどに よっても変わってくると思いますが、おおまかでよいので知り たいと思っています。 調べる方法、なんでもいいですので、どうか教えてください。 ちなみにサーバーはFreeBSD4.4です。 よろしくお願いします。

    • ベストアンサー
    • CGI
  • CGIから別サーバーのCGIの呼び出し

    以下の二つのサーバーでCGIを動作させようと考えています。  サーバーA:ユーザーからアクセスできる。  サーバーB:サーバーAからアクセスでき、ユーザーからはアクセスできない。 この環境で (1)サーバーAでリクエストを受け、簡単な処理をする。 (2)サーバーA上のCGIからサーバーB上のCGIを呼び出す。 (3)サーバーB上で処理(etc. メールの送信)を行い、処理結果をサーバーAのCGIに返す。 (4)サーバーA上で簡単な処理を行い、結果をユーザーに表示する というような処理を考えています。 perlでは、このような処理を実装することは可能でしょうか? サーバーAからサーバーBにあるスクリプトファイルを読み込んで、サーバーAで実行するということはできそうなのですが、サーバーB上のCGIはサーバーBで実行するというようなことができるのかがわかりません。 初心者的な質問で申し訳ありませんが、よろしくお願いします。

    • ベストアンサー
    • CGI
  • MAC OSXサーバー

    MAC OSXでファイルメーカーデーターをWeb上で公開したい場合, 外部接続機器(ルータ、モデムなど)やプロバイダーなども、 なにか別にしないとだめですか?小規模Webサーバーをつくりたいのですが、 OSXなら簡単ということで、やりはじめたいと思いますが、 何を参考にすればよいですか? Mac miniで作るMac OS X ミニミニサーバーという本を 買ってみましたが、通常1ケ月ぐらいで構築できるものなんでしょうか? OSXサーバーのソフトもあるらしいのですが、4人程度で、使うのにも 操作は簡単なのでしょうか?それとも大規模向けなのでしょうか

    • ベストアンサー
    • Mac
  • perl-cgiのサイズと実行速度について

    perl-cgiのサイズと実行速度について 下記のように、$ENV{'QUERY_STRING'}の値によって、使う、サブルーチンを振り分けているCGIが2つあります。 sub app*は非常に似たような内容で、ひとつの大きさが200KB程度あります。 sample1.cgi と sample2.cgi ではサーバのCPU時間にどの程度の影響がありますか? CGIの内部でベンチマークを取得してみたところ、sample2.cgiでは、0.02cpu程度上昇した程度で、大きな差は見られませんでした。 しかし、共有の、レンタルサーバで使う予定ですが、その場合、毎回、200KBのCGIをコンパイルして実行と、毎回、400KBのCGIをコンパイルして実行されるため、ベンチマークでは計りきれないところが心配です。 また、CPU時間に差が出たとしても、それは、無視できる程度の物でしょうか? まったく持って、見当が付きませんので、どなたか、ご存知の方、教えていただけると幸いです。 宜しくお願い致します。 =sample1.cgi============== $qs = $ENV{'QUERY_STRING'}; if($qs eq 1){ &app1(); }else{ &app2(); } sub app1(){ #いろいろ } sub app2(){ #いろいろ } =sample2.cgi============== $qs = $ENV{'QUERY_STRING'}; if($qs eq 1){ &app1(); }elsif($qs eq 2){ &app2(); }elsif($qs eq 3){ &app3(); }else{ &app4(); } sub app1(){ #いろいろ } sub app2(){ #いろいろ } sub app3(){ #いろいろ } sub app4(){ #いろいろ }

  • Windowsサーバ+Perl +アプリ実行は可能?

    Perlでコマンドを実行したいとき、 Linux/Unixサーバのなら system("コマンド名"); と、できるはずですが、 Windowsサーバ+Perlの場合、サーバにインストールされている プログラム/アプリケーションを実行したりすることは可能でしょうか。 具体的なイメージは ユーザーがブラウザからアクセスすると CGIは、サーバ側にインストールされているExcelを起動して マクロを実行、データをCSV形式ファイルに保存。 CGIは保存したCSV形式のファイルを展開し ブラウザ上で表示。 ということは可能ですか? もし可能ならPerlの書式を教えていただければ うれしいですー。

    • ベストアンサー
    • CGI
  • ブラウザとCGIアプリの関係?!

    なんとなく想像はできるものの、正しいかどうか確認させていただきたく 質問させていただきます。 WEBアプリですが、例えば 「ブラウザの処理実行ボタン」クリック→「CGIアプリ」→「結果表示」 のような流れだったとして、 処理実行ボタンをクリックしてすぐにブラウザを閉じた場合、CGIアプリはどこまで処理が行えるのでしょうか? ※CGIアプリの処理はブラウザを閉じるまでの時間よりは長いとした解釈でお願いします。 CGIアプリがreturnで抜けるまで、ブラウザはなくても処理は行ってから終了。 また、 returnの前にブラウザに出力していたら、(ブラウザは無いわけで)returnの前にCGIアプリは終了してしまう。→処理途中で終わってしまうことがありえる よろしくお願いします。 わかりづらかったら、申し訳ありません。

    • ベストアンサー
    • CGI
  • CGIを設置したい!

    CGIをレンタルサーバにアップすると広告が出てきますよね。 これはどうしようもないのですが、まずポップアップ広告がうざい。 つぎに、外部のサイトからCGIを呼び出そうとすると禁止がかかってる。 特に外部アクセスの禁止がとても困る。(まぁサーバ側も困ってるんだろうけど) 外部アクセスが禁止じゃない、虫のいいサーバを知りませんか? あと、もちろん無料で。

    • 締切済み
    • CGI
  • サーバーでCGIを動作させるには?

    自宅サーバーでCGIを動作させたいのですが、うまく動作しません。 ○サーバー環境 OS:Windows Server 2003 Web Edition SP1 CPU:Intel Xeon 2.8GHz メモリ:1GB RAM ○現在の状況 htmlは、問題なく動作してます。 cgiを実行すると、エラー404となります。 ○CGI動作にあたって行った作業 (1)ASPの実行を許可しました (2)Perl構成にあたり、ActiveState社のActivePerl-5.8.820-MSWin32-x86-274739.msiをダウンロードし、Dフォルダにインストールしました。 (3)IISマネージャで、「Webサービス拡張」→「Perl CGI Extension」を許可しました。 (4)IISマネージャで、「Webサービス拡張」→「すべての不明なCGI拡張」を許可しました。 (5)実行アクセス権を設定するために、実行するCGIを格納するディレクトリの「実行アクセス許可」を「スクリプトおよび実行可能なファイル」としました。 (6)CGI拡張子と実行可能ファイルを関連付けるために、実行するCGIを格納するディレクトリの「アプリケーションの設定」→「構成」→「アプリケーションの拡張子」→「追加」で、 実行可能ファイル「D\Perl\bin\perl.exe"%s"%s」 拡張子「.cgi」としました。 ○CGIが動作するか確認するために、サンプルCGIを作成し、上記設定を行ったディレクトリ以下に配置しました。 ○結果 クライアントで、http://サーバー名/ディレクトリ名/ファイル名 と入力すると、エラー404 ページが見つかりません。と出ます。 間違った操作や、考えられる間違い箇所がありましたら、指摘ください。

  • 応答なしの外部アプリの強制終了

    現在、応答なし状態の外部アプリを強制終了させたいのですが上手くいきません。 アプリが応答なしかどうかはSendMessageTimeoutを使用して判断できるます。 しかし、強制終了をPostMessage(hwnd, WM_CLOSE, 0, 0)でしても戻り値は正常なのですがアプリは終了してくれません。(応答なしだから?でも戻り値返してるって事は応答なしじゃないの?謎) 一応、外部アプリが実行中の状態でPostMessageをコールしたらちゃんと終了してくれました。 他にアプリを強制終了させるような関数をあるのでしょうか?あるのであれば教えてください。 よろしくお願い致します。 === 環境 === Windows2000 VC++ 6.0

  • OSX10.8 でホームページを公開したい

    OSX10.8 でホームページを公開したいと思いますが そのようにしたら良いでしょうか? 現在 レンタルサーバーを借りて公開しています。 それを 自分のMacMiniでの公開を考えています。 ホームページのファイルをどこにおき どのようにアクセスしたら良いでしょうか? よろしくお願いいたします。

    • 締切済み
    • Mac

専門家に質問してみよう