-完結-MacOSX今回は、httpdのセキュリティ設定と、現在運用中のWindowsPCサーバからの移行のための準備を行いました。移行試験の結果、問題がなければリセットして再度同じ移行作業を行うので、移行試験の手順が確立した時点で手順は出揃うことになり、この連載らしきものも今回で完結となります。秘密鍵ファイル(*.key)とサーバ認証ファイル(*.crt)を作成して、httpdに設定します。ApacheのSSL設定(httpd-ssl.conf)では、ディレクトリが/private/etc/apache2/、ファイル名がそれぞれ"server.key","server.crt"となっていますので、それに合わせて作成します。ファイルの作成方法は、下記ページが分かり易かったので、ほぼこのページの説明のとおりに行いました。server-memo.net最後に、httpd.confのSSL設定のincludeがコメントアウトされているので、これを解除します。SSLモジュール(mod_ssl.so)の設定はデフォルトで有効になっているのでここでは何もしません。supportこれで、SSL自体の設定は完了です。Apache2)のBasic認証+SSL設定SVNのBasic認証とSSLの設定です。Basic認証に使用するパスワードファイルと、アクセス権を制御するauthz_svn_moduleの設定ファイルを作成していきます。パスワードファイルは、htpasswdコマンドで生成します。Password:アクセス権設定ファイルは、エディタで作成します。ファイル名は"authzsvn.conf"とします。r最後に、httpd.confに設定を行います。前々回の設定時には設定の詳細は省略したので、ここではSVNサーバをApacheで稼動させるための設定もあわせて説明します。SVNサーバにHTTP接続でアクセスするためのDavSVNモジュール(mod_dav_svn.so)と、SVNのアクセス権を制御するAuthzSVNモジュール(mod_authz_svn.so)をロードする設定を追加します。!mpm_netware_module>次に、ファイルの末尾にLocation設定を追加します。以下の例は、リポジトリがSingleModule設定の場合、"http://localhost/svn/work/ModuleName"で接続するための設定です。ユーザ設定ファイル」「AuthzSVNアクセス権設定ファイル」「認証が有効なユーザを許可」「SSLの要求」を意味します。restart)すると、以下のエラーが発生しました。configuration原因は、AuthzSVNモジュール(mod_authz_svn.so)のパスが不正だったためでした。上記の設定では修正されています。設定が無事終わったので、接続確認を行います。LANとWAN、それぞれブラウザ(Firefox3.5)とEclipseプラグインのSubversiveで確認しました。LANで、接続を確認。リポジトリの切り替えも上手くいきました。後日、WANにて同様に確認できました。WindowsでのSVN専用サーバ(VisualSVN)と比べると、ちょっと重いような気がします。これはまた別の機会に検討することにします。TracLight2.1(v0.11.2.1.ja1)のデータをtrac-ja(v0.11.5.ja1)に移行TracLightのプロジェクトディレクトリは、${TRAC_HOME}/projects/SampleProject/のようになっています。「素」のtrac-jaでは、projectsディレクトリは存在しないので、このprojectsディレクトリごとコピーしてみます。httpdのアクセスとなりますので、所有者はwwwとしておきます。Tracのデータ抽出は、trac-adminのhotcopyコマンドを使うと安全です。TracLightでは、スタートメニューから「バックアップ」を実行できます。これは、${TRAC_HOME}/backup/に全てのデータファイルをコピー(hotcopy)してくれます。backup/が存在する場合は上書きされるようです。これだと間違いないので、今回はこれで移行データを準備しました。httpd.confの設定からは、次の項でまとめて行います。Tracをhttpd(Apache2)から起動(mod_python)+Basic認証+SSL設定Tracは、この時点ではtracdで(リスナを)起動しています。これを、httpd(Apache2)上で動くようにします。Apache2上で動かすにはいくつか選択肢があるようですが、ここではmod_pythonモジュールを使うことにしました。これが今回最も苦労した箇所です。いうより、他はすんなり通過できたのに、ここだけ多重のトラップに嵌ってしまったような感じです。そこは先人の方々の英知のお陰で最小限の労力で済んだと思うので、あまり文句は言えません。先に、httpd.confの設定を書いておきます。Pythonの箇所がmod_pythonのための設定です。ここでは詳しい説明は割愛します。valid-user</LocationMatch>(「ここからが地獄だ...」)mod_pythonはインストールされていなかったので、最初はMacPortsでmod_pythonをインストールしてみました。Error"が出てしまいました。trac.web.modpython_frontend"と出ています。site-packageの下に必要なライブラリが存在しないためのようです。このTracのバージョンでは、Python2.5以上が必要にもかかわらず、mod_pythonはPython2.4を参照しているため、このようなエラーとなってしまっています。回避策として、アドホックにシンボリックリンクを張る、mod_pythonをソースファイルビルドでインストールなどがあるようです。シンボリックリンクの方は、ちょっとやってみたところ、一筋縄では行かないようです。mod_pythonがPython2.5以上を参照するようになれば良さそうなので、ソースファイルからビルドしてインストールする対応に切り替えました。/dist/httpd/modpythonから"mod_python-3.3.1.tgz"をダウンロードして、展開、ビルド&インストールします。実際にやる前に事例を調べてみたら、「x86_64用にビルドすべし」とあったので、先にこれを設定。hatena設定後、ビルドを実行するとしようとしたら、コンパイルエラーが。なんとか情報が見つかり、どうやらプログラムの一部(connobject.c)がバグってるらしいことが分かりました。Javaとrubyと男と女これで、Wikiページまでは開けました。