2012年05月17日

複数ドメインにおける広告の表示方法について

 ちょっと技術的な話題ではありませんが。
 無料サービスを維持していくのに必要なモノ。
  1. 広告などの収入源

  2. メンテナンスできる技術力

  3. モチベーション

・・・なんかどれも今の私に欠けてる気がするorz

 で、広告などについては、例えばGoogleAdsenceは1つのサイトで審査を通れば、他の管理するサイトにも貼れます。一方、Amazonは追加するURLを連絡しなければいけませんし、ValueCommerceやA8.netもサイト登録をしなければなりません。
 では複数ドメインをまとめて1つのコンテンツとして管理している場合(URL転送とか、サブドメインにSSL振っているとか)はどうしたらいいのか。ここからは、規約を読み込んでいないので自己責任でお願いしたいのですが・・・
IFRAMEタグ使えば広告の呼び出し元はあくまでも登録したサイトになるよね。
一番単純なのは、登録したドメインの中で広告タグを生成、他のドメインからIFRAMEで呼び出す。
GoogleAdsenceとかと組み合わせるなら、他のドメインからはJavaScriptとして登録ドメインのプログラムを指定して、登録ドメインのプログラムで広告を選択。GoogleAdsenceならそのままdocument.writeを返してやって、他ならIFRAMEタグを含んだソースを返してやる。まあ、JavaScriptでなくてPHPのincludeとかでもいいんですけど。(ここらへん、Perlはちょっと弱い)

 まあ、GoogleAdsenceの審査が通っているなら、他ドメインはそこ一本でいくのがいちばんよろしいのかな。
posted by 鯖缶 at 23:35 | Comment(0) | TrackBack(0) | ただいま開発中 | このブログの読者になる | 更新情報をチェックする

2012年05月16日

ファイルやディレクトリを一気に処理するときのコマンドメモ

 基本だけど、ディレクトリ以下のフォルダを全部755にしたかったり、ファイルを666にしたかったりというときに便利なコマンド

#find /hoge -type d -print0| xargs -0 chmod 755

(/hoge以下のディレクトリのパーミッションを755に)

#find /hoge -type f -print0| xargs -0 chmod 666
(/hoge以下のファイルのパーミッションを666に)

眠いんで、気が向いたらfindとかについて書くかも。
posted by 鯖缶 at 01:58 | Comment(0) | TrackBack(0) | その他 | このブログの読者になる | 更新情報をチェックする

2012年04月30日

DNS障害につきまして

ただいまDNSの障害により、現在cgi-bin.jpを指定すると別のサーバにアクセスされる現象が発生しております。
3600秒ほどで正しいアドレスを指すように修正しましたが、プロバイダによってはそれ以上のキャッシュを保持している場合がございます。
なお、WindowsマシンそのものにキャッシュされているDNS情報をクリアするには、コマンドプロンプトを立ち上げて
ipconfig /flushdns
を実行して下さい。

掲示板等へ取り急ぎアクセスしたい場合は、163.43.140.171を直接指定いただきますよう、お願い申し上げます。
posted by 鯖缶 at 22:00 | Comment(0) | TrackBack(0) | 障害・メンテナンス | このブログの読者になる | 更新情報をチェックする

2012年04月21日

スタードメインでドメイン割引中

 ネットオウルの運営するスタードメインで、4月30日まで.net新規取得が480円(通常850円)、.com新規取得580円(通常920円)など、新規取得・移管の割引キャンペーンを展開中です。
 SSL証明書(SSLボックス)でお世話になっている会社ですが、ValueDomainからいくつか移管させてもよいと思っています。
 惜しむらくは、移管可能なドメインが.com,.net,.org,.biz,.info,.jp,.co.jp,.or.jp,.mobi,.inの10種に限られていることでしょうか。昔取得した.acなどは未だ本家で管理・更新していますし・・・

