ここでは Aipo( Tomcatで動作する Javaアプリ )へリパースプロシキを使ってアクセスする場合の設定例を掲載します. 設定は OS として Linux CentOS 64bit / Amazon AMI を使用している例です。

設定

ステップ 0 - memcached / libmemcached のインストール
Apache モジュールは memcached を利用します。memcachedサーバ(memcached)、クライアントライブラリ(libmemcached)をインストールしてください。インストール後、memcachedが利用するポートは外部からのアクセスを制限するようにしてください。また、PHP から memcached を利用できるようにPHP 拡張モジュールの memcache を導入してください( PHP には memcache の他に memcached というモジュールもあります。サンプルで使っているのは memcache の方です. yum install php-pear / pecl install memcache )

ステップ 1 - conf ファイルの設定

/etc/httpd/conf.d ディレクトリ内にこの内容で aipo.conf という名前のファイルを作成します。これで http://(サーバ名)/aipo/ に対してアクセス制限を設け、認証されていれば Aipo にアクセスできるようになります。

[備考]

  • Aipoのバージョンは 6 か 7 を想定しています
  • Apache には proxy_ajp_module モジュールが登録されていなければなりません
  • Tomcat の server.xml で ajp コネクタを有効にしてください(既定ではポート 8009 が設定されています)
  • AuthMemHmac_key を任意の文字列に設定してください。
  • この例では 3分( 180秒 ) 操作がなければ自動ログアウトします
  • タイムアウトのリセットが有効化されていますので、3分以内に操作があれば3分延長されます
[備考2] デモで使う Aipo のバージョンを Aipo 7 から Aipo 8 に変更しました。Aipo8 ではいままでの設定ではうまく URL が書き換わらないようです。既定 http ポートも 8080 から 80 に変更されています
デモでは Apache と Aipo 間は http 接続(ポート8080) に変更しました。ページ内の URL は mod_proxy_html で書き換えています(まだ正しく書き換えられていない URL が残っているかもしれません)

ステップ 2 - モジュールの登録

Apache Web サーバの モジュールディレクトリ、例えば /usr/lib64/httpd/modules にモジュールのバイナリをインストールして httpd.conf ファイルに以下の行を追加してください。

LoadModule auth_memhmac_module /usr/lib64/httpd/modules/mod_auth_memhmac.so

設定後、Apacheを再起動してください

http://(サーバ名)/aipo/ にアクセスしてのアクセスが拒否され AuthMemHmac_LoginURL で指定した URL が表示されることを確認してください

ステップ 3 - ログイン処理ページの呼び出し

この内容で PHPファイル PostAuth.php を公開フォルダに作成してください。

[備考]

  • $key は aipo.conf の AuthMemMac_Key値と一致しなければなりません
  • クッキーは secure フラッグが有効になっています。必要に応じて変更してください
  • AuthMemHmac_key を任意の文字列に設定してください。
  • memcached のポートが 11211 になっています。実際のポートに一致させてください
  • setcookie, header関数の(ドメイン名)を環境に合わせて設定してください


以上で設定は完了です。 http://(サイト)/(PostAuth.phpへのパス)にアクセスすると、PHPファイルの最後の行で指定した /aipo/ で Aipo にアクセスできます。

Debian系 Linuxでの設定

モジュールは Ubuntu 12 ( 64bit ) で動作確認済です。ただし、モジュールは libmemcached.so.2 という名前でmemcachedライブラリとリンクされているため、同一名のダイナミックライブラリが存在しないとロードされません。その場合は、システムにインストールされている libmemcached ライブラリへのシンボリックリンクを libmemcached.so.2 名で作成してみてください。

sudo ln -s /usr/lib/libmemcached.so.6.0.0 /usr/lib/libmemcached.so.2

ページのトップへ戻る