Trac インストール †
OpenSSL インストール †インストール †$ wget http://www.openssl.org/source/openssl-0.9.8k.tar.gz $ cd /usr/local/src $ tar zxvf openssl-0.9.8k.tar.gz $ cd openssl-0.9.8k $ ./config -fPIC shared --prefix=/usr/local/openssl $ make $ sudo make install 共有ライブラリに追加 †ファイルの修正 †openssl.conf を新たに作成し「/usr/local/openssl/lib」を記述する。 $ sudo vim /etc/ld.so.conf.d/openssl.conf /usr/local/openssl/lib ldconfig 更新 †$ sudo ldconfig 確認 †$ ldconfig -p | grep 'openssl' 参考URL †Apache2 の取得 †$ cd /usr/local/src $ wget http://www.meisei-u.ac.jp/mirror/apache/httpd/httpd-2.2.11.tar.gz $ tar zvxf httpd-2.2.11.tar.gz apr インストール †apr(Apache Portable Runtime)をインストールする。 インストール †$ cd /usr/local/src/httpd-2.2.11/srclib/apr $ ./configure --prefix=/usr/local/apr --enable-threads $ make $ sudo make install 参考URL †http://apr.apache.org/ apr-util インストール †apr-util(Apache Portable Runtime Utility)をインストールする。 確認 †事前に apr、iconv、expat をインストールしておく。 iconv †iconv がインストールされているか確認する。 $ which iconv expat †expat がインストールされているか確認する。 $ yum list install | grep expat-devel expat がインストールされていなかったら、インストールする。 $ sudo yum install expat-devel インストール †$ cd /usr/local/src/httpd-2.2.11/srclib/apr-util $ ./configure --prefix=/usr/local/apr --with-apr=/usr/local/apr $ make $ sudo make install メモ †confiture するとき、 --with-expat=/usr/local --with-iconv=/usr/local などと場所を指定もできるみたい。 apache2 インストール †インストール †configure するときは、OpneSSL をインストールしたので、「--enable-ssl と --with-ssl」オプションをつける。 $ cd /usr/local/src/httpd-2.2.11 $ ./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-dav --enable-dav-fs --enable-dav-lock --enable-cgi --enable-cgid --enable-cache --enable-mem-cache --enable-proxy --enable-proxy-blancer --enable-rewrite --enable-so --enable-ssl --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-ssl=/usr/local/openssl $ make $ sudo make install configure オプションメモ †ドキュメントキャッシュ機能(参考:強化されたドキュメントキャッシュ機能を使う)
負荷分散のためのロードバランス機能
apache 設定 †apache 実行ユーザ作成 †$ sudo groupadd apache $ sudo useradd -g apache -s /sbin/nologin apache 設定ファイル(httpd.conf)の修正 †以下のように修正する。 $ sudo vim /usr/local/apache2/conf/httpd.conf 変更前 User daemon Group daemon ↓ 変更後 User apache Group apache 以下の1行を追加する。 LoadModule dav_svn_module modules/mod_dav_svn.so apache 自動起動 †apache 起動のためファイルコピー †$ sudo cp /usr/local/src/httpd-2.2.11/build/rpm/httpd.init /etc/rc.d/init.d/httpd $ sudo chmod 755 /etc/init.d/httpd ファイルの修正 †$ sudo vim /etc/rc.d/init.d/httpd 変更前 CONFFILE=/etc/httpd/conf/httpd.conf ↓ 変更後 CONFFILE=/usr/local/apache2/conf/httpd.conf 変更前 apachectl=/usr/sbin/apachectl ↓ 変更後 apachectl=/usr/local/apache2/bin/apachectl 変更前 httpd=${HTTPD-/usr/sbin/httpd} ↓ 変更後 httpd=${HTTPD-/usr/local/apache2/bin/httpd} apache 自動起動設定に httpd を追加 †$ sudo chkconfig --add httpd apache 自動起動設定 †$ sudo chkconfig httpd on apache 自動起動設定の確認 †ランレベル 2, 3, 4, 5 になっていればよい。 $ chkconfig --list httpd Apache の SSL 設定 †設定ファイル(http.conf)の修正 †以下の1行をコメントアウトする。 $ sudo vim /usr/local/apache2/conf/httpd.conf 変更前 #Include conf/extra/httpd-ssl.conf ↓ 変更後 Include conf/extra/httpd-ssl.conf もし、ssl_module を読み込んでいなかったら、以下の1行を追記する。 LoadModule ssl_module modules/mod_ssl.so 設定ファイル(httpd-ssl.conf)の修正 †$ sudo vim /usr/local/apache2/conf/extra/httpd-ssl.conf 変更前 SSLCertificateFile /usr/local/apache2/conf/server.crt SSLCertificateKeyFile /usr/local/apache2/conf/server.key ↓ SSLCertificateFile "/usr/local/apache2/conf/ssl_key_crt/server.crt" SSLCertificateKeyFile "/usr/local/apache2/conf/ssl_key_crt/server.key" フォルダ作成 †$ cd /usr/local/apache2/conf $ sudo mkdir ssl_key_crt 秘密鍵/自己署名証明書作成 †$ cd /usr/local/apache2/conf/ssl_key_crt $ sudo /usr/local/openssl/bin/openssl genrsa -des3 -out server.key 1024 Enter pass phrase for server.key:パスワードを入力 Verifying - Enter pass phrase for server.key:パスワードを入力 $ cd /usr/local/apache2/conf/ssl_key_crt $ sudo /usr/local/openssl/bin/openssl req -new -x509 -days 365 -key ./server.key -out server.crt Enter pass phrase for ./server.key:パスワードを入力 Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:Tokyo Locality Name (eg, city) []:foo Organization Name (eg, company) [Internet Widgits Pty Ltd]:hoge Organizational Unit Name (eg, section) []:hoge Common Name (eg, YOUR name) []:hoge Email Address []:hoge@exmaple.com Apache 起動時のパスフレーズ入力を回避する †$ cd /usr/local/apache2/conf/ssl_key_crt $ sudo /usr/local/openssl/bin/openssl rsa -in server.key -out server.key Enter pass phrase for server.key:パスワードを入力 Apache 起動 †$ sudo /etc/init.d/httpd start Neon インストール †neon(WebDAVクライアントライブラリ)をインストールする。 確認 †事前に zlib と expat もしくわ libxml2 (XMLパーサーライブラリ)をインストールしておく。 zlib †zlib がインストールされているか確認する。 $ yum list installed | grep zlib-devel zlib がインストールされていなかったら、インストールする。 $ sudo yum install zlib-devel libxml2 †libxml2 がインストールされているか確認する。 $ yum list installed | grep libxml2-devel libxml2 がインストールされていなかったら、インストールする。 $ sudo yum install libxml2-devel インストール †バージョンは 0.25.5。 $ cd /usr/local/src/ $ wget http://www.webdav.org/neon/neon-0.25.5.tar.gz $ tar zvxf neon-0.25.5.tar.gz $ cd neon-0.25.5 $ ./configure --prefix=/usr/local/neon --enable-shared --disable-static -with-zlib --with-ssl --with-libs=/usr/local/openssl $ make $ sudo make install 共有ライブラリに追加 †ファイルの修正 †neon.conf を新たに作成し「/usr/local/neon/lib」を記述する。 $ sudo vim /etc/ld.so.conf.d/neon.conf /usr/local/neon/lib ldconfig 更新 †$ sudo ldconfig 確認 †$ ldconfig -p | grep 'neon' 参考URL †swig インストール †swig(Simplified Wrapper and Interface Generator)をインストールする。 インストール †バージョンは 1.3.29。 $ cd /usr/local/src/ $ wget http://downloads.sourceforge.net/swig/swig-1.3.29.tar.gz $ tar zvxf swig-1.3.29.tar.gz $ cd swig-1.3.29 $ ./configure --prefix=/usr/local/swig --with-python=/usr/local/python-2.5.2/bin/python $ make $ sudo make install 共有ライブラリに追加 †ファイルの修正 †swig.conf を新たに作成し「/usr/local/swig/lib」を記述する。 $ sudo vim /etc/ld.so.conf.d/swig.conf /usr/local/swig/lib ldconfig 更新 †$ sudo ldconfig 確認 †$ ldconfig -p | grep 'swig' 参考URL †Subversion インストール †確認 †事前に arp、apr-util、neon、zlib、gettext、iconv をインストールしておく。 gettext †gettext がインストールされているか確認する。 $ yum list installed | grep gettext gettext がインストールされていなかったら、インストールする。 $ sudo yum install gettext $ sudo yum install gettext-devel インストール †$ cd /usr/local/src/ $ wget http://subversion.tigris.org/downloads/subversion-1.5.6.tar.gz $ tar zvxf subversion-1.5.6.tar.gz $ cd subversion-1.5.6 $ ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-neon=/usr/local/neon --with-swig=/usr/local/swig --without-jdk $ make $ sudo make install 参考URL †svn-python インストール †インストールする †$ cd /usr/local/src/subversion-1.5.6 $ sudo make swig-py $ sudo make install-swig-py ファイルを作成する †以下の1行を記述する $ sudo vim /usr/local/python-2.5.2/lib/python2.5/site-packages/svn-python.pth /usr/local/svn/lib/svn-python Subversion リポジトリ作成 †環境にあわせて適当に設定してください。 /home/svn |-- .htpasswd |-- .svnaccess `-- repos |-- sample (リポジトリ) | |-- trunk | |-- branches | `-- tags |-- hoge (リポジトリ) | |-- trunk | |-- branches | `-- tags `-- fuga (リポジトリ) |-- trunk |-- branches `-- tags Subversion 用のユーザ作成 †$ sudo useradd -m svnadmin $ sudo passwd svnadmin ディレクトリを作成 †$ sudo mkdir -p /home/svn/repos $ cd /home/ $ sudo chown svnadmin:svnadmin svn $ cd /home/svn $ sudo chown svnadmin:svnadmin repos リポジトリの作成 †$ su - svnadmin [svnadmin@hoge]$ cd /home/svn/repos [svnadmin@hoge]$ mkdire sample [svnadmin@hoge]$ svnadmin create sample [svnadmin@hoge]$ svn mkdir file:///home/svn/repos/sample/trunk -m "create" [svnadmin@hoge]$ svn mkdir file:///home/svn/repos/sample/branches -m "create" [svnadmin@hoge]$ svn mkdir file:///home/svn/repos/sample/tags -m "create" リポジトリの権限設定 †sample(リポジトリ)フォルダ以下を apache ユーザの権限でアクセスできるようにする。 方法 1 †2行目で apache グループに変更し、3行目で他人が実行する場合にグループの権限で実行するように設定。 $ cd /home/svn/repos $ sudo chgrp -R apache sample $ sudo chmod -R g+s sample 方法 2 †もしくわ、所有者とグループを apache に設定。 $ cd /home/svn/repos $ sudo chown -R apache:apache sample 設定ファイル(http.conf)の修正 †以下の1行を追加する。 $ sudo vim /usr/local/apache2/conf/httpd.conf Include conf/extra/httpd-subversion.conf 設定ファイル(httpd-subversion.conf)を作成 †$ sudo vim /usr/local/apache2/conf/extra/httpd-subversion.conf <Location /svn> DAV svn SVNParentPath /home/svn/repos </Location> apache 再起動 †$ /etc/init.d/httpd restart 動作確認 †以下のURLにアクセスすると、ブラウザでリポジトリが表示される。 http://localhost/svn/sample/ Subversion ベーシック認証の設定 †設定ファイル(httpd-subversion.conf)の作成 †以下のように修正する。 $ sudo vim /usr/local/apache2/conf/extra/httpd-subversion.conf <Location /svn> DAV svn SVNParentPath /home/svn/repos # only authenticated users may access the repository Require valid-user # how to authenticate a user AuthType Basic AuthName "Subversion repository" AuthUserFile /home/svn/.htpasswd </Location> htpasswd の作成 †ソースから apache をインストールした場合、htpasswd コマンドは、/usr/local/apache2/bin/htpasswd (apache のディレクトリ/bin/htpasswd)にインストールされている。 $ cd /home/svn 新規作成 $ htpasswd -c .htpasswd ユーザ名 ユーザ追加 $ htpasswd .htpasswd ユーザ名 ユーザ削除 $ hpasswd -D .htpasswd ユーザ名 apache 再起動 †$ /etc/init.d/httpd restart 動作確認 †以下のURLにアクセスすると、認証がかかっている http://localhost/svn/sample/ Subversion アクセス権限の設定 †設定ファイル(subversion.conf)の修正 †以下のように修正する。 $ sudo vim /usr/local/apache2/conf/extra/httpd-subversion.conf <Location /svn> DAV svn SVNParentPath /home/svn/repos # only authenticated users may access the repository Require valid-user # how to authenticate a user AuthType Basic AuthName "Subversion repository" AuthUserFile /home/svn/.htpasswd # how to access a user AuthzSVNAccessFile /home/svn/.svnaccess </Location> 設定ファイル(httpd.conf)の修正 †以下のように修正する。 $ sudo vim /usr/local/apache2/conf/httpd.conf authz_svn_module の行を dav_svn_module の後に追加する。 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so 設定ファイル(.svnaccess)を作成 †.svnaccess の書き方は、 httpd, Apache HTTP サーバ を参考に。 $ cd /home/svn $ sudo vim .svnaccess [/] admin = rw # sample1 リポジトリ [sample1:/] user1 = rw user2 = r # sample2 リポジトリ [sample2:/trunk/test] user1 = rw user2 = r # sample3 リポジトリ [/sample3] * = Apache 再起動 †$ /etc/init.d/httpd restart 動作確認 †以下のURLにアクセスすると、リポジトリが表示される。 http://localhost/svn/sample/ Clearsilver のインストール †テンプレートシステム インストール †$ cd /usr/local/src $ wget http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz $ tar zxvf clearsilver-0.10.5.tar.gz $ cd clearsilver-0.10.5 $ ./configure --prefix=/usr/local/clearsilver --with-apache=/usr/local/apache2 --with-python=/usr/local/python-2.5.2/bin/python $ make $ sudo make install 参考URL †Trac インストール †インストール †$ cd /usr/local/src $ wget http://ftp.edgewall.com/pub/trac/Trac-0.11.4.tar.gz $ tar zxvf Trac-0.11.4.tar.gz $ cd Trac-0.11.4 $ sudo /usr/local/python-2.5.2/bin/python2.5 ./setup.py install 参考URL †Trac 用のプロジェクト作成 †Trac のプロジェクトを作成 †tractest リポジトリのプロジェクトを作成する。 $ cd /home/project/web $ trac-admin tractest initenv Project Name [My Project]> TracTest (プロジェクト名を入力) Database connection string [sqlite:db/trac.db]> (デフォルトがsqliteなのでそのままEnter) Repository type [svn]> (デフォルトのままなのでEnter) Path to repository [/path/to/repos]> /home/svn/repos/tractest (リポジトリを指定) 確認 †以下のコマンドを実行する †$ tracd --port 8000 /home/project/tractest ブラウザからアクセスする †http://localhost:8000/ mod_wsgi インストール †インストール †$ cd /usr/local/src $ wget http://modwsgi.googlecode.com/files/mod_wsgi-2.5.tar.gz $ tar zxvf mod_wsgi-2.5.tar.gz $ cd mod_wsgi-2.5 $ ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/local/python-2.5.2/bin/python $ make $ sudo make install 設定ファイル(httpd.conf)の修正 †以下の1行を追加する。 $ sudo vim /usr/local/apache2/conf/httpd.conf LoadModule wsgi_module modules/mod_wsgi.so 設定ファイル(dispatch.wsgi)を作成 †$ cd /home/project/web/tractest $ mkdir apache $ cd apache $ vim dispatch.wsgi import os os.environ['TRAC_ENV'] = '/home/project/web/tractest' os.environ['PYTHON_EGG_CACHE'] = '/tmp/.python-eggs' import trac.web.main application = trac.web.main.dispatch_request アップデートする †$ cd /home/project/web $ trac-admin tractest upgrade 権限設定 †なんか、権限がなかったので、パーミッション変更する。 $ cd /home/project/web/tractest $ chmod -R 777 log $ chmod -R 777 db VirtualHost? 設定 †設定ファイル(httpd.conf)の修正 †$ sudo vim /usr/local/apache2/conf/httpd.conf 変更前 # Virtual hosts #Include conf/extra/httpd-vhosts.conf ↓ 変更後 # Virtual hosts Include conf/extra/httpd-vhosts.conf 設定ファイル(httpd-vhosts.conf)の修正 †VirturalHost? の書き方は、http://code.google.com/p/modwsgi/wiki/IntegrationWithTrac を参考にした。 $ sudo vim /usr/local/apache2/conf/extra/httpd-vhosts.conf ログインページのみベーシック認証 <VirtualHost *:80> ServerName trac.localhost.localdomain ServerAdmin m.minaco@gmial.com DocumentRoot /home/project/web/tractest/apache ErrorLog logs/trac-error_log CustomLog logs/trac-access_log combined WSGIScriptAlias / /home/project/web/tractest/apache/dispatch.wsgi <Directory /home/project/web/tractest/apache> Order deny,allow Allow from all </Directory> <Location /login> # how to authenticate a user AuthType Basic AuthName "TracTest" AuthUserFile /home/svn/.htpasswd Require valid-user </Location> </VirtualHost> ページにまるっとベーシック認証 <VirtualHost *:80> ServerName trac.localhost.localdomain ServerAdmin m.minaco@gmial.com DocumentRoot /home/project/web/tractest/apache ErrorLog logs/trac-error_log CustomLog logs/trac-access_log combined WSGIScriptAlias / /home/project/web/tractest/apache/dispatch.wsgi <Directory /home/project/web/tractest/apache> Order deny,allow Allow from all # how to authenticate a user AuthType Basic AuthName "TracTest" AuthUserFile /home/svn/.htpasswd Require valid-user </Directory> </VirtualHost> 複数プロジェクトの場合 <VirtualHost *:80> ServerName trac.localhost.localdomain ServerAdmin m.minaco@gmial.com ErrorLog logs/centos21-error_log CustomLog logs/centos21-access_log combined WSGIScriptAlias /trac1 /home/project/web/trac/trac1/apache/dispatch.wsgi WSGIScriptAlias /trac2 /home/project/web/trac/trac2/apache/dispatch.wsgi <Directory /home/project/web/trac/trac1/apache> Order deny,allow Allow from all </Directory> <Directory /home/project/web/trac/trac2/apache> Order deny,allow Allow from all </Directory> <LocationMatch "/[[:alnum:]]+/login"> AuthType Basic AuthName "Trac" AuthUserFile /home/svn/.htpasswd Require valid-user </LocationMatch> </VirtualHost> Apache 再起動 †$ /etc/init.d/httpd restart 確認 †ブラウザから表示できれば成功 エラー †エラー(1) †エラー内容 †ブラウザから Trac にアクセスすると以下のようなエラーが出た。 Warning: Can't synchronize with the repository (Unsupported version control system "svn": "/usr/local/svn/lib/libsvn_ra_neon-1.so.0: undefined symbol: gss_delete_sec_context" ). Look in the Trac log for more information. 確認 †$ python >>>import svn.repos ImportError: /usr/local/svn/lib/libsvn_ra_neon-1.so.0: undefined symbol: SSL_shutdown 解決策 †neon の configure オプションを以下のようにしてコンパイルしなおしたらなおった。 ./configure --prefix=/usr/local/neon --enable-shared --disable-static -with-zlib --with-ssl --with-libs=/usr/local/openssl neon のリコンパイル $ cd /usr/local/src/neon-0.25.5 $ sudo make clean $ ./configure --prefix=/usr/local/neon --enable-shared --disable-static -with-zlib --with-ssl --with-libs=/usr/local/openssl $ make $ sudo make install Subverion のリコンパイル $ cd /usr/local/src/subversion-1.5.6 $ sudo make clean $ ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-neon=/usr/local/neon --with-swig=/usr/local/swig --without-jdk $ make $ sudo make install エラー(1) †エラー内容 †Warning: Can't synchronize with the repository (Unsupported version control system "svn": "No module named svn" ). Look in the Trac log for more information. 確認 †$ python >>>import svn.repos Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named svn.repos 以下のフォルダに、svn-python.pth ファイルもない。 $ cd /usr/local/python-2.5.2/lib/python2.5/site-packages/ そのため、python が /usr/local/svn/lib/svn-python を読みにいけない。 解決策 †インストールする $ cd /usr/local/src/subversion-1.5.6 $ sudo make swig-py $ sudo make install-swig-py ファイルを作成し、以下の1行を記述する $ sudo vim /usr/local/python-2.5.2/lib/python2.5/site-packages/svn-python.pth /usr/local/svn/lib/svn-python Comment †
Counter: 15741,
today: 1,
yesterday: 0
|