posted by 鯖缶 at 19:33 | Comment(0) | TrackBack(0) | 商品紹介 | このブログの読者になる | 更新情報をチェックする

2012年01月13日

ファイル名・パスの取り扱い

 今書いているスクリプトのファイルロック機構を作る上で、ファイル名・パスを一意で取得する必要があったためサブルーチンを作り始めたら、ちょっと横道に逸れたけど役に立ったのでメモ。
 個人的にスクリプト内部ではファイルをopenしたりする際には絶対パスを指定するのがよいと思います。ここでいう絶対パスというのは、"/"で始まり、"./"や"../"を含まないパスのこと。正規化というらしい。

 で、ユーザが入力した値(ユーザIDとかファイルナンバーとか)に基づいてファイルを扱う際に気をつけなければいけないのが、ディレクトリ・トラバーサル(cf.Wikipedia)です。ユーザから入力された値をチェックするのはまあ当然ですが、ファイルを取り扱う直前にもチェックを入れておきたいものです。

【続きあり】
posted by 鯖缶 at 01:30 | Comment(0) | TrackBack(0) | ただいま開発中 | このブログの読者になる | 更新情報をチェックする

2012年01月11日

PATH_INFOと%2Fの関係

 CGIを呼び出す際、昔はパラメータをhttp://example.com/hoge.cgi?user=tom&key=valueと、?と&で繋げるのが常識だったわけですが、SEO的にサーチエンジンにも好まれないということでhttp://example.com/hoge/tom/valueといったあたかもディレクトリ構造であるかの様な表記が出てきました。(たぶんAmazonが先駆者だと思う)

 さて、http://example.com/hoge/tom/valueだとちょっとスクリプトがどこかわかりづらいので、http://example.com/hoge.cgi/tom/valueを例にとりましょう。"hoge.cgi"以降の情報を取得するには、$ENV{'PATH_INFO'}を使います。
#Script1
print $ENV{'PATH_INFO'};
【結果】/tom/value

これをパラメータとして取得するには、頭の/を落として、/でsplitしてやればいいわけです。
#Script2
my $param = $ENV{'PATH_INFO'};
$param =~ s/^\///;
my @data = split('/',$param);
print join('&',@data);
【結果】tom&value


【続きがあります】
タグ:Perl Apache
posted by 鯖缶 at 20:48 | Comment(0) | TrackBack(0) | ただいま開発中 | このブログの読者になる | 更新情報をチェックする

リファレンスされた配列の最後の添え字の取得

 ちょっとググり方が悪かったのか、すでに常識なのかはわからないけど、試行錯誤して解決したのでメモ。

 Perlにおいて配列の最後の添え字(番号)を取得するには、$#配列名(例:$#array)であることは基本中の基本です。
 では、リファレンスに入っている配列の最終番号を取得するにはどうしたらいいのか。

解法1:scalar関数を使う
my $lastnum = scalar(@$ref_array) -1;

解法2:$#でがんばる
my $lastnum = $#{$ref_array};


解法2の方がわかりやすいというかシンプルというか好み。
(区切りに{}が使えることを知らんかったよ・・・)

ちなみにこんな複雑なことも可能
my $lastnum = $#{$hash{'list'}};
# %hashの'list'の値に配列へのリファレンスが入っている場合
posted by 鯖缶 at 19:03 | Comment(0) | TrackBack(0) | ただいま開発中 | このブログの読者になる | 更新情報をチェックする

2012年01月10日

/usr/bin/perl^M: bad interprete

今日新しいプログラムの開発に取りかかったところ、シェル上で
-bash: ./prova.cgi: /usr/bin/perl^M: bad interpreter: そのようなファイルやディレクトリはありません

というエラーが。
Apacheのエラーログにも
(2)No such file or directory: exec of '/hoge/prova.cgi' failed

とエラーが吐かれています。

/usr/bin/perlはちゃんとあるし、パーミッションも実行可能になっている・・・しかも他のスクリプトはちゃんと動いているのになぜか、と思っていましたが、

