使えるネット+CentOSにSubversion+Apacheでマイリポジトリを作成 †※他のページで、使えるネット用ではなく一般的にまとめなおしたページがあるので、今後はそちらを参照/更新 はじめに †
OpenSSLのインストール †インストール †※最新版ソースは http://www.openssl.org/source/ から cd /usr/local/src wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz tar zxvf openssl-0.9.8e.tar.gz cd openssl-0.9.8e ./config \ --prefix=/usr/local/openssl \ -fPIC shared make make install OpenSSLライブラリへのパスを設定 †※/etc/ld.so.confファイルや/etc/ld.so.conf.d/以下のファイルは、共有ライブラリを参照するパスの設定を行っている。なお、設定はここだけではなく、ユーザ別の環境変数でも設定できたり色々あるらしい。 include ld.so.conf.d/*.conf /etc/ld.so.conf.d/以下を見ると、各ソフトごとに*.confファイルがあるので、opensslについてもそうしてみた。 cd /etc/ld.so.conf.d vim openssl.conf openssl.confファイルを新規作成して、以下の行を記入する /usr/local/openssl/lib 変更を反映する ldconfig Apacheのインストール †前準備 †
ソースの取得・展開 †※最新版は http://httpd.apache.org/download.cgi から取得する cd /usr/local/src wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.6.tar.gz tar fvxz httpd-2.2.6.tar.gz aprのインストール †cd /usr/local/src/httpd-2.2.6/srclib/apr ./configure \ --prefix=/usr/local/apr make make install apr-utilのインストール †※aprと同じ場所に入れている cd /usr/local/src/httpd-2.2.6/srclib/apr-util ./configure \ --prefix=/usr/local/apr \ --with-apr=/usr/local/apr make make install apacheのインストール †※--enable-proxy と --enable-proxy-balancer は、RailsでMongrelを動かすのに必要(らしい) cd /usr/local/src/httpd-2.2.6 ./configure \ --prefix=/usr/local/apache-2.2.6 \ --enable-mods-shared=most \ --enable-dav \ --enable-dav-fs \ --enable-dav-lock \ --enable-cgi \ --enable-cgid \ --enable-proxy \ --enable-proxy-balancer \ --enable-so \ --enable-ssl \ --with-ssl=/usr/local/openssl \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr make make install cd /usr/local ln -s apache-2.2.6 apache httpd.confの設定 †※httpd.confを開いて vim /usr/local/apache/conf/httpd.conf いくつか修正を行う
httpd-ssl.confの設定 †httpd-ssl.confを開いて vim /usr/local/apache/conf/extra/httpd-ssl.conf この2行を修正する必要があるなら修正する SSLCertificateFile "/usr/local/apache-2.2.6/conf/server.crt" SSLCertificateKeyFile "/usr/local/apache-2.2.6/conf/server.key" 今回は以下のような設定にする SSLCertificateFile "/usr/local/apache-2.2.6/ssl_key_and_crt/server.crt" SSLCertificateKeyFile "/usr/local/apache-2.2.6/ssl_key_and_crt/server.key" 秘密鍵と自己署名証明書の作成 †格納用ディレクトリを作成する cd /usr/local/apache-2.2.6 mkdir ssl_key_and_crt cd ssl_key_and_crt サーバ側の秘密鍵の生成、passにはkjirouを入力した /usr/local/openssl/bin/openssl genrsa -des3 -out server.key 1024 Generating RSA private key, 1024 bit long modulus .++++++ .........++++++ e is 65537 (0x10001) Enter pass phrase for server.key: Verifying - Enter pass phrase for server.key: 自己証明書の生成、passは先ほどと同じものを入力すること、その他の項目は任意 /usr/local/openssl/bin/openssl req -new -x509 -days 3650 -key server.key -out server.crt Enter pass phrase for server.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:Tokyo Locality Name (eg, city) []:hoge Organization Name (eg, company) [Internet Widgits Pty Ltd]:hoge Organizational Unit Name (eg, section) []:hoge Common Name (eg, YOUR name) []:hoge Email Address []:hoge@example.com ※ここで入力したpassは、後でApacheを起動させるたびに必要になるので覚えておくこと svn checkout https://kjirou.org/repos/dotfiles svn: PROPFIND リクエスト (相手: '/repos/dotfiles') が失敗しました svn: PROPFIND (URL: '/repos/dotfiles'): Server certificate was missing commonName attribute in subject name (https://kjirou.org) commonNameだけ必要なのか他の項目も居るのか、SVNクライアントの設定によるのかどうか、その辺は不明だが、とりあえず項目は全部入力する方がよい。 Apache起動時にSSLパスフレーズの入力を省略する設定 †cd /usr/local/apache/ssl_key_and_crt cp server.key server.nosigned.key /usr/local/openssl/bin/openssl rsa -in server.nosigned.key -out server.key パスフレーズが求められるので入力する iptablesの確認 †443ポートが開いてないなら空けること ここまでの動作確認 †/usr/local/apache/bin/apachectl start で起動させ http://mydomain.net/ https://mydomain.net/ でアクセスして"It Works!"が表示されていればOK Subversionのインストール †yumで前準備 †CentOS? の「yum install したもの達」を参照 インストール †※yum install subversion を、やってしまっている前提なので、普通にいれるとライブラリが無いエラーが出るかも cd /usr/local/src wget http://subversion.tigris.org/downloads/subversion-1.4.5.tar.bz2 wget http://subversion.tigris.org/downloads/subversion-deps-1.4.5.tar.bz2 tar jxf subversion-1.4.5.tar.bz2 tar jxf subversion-deps-1.4.5.tar.bz2 cd subversion-1.4.5 ./configure \ --prefix=/usr/local/subversion-1.4.5 \ --with-apxs=/usr/local/apache-2.2.6/bin/apxs \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr \ --with-ssl \ --with-editor=/usr/local/bin/vim make make install ※--with-libsは、OpenSSLの場所を設定するらしい(参考 http://solaris.it-cafe.jp/tools/tools07.html)、今回はapache側で設定するので多分不要 シンボリックリンクを張る †cd /usr/local ln -s subversion-1.4.5 subversion ※完了したら /usr/local/subversion/bin にパスを通すこと WebDAV経由でSVNリポジトリを操作可能にする †httpd.confの設定 †httpd.confを編集する vim /usr/local/apache/conf/httpd.conf 以下、ふたつの書き方があるが、今回は全プロジェクトに通用する設定を記入した。
httpd-ssl.confの設定 †先ほどhttpd.confに行った設定を、httpd-ssl.conf にも行う。 vim /usr/local/apache/conf/extra/httpd-ssl.conf ダイジェスト認証用の権限ファイルを作成 †※特にLinuxユーザ名やパスワードとあわせる必要は無い
SVNルートディレクトリの作成 †Apache実行用のユーザになって su - webadmin 今回は /var/repos をSVNルートディレクトリにするということで、普通にディレクトリを作成 mkdir -p ~/var/repos 動作確認 †試験用リポジトリ作成 †webadminユーザの権限で svnadmin create ~/var/repos/testproject を行ってリポジトリを作成。 httpd.confにLocationを設定 †上記Locationディレクティブの設定をtestprojectに対しても行い、Apache再起動 Web経由でチェックアウトする †外部の無関係なサーバからチェックアウトする。 svn checkout http://mydomain.com/repos/testproject svn checkout https://mydomain.com/reops/testproject 同様に内部からもWeb経由でチェックアウトする。 |