忍者ブログ

Home > > mod_hello: 初めてのApacheモジュール

[PR]

  • 2017-10-20

Share on Tumblr このエントリーをはてなブックマークに追加

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Comments:

Trackback+Pingback:

Listed below are links to weblogs that reference
[PR] from Born Neet

Home > > mod_hello: 初めてのApacheモジュール

Home > Apache > mod_hello: 初めてのApacheモジュール

mod_hello: 初めてのApacheモジュール

Share on Tumblr このエントリーをはてなブックマークに追加

さて、今回からモジュールプログラミングをしていきます。
まずは何もしないモジュールを作って、開発の流れを掴みたいと思います。

雛型作成

Apache付属のapxsコマンドを使います。

cd /home/t/module
/home/t/apache/bin/apxs -g -n hello

※ mod_soを有効にしていないとエラーになるので注意。

/home/t/apache/bin/apxs -g -n hello
apxs:Error: Sorry, no DSO support for Apache available
apxs:Error: under your platform. Make sure the Apache
apxs:Error: module mod_so is compiled into your server
apxs:Error: binary `/home/t/apache/bin/httpd'.

ちょっと弄る

雛型そのままでも動きますが、少しだけ変えてみます。

vi mod_hello.c        
        ap_rputs("Hello, Apache Module!<br />\n", r);
        ap_rputs("The sample page from mod_hello.c\n", r);

これだけです。

コンパイル・インストール

make;make installすれば、
モジュールのコピーや設定ファイルへの追記まで勝手にやってくれます。

vi /home/t/.bash_profile
PATH=$PATH:$HOME/bin:$HOME/apache/bin
source /home/t/.bash_profile

cd /home/t/module/hello
make
make install

grep mod_hello /home/t/apache/conf/httpd.conf
LoadModule hello_module       libexec/mod_hello.so

ls /home/t/apache/libexec/mod_hello.so 
/home/t/apache/libexec/mod_hello.so

※ apxsへのパスを通していないとエラーになります。

make
apxs -c    mod_hello.c
make: apxs: コマンドが見つかりませんでした
make: *** [mod_hello.so] エラー 127

動作確認

設定ファイルに以下を追記することで、
動作確認を行うことができます。

vi httpd.conf
Include conf/module.conf

vi module.conf
<Location /hello>
 SetHandler hello
</Location>

firefox localhost:8080/hello &

※ Includeしないで、直接httpd.confに書いてもいいんですが、
  今後いろいろと試してぐちゃぐちゃになりそうだったので、僕は分けておきました。

※ mod_soを無効のままインストールしちゃった場合は、
  apacheディレクトリごと消して入れ直しましょう。
  じゃないと(僕みたいに)以下のエラーに悩まされることになります。

tail -f error_log
Syntax error on line 205 of /home/t/apache/conf/httpd.conf:
Invalid command 'LoadModule', perhaps mis-spelled or defined by a module not included in the server configuration

さて、これでとりあえず、
「Hello, Apache Module!
The sample page from mod_hello.c」
という画面は表示できるようになりました。
(雛型をほぼそのまま動かしただけですが・・・)

次回からいよいよ中身(C言語)に入っていきたいと思います。

PR

Comments:0

Comment Form

Trackback+Pingback:0

TrackBack URL for this entry
Listed below are links to weblogs that reference
mod_hello: 初めてのApacheモジュール from Born Neet

Home > Apache > mod_hello: 初めてのApacheモジュール

Search
Loading
Feeds
Links
スポンサードリンク
Ad
デル株式会社
Ad

Page Top