改行コードがCR+LFになっていました。改行コードをLFで保存し直してちゃんと動きました。

久々にイチから書き始めたとはいえ、基本的なところでした。
bad interpreterが出たら、まずは改行コードを疑ってみよう。(特にDOS(Windows)で書いてLinuxで実行している場合)


# ちなみにprova.cgiというのは、今新しく作っているプログラムです。
# ティロ・フィナーレと同じくイタリア語です。
# 英語でいうとtestですね。まあ、そういうコンセプトのプログラム
posted by 鯖缶 at 15:08 | Comment(0) | TrackBack(0) | ただいま開発中 | このブログの読者になる | 更新情報をチェックする

2012年01月05日

スタードメインで.atを割引中

 SSL証明書の取得でお世話になっているネットオウルが提供するドメイン取得サイト、スタードメインで2012年1月31日18:00まで、各種ドメインを割り引き登録できます。
 今回の目玉は.at(オーストリア)の新規登録が680円でできることです。.atについては、前置詞の"at"や、@を連想させるとうことで、ccTLDではtoに次いで使いやすいと思います。そして、gTLDや.jpなどでは空いていないメジャーな名前も登録できる可能性があります。
 私のプライベートメールアドレスは、「名@姓.at」ですが、.jpは言うに及ばずgTLDはダメだったものの、.atが空いていましたのでバリュードメインで登録して使っています。今回、残念ながら移管や更新は割引の対象外ですが、これから家族のアドレスがほしいという人は登録を考えてみてもいいのではないでしょうか。
 ちなみに、私はバリュードメイン提供のDNSサーバを利用し、GoogleAppsで管理していますが、スタードメインでしたらDNSサーバに加えてメール転送が100個まで無料でついてきます。ついでに、10GB or 3GB+SQLのウェブサーバもついてきます。バリュードメインは4,430円(2012年1月5日現在)ですので、通常料金でも安いのです。atドメインの移管には対応していないようなのが悔やまれますが、他のドメインもバリュードメインよりも微妙に安いので、新たに取得する分はこっちで取ろうかとも思います。(移管の手間をかけるほどではないかな)
posted by 鯖缶 at 18:55 | Comment(0) | TrackBack(0) | その他 | このブログの読者になる | 更新情報をチェックする

2011年12月23日

【緊急】掲示板レンタルの停止について

cgi-bin.jpにてレンタルしている掲示板レンタル3種につきまして、管理上の問題が発生したため緊急にサービスの停止をさせていただきました。

【現象】
 広告を提供している会社より不適切なコンテンツが掲載されているとの指摘があり、メンテナンスを行おうとしたところ、全ての掲示板のログが消えた。

【原因】
 管理プログラムが古いサーバにしか対応しておらず、全ての掲示板を「更新期限切れ」として判断したため削除の対象となってしまった。

【対応】
 ファイルが削除されているためログを復活させることはできず、また他の異常が発生する可能性もあるため、掲示板レンタルの提供を停止させていただきました。
 今後、コードをチェックの上再提供させていただきますが、その際には新規に作成が必要になります。また、今回広告提供会社より指摘があった原因となっているスパム投稿についても、それを抑制する手段を備えた上での再開とさせていただきます。

【ご注意】
 他のサービスにつきましても、順次コードのチェック・更新をしていきます。それに伴い、サービスの一時停止、データの消失が発生する可能性がございます。


 この度は、掲示板をご利用できなくなりましたこと、誠に申し訳なく思います。
 今回の事態は掲示板レンタルのプログラムが、技術的・社会的情勢に追いついていないことを放置したことにより発生したものと認識しております。掲示板をご利用いただいておりました皆様には、ただ平謝りする他ございませんが、何卒ご理解をいただきたく、お願い申し上げます。(追記あり)
posted by 鯖缶 at 17:56 | 障害・メンテナンス | このブログの読者になる | 更新情報をチェックする