Category Archive: CGI

post by yamamoto | | 0 | 2,130 views

Web Proxy CGI によるプライベートネットワーク内の Web サーバの公開

【ご注意】この方法を利用する際に、セキュリティをよく考慮した上て、自己責任でやって下さい。 やりたいこと 既に公開されている web サーバが(例:www.myweb.com)あります。 ルータの NAT のポート 80 に設定されていないプライベートネットワーク内の別の web サーバ(例:192.168.4.80)もあります。 これを www2.myweb.com として公開したいのです。 使用した方法(他にも方法あると思いますが) CGIProxy を www.myweb.com に設置し、www.myweb.com から 192.168.4.80 をアクセス方法です。 手順 CGIProxy をダウンロードします。 nph-proxy.cgi を編集します。 許可するサーバの設定(192.168.4.80をリストに追加します) @ALLOWED_SERVERS= ('192.168.4.80') ; 拒否するネットワークを編集します。(ルータ192.168.4.1をリストに追加します) @BANNED_NETWORKS= ('127', '192.168.4.1', '172', '10', '169.254', '244.0.0') ; ルータへのアクセスを拒否しないとルータの設定ページが公開してしまうからです。 これで、URLを http:/www.myweb.com/cgi-bin/nph-proxy.cgi/30/http/192.168.4.80/ で外から 192.168.4.80 をアクセスすることが可能です。 30 のところは適当に数字をいれてください。しないと下記のメッセージの画面が出てきます。 WARNING: Entering non-anonymous area! www.myweb.com のリダイレクトの設定 vi /etc/apache2/sites-enabled/000-default 下記を追加します。     <VirtualHost *:80>     DocumentRoot /var/www/www2/     ServerName www2.myweb.com       # Other directives here     Redirect / http:/www.myweb.com/cgi-bin/nph-proxy.cgi/30/http/192.168.4.80/     </VirtualHost>  /etc/init.d/apache2 restart apache2 を再起動します。 基本認証のページをアクセスすると下記の画面が出てきます。

post by yamamoto | | 0 | 1,218 views

iPad で Web 開発環境を作る

もちろん、いう必要がありませんが、cydia が使えるのが前提です。必要なものは下記の通りです。 lighttpd Lighttpd SBSettings Toggle lighttpd の設定ファイルを作ってくれる PHP Perl OpenSSH OpenSSL textastic Textastic Code Editor AppLinks /var/www のシンボルリンクを簡単に Textastic の Documents の下に作るため ln -s /var/www /var/mobile/AppLinks/Textastic.app/Documents/www Safari htmlファイル、phpやperl のプログラムは、Textastic Code Editor で編集し、実行は Safari 等のブラウザで確認する。

post by yamamoto | | 0 | 659 views

perl memo ブラウザーからの入力の取得

#環境変数を取得 $remote_user=$ENV{'REMOTE_USER'}; $ip=$ENV{'REMOTE_ADDR'}; $host=$ENV{'REMOTE_HOST'}; $ident=$ENV{'REMOTE_IDENT'}; $edit_cgi="wiki.cgi";   #パラメータを解析     if($ENV{'REQUEST_METHOD'} eq "POST") {         read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});     } else {         $buffer = $ENV{'QUERY_STRING'};     }     @pairs = split(/&/,$buffer);     foreach $pair (@pairs) {         ($name,$value) = split(/=/,$pair);         $value =~ tr/+/ /;         $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;         $value =~ s/\t//g;         $value =~ s/\r\n/\n/g;         $FORM{$name} .= "\0"            if(defined($FORM{$name}));         $FORM{$name} ...