設定
ステップ 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分延長されます
デモでは 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