Movable Type の高速化を図るためApacheにmod_perlを組み込む。
VineLinux3ではSynapticというパッケージ管理ソフトがあるので、
ここからapache-develとmod_perlパッケージをインストールする。
その後、mod_perlに含まれないApache::DBIとApache::RequestとApache::Cookieをインストール。
CPAN経由で
# perl -MCPAN -e shell
cpan> install Apache::Request
と打ってインストール
なぜかmake testで失敗するのでforce install Apache::Requestで強制インストールした。
最後に以下の内容をApacheの設定ファイルに追加し終了。

PerlSetEnv PERL5LIB /MovableTypeヘのパス/lib:/MovableTypeヘのパス/extlib
PerlModule Apache::Registry
<Directory "mod_perlを動作させるディレクトリパス">
SetHandler perl-script
PerlHandler Apache::Registry
PerlModule Apache::DBI
Options +ExecCGI
PerlSendHeader Off
</Directory>


パスの設定をし忘れ、数時間悩む・・・

参考になったページ
http://uep.hayate.mine.nu/archives/2004/11/mod_perl.html
簡単なHTTPクライアント(ブラウザ)
使用例 ./http-client www.yahoo.co.jp 80 /index.html

#define BUF_LEN 1024 /* バッファのサイズ */

int main(int argc, char *argv[]){
 int fd; /* ソケットのためのファイルディスクリプタ */
 int error,l;
 struct addrinfo hints, *res, *ai;
 char buffer[BUF_LEN];
 FILE *fp; /* ファイルポインタ */

 if(argc != 4){
  fprintf(stderr,"usage:%s <hostname> <portnumber> <path>\n",argv[0]);
  exit(1);
 } /* 引数チェック */

 memset(&hints,0,sizeof(hints)); /* hintsの初期化 */

 hints.ai_family = PF_UNSPEC; /* IPv6についても検索 */
 hints.ai_socktype = SOCK_STREAM;
 error = getaddrinfo(argv[1],argv[2],&hints,&res);
 if(error != 0){
  printf("getaddrinfo error:%s,%s\n",argv[1],gai_strerror(error));
  exit(1);
 } /* エラーチェック */

 for(ai=res;ai!=NULL;ai=ai->ai_next){
  /* すべてのアドレスファミリについて検索 */
  fd = socket(ai->ai_family,ai->ai_socktype,ai->ai_protocol);
  /* ソケットを作成 */
  if(fd < 0){
   fprintf(stderr,"can't create socket\n");
   continue;
  }
  if(connect(fd,ai->ai_addr,ai->ai_addrle\n)==0){
   break;
  }
  fprintf(stderr,"can't connect server\n");
  close(fd);
 }

 if(res!=NULL){
  freeaddrinfo(res);
 }

 if(ai == NULL){
  fprintf(stderr,"can't connect to all servers\n");
  exit(1);
 }

 fp = fdopen(fd,"r+"); /* fprintfなどを使えるようにする */
 if(fp == NULL){
  fprintf(stderr,"fdopen failed\n");
  return 1;
 }
 setvbuf(fp,NULL,_IONBF,0); /* バッファリングOFF */
 fprintf(fp,"GET %s HTTP/1.0\r\n",argv[3]);
 fprintf(fp,"Host: %s:%s\r\n",argv[1],argv[2]);
 fprintf(fp,"\r\n"); /* GETをサーバーに送信 */

 while(1){
  if(fgets(buffer,sizeof(buffer),fp) == NULL){
   break;
  }
  printf("%s",buffer);
 }

 fclose(fp);
 close(fd);
 return 0;
}
今日も平凡な1日。6連休だったから旅行でも行きたかったけど。
今日は昼間で爆睡していた。
起きたら微妙に筋肉痛・・・昨日の練習が響いたか。
学校のレポートが溜まっているので早めに片づけることを決心する。
内容はソフトウェア実験について。
アセンブラとC言語によりマルチタスクカーネルを作成する。
マルチタスクカーネルとはわかりやすく言うと簡単なオペレーティングシステム(ウィンドウズなど)みたいなものです。
一般の人ではとうてい理解できないであろう単語(セマフォとか・・・)を並べてレポートを埋めていく・・・
レポート作成開始から10時間ほど経過・・・
未だ作成中・・・
今日は朝からサークルがあったので久々の6時台起き!
クラウンで城南体育館へ向かい2週間ぶりのバドミントンをする。
なかなか練習に行けないせいで体のキレも全くなくなっている・・・
今週末試合があるというのにマジでピンチ!
その後、いつものように明○義塾へ行って高校生の相手をする。
受験生は福○大学の赤本をやっているので結構難しい。
他の2人は高校物理と私立中学の数学。
これで3人相手にして時給800円って安いですよね・・・
今日は九大の学祭に行った。
12時頃六本松キャンパスに到着。
とりあえず、後輩の店へ行こう!
我がサークルの出店は毎年恒例のカクテルバー。
毎年1年生が店を出す。
「何頼もうかな~ おすすめは何?」
おっぱいチューチューがいいっすよ!」
う~んこれはOKなのか!?
とりあえずこいつとサイドメニューを持ってきてもらうことに。
このカクテルはラム酒をベースに飲むヨーグルトなどを混ぜたものらしい。
「ゲンチャで来たから薄目に作れよ!」
といったはずだが、飲んでみると強い・・・
酒に弱い私は完全によってしまった。
こりゃしばらくさまさないかんわぁ。
その後、サークル友達がライブをやるというので行ってみた。
BUMPとか歌ってたけど知らない曲が多い。
文系はそんなことする暇があっていいっすね・・・
歩いてたら久しぶりに懐かしい顔に会って、いっぱい買わされてしまう。
その後箱崎キャンパスへ移動したのだが、こっちは閑散としていました・・・
例によってOさんのVTで単車の練習~
そんなことしているうちに暗くなってきたので帰宅。
今日はなんかとっても充実してた気がする!
もう実験ばっかりの日々には戻りたくないよぉ~