訳あって,Apacheモジュールを書くことに. Apacheモジュール開発の導入に関してはDSAS開発者の部屋:apache module 開発事始めが大変参考になりました. ここではAPR(Apache Portable Runtime)の機能を使って,共有メモリを使う方法を書きます. このモジュールはApache(複数プロセス)が,アクセスを受けた回数をエラーログに出力するという単純なもの. なお簡単のためにディレクティブは使用しません.(キリッ 排他制御もやってません.(キリッ でも排他制御はそのうち触れたい. では早速ソースを... #include "httpd.h" #include "http_config.h" #include "http_protocol.h" #include "ap_config.h" #include "http_log.h" #include "
2009-04-07 Debian/LDAP 2009-04-05 Debian/samba 2009-03-24 Debian/ESXi 2009-03-23 MenuBar 2009-03-22 PowerEdge SC1430 2009-03-15 Debian 2009-03-14 Debian/仮想化 Debian/iSCSI Debian/RAID local/top テンプレート作成 † 0から始めるより、テンプレートがあった方がやりやすい。以下のようにして、テンプレートを作成する。 $ apxs2 -g -n test これで、カレントディレクトリに test ディレクトリが作成される。 $ ls -l test -rw-r--r-- 1 user group 938 2008-12-12 14:14 Makefile -rw-r--r-- 1 user group 204
こんにちは、井川です。 前回、Apacheモジュールの手軽な作り方をご紹介しました。Webページに先頭に"hello world"を追加するモジュール(mod_hello_world)は意外と簡単に作成できたことと思います。今回は、モジュール開発を一歩進め、モジュールのOn/Offをディレクトリ毎に設定する方法をご紹介します。 前回(手軽に出来るApacheモジュール開発)と比べていささか複雑にはなりますが、モジュール起動の切り替えを使えるようになると開発の幅が大きく広がります。ぜひ試してみて下さい。 今回の開発の流れは以下の通りです。 ① テンプレートの作成 ② コード(mod_hello_world.c)の修正・追記 ③ コンパイルしてインストール ④ Apacheの設定と再起動 検証環境は次の通りです。 ・ CentOS 5.5 ・ Apache 2.2.3 ① テンプレートの作成

OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015

apxsにちゃんとオプションがあるんですね。以下、Apache2.2.4のapxsの場合。 # /usr/local/apache2/bin/apxsUsage: apxs -g [-S <var>=<val>] -n <modname> apxs -q [-S <var>=<val>] <query> ... apxs -c [-S <var>=<val>] [-o <dsofile>] [-D <name>[=<value>]] [-I <incdir>] [-L <libdir>] [-l <libname>] [-Wc,<flags>] [-Wl,<flags>] [-p] <files> ... apxs -i [-S <var>=<val>] [-a] [-A] [-n <modname>] <dsofile> ... apxs -e [-S <var>=<val>] [-a

1.はじめに Webアプリケーション開発の現場で使用されている開発言語には、Java、Perl、PHP、最近であればRuby、Pythonなどがあります。この分野ではC言語も、CGIによるWebアプリケーション開発で旧来から用いられていますが、最近の開発者にはあまり馴染みがないかもしれません。当時の新技術であったJavaと比較して、あまりにも遅い結果が出ていたからとも言われています。 しかし、Webサーバの「Apache」、データベースの「PostgreSQL」「MySQL」、OSの「Linux」など、各所でオープンソースソフトウェア(OSS)の開発言語には、依然としてC言語が多く用いられています。このようにC言語は、Webアプリケーション開発の現場で使われるケースは減ったものの、現在でも重要な開発言語の一つです。 そこで今回は、Apache 2.2のmod_dbdで実装された「データベー


かなり自分用。 hello world の作成 # apxs -g -n hello <- これで雛形ができる。 # cd hello # make # make install/etc/httpd/conf.d/mod_hello.conf を以下のように作成 LoadModule hello_module modules/mod_hello.so <Location /hello> SetHandler hello </Location>apache 再起動&確認 # apachectl restart #curl http://localhost/hello The sample page from mod_hello.c <-こんな感じで表示されればOK リソースプール 通常のプログラムと異なりApacheがリソースの管理をしてくれる。 リソースプールの種類 Serverプール
先日この記事において hook の呼び出しに関してコメントを頂きました. 実際のところよく分かってない部分もあったので,hook に関してまとめてみました. このページの記述について このページの内容に関して英語の文章は,全て Apache 2.0.58 のソースコード中から集めてきた原文ママです. 全ての hook に関して調べ尽くした訳じゃないので間違いもあると思います.間違いに気づかれた方はコメントで指摘いただければ幸いです m(_ _)m hook の呼び出し順序に関して hook が呼び出される順序は,「設定初期化」「プロセス初期化」「コネクション」「リクエスト」に関しては記述した順序で呼び出されるようです. RUN_ALL,RUN_FIRST について RUN_FIRST の hook は,呼び出した hook 処理関数が OK や DECLINE エラーを返した場合,その次
![[補足記事]Apache 2.0 の hook 一覧(apache module 開発事初め その3-3) : DSAS開発者の部屋](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2fda78a05937633f7a2b4b2219826151c370cd607b%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttps%253A%252F%252Fparts.blog.livedoor.jp%252Fimg%252Fusr%252Fcmn%252Fogp_image%252Flivedoor.png&f=jpg&w=240)


by Zachary C. Miller Introduction This document is designed as a collection of tips and tricks for writing ApacheAPI modules. These are the non-obvious or under-documented things that I have learned in the course of writing Apache modules inC++ forLinux. Some of the recipes are useful in C orC++ but some are specifically geared towardsC++. Some are compatible with any platform but many may be
これからはモジュールの話に入ります。 今回はapxsによるモジュールスケルトンの生成。 次回以降は生成したモジュールソースの解説や モジュール開発のTipsを紹介していきます。 さて早速始めます。 今回の内容は書くと長くなりますが 作業自体はストレートに進めれば3分と掛かりません。 まず前提の環境ですが、以前の日記の通りです。Linux/Apache事始め-ビルド編- -LinuxとApacheの憂鬱 apxs アパッチの標準ツール。 モジュールの開発/ビルド/インストール利用する。 manも用意されているので、詳しく知りたい場合はこちら。 $ export MANPATH=/usr/local/apache2/man:$MANPATH $ man apxs主に仕様するオプションは以下の3つ。 -g モジュールのスケルトンを生成。 -c モジュールをビルド。 -i モジュールをインスト

今回は、実用的モジュールの最小構成として次の解説をします。 httpd.confからモジュールに設定情報を与える方法。(command_rec) 必要なリクエストのみモジュールを動作させる方法。(SetHandler) ログを出力する方法。 細かいそれぞれの設定のバリエーションに関しては 次回一覧にする予定なので今回は典型的な例だけ説明します。 説明の為、前回の日記 アパッチモジュールの初歩・その壱 -LinuxとApacheの憂鬱 で生成したソースを少し改造します。 mod_mytest.c /* プロトタイプ宣言を追加 */ #include "httpd.h" /* ログ出力用ヘッダ(追加) */ #include "http_log.h" #include "http_config.h" #include "http_protocol.h" #include "ap_config

前回の記事では,apxs が生成したテンプレートをそのまま動かしてみましたが,今度は少しコードを書いてみましょう.同じ handler を作っても面白くないので,アクセス制御をするモジュールにしてみます.Apache のアクセス制御は2種類あって,一つはユーザ認証を目的としたもので,mod_auth の眷属がそれです.もう一つはリクエストの別の側面,例えばクライアントのアドレスによってアクセスを許可したり拒否したりするもので,標準モジュールでは mod_access がそれに当たります.あまり複雑なことをしても話が見えにくくなるので,今回作るモジュールではランダムにアクセスを許可したり拒否したりすることにします. apxs -g -n denyrandomとして出力したものをベースにしています). 1 #include "httpd.h" 2 #include "http_config.h

先日は,必要に迫られて Apache 1.3 の mod_access を改造したという話を書きました.その時は単にあるものを改造しただけでしたが,ふと思い立って,一から Apache 2.0 用のモジュールを書いてみました.書く上で色々 Web サイトを探してみたのですが,あまり日本語の入門向けの文章が見あたらなかったので,開発する上で分かったこと(と言うほど大したものじゃないですが)をまとめておこうと思います. フェーズには,例えばそのリクエストを受け付けるか拒否するかを決めるフェーズや,リクエストされた URI と実際のディスク上のファイルとの間の対応付けを解決するフェーズ,そしてもちろん実際のレスポンスを生成するフェーズ等があります.hook 関数を挿入するポイントはこれらのフェーズになりますが,もちろんその全てのフェーズのための関数を用意する必要はありません.また個別の設定を施す


mod_auth_opensocial 0.1.0 をリリースしました。 mod_auth_opensocial は、OpenSocial アプリからサーバに届いた署名付きリクエストの検証(Verification)を行うための Apache 2.0, 2.2 用のモジュールです。 署名付きリクエストとは、OpenSocial の makeRequest 関数 (AUTHORIZATIONパラメータにSIGNEDを指定) により生成され、コンテナにより署名されたリクエストです。 mod_auth_opensocial が署名の検証に成功すると、リクエストは通常通り(HTMLの取得や、PHP、Servlet Containerへのアクセスなど)に処理されます。 検証に失敗すると、HTTPエラーをリクエストの送信者へ返します。 バックエンドが受け取るリクエストは全て署名の検証に成功

"Apacheモジュールプログラミングガイド"ではApache 1.3.xを対象にモジュールの開発方法を解説しています。書籍の中で使っていたApache moduleAPIの関数が、1.3.xから2.0.xではどう変わったか、という対応表を書いてみました。 取り急ぎ書籍の本文中で説明 or 使用した関数とデータ型にしぼって、対応表を用意しました。AP13がApache 1.3.x系で使われているMODULE_MAGICK_COOKIEで、AP20が同様にApache 2.0.xの物。MODULE_MAGICK_COOKIEとはApache moduleAPIのバージョン番号と言うか、どのバージョンのApacheを対象に作られたモジュールなのかを識別するための印みたいなものです。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く