Subversion1.7.2と、Submin2.0.2を導入してみました。
■この記事の内容は、Masanoriのメモ帳へまとめました:
さくらインターネット/さくらのVPSのメモ - Masanoriのメモ帳
さくらインターネット/さくらのVPSのメモ - Masanoriのメモ帳
以下は右往左往しながら試した結果です(^^;)
ライブラリなどのパスはそれぞれ環境によって異なる場合もあるかと思いますので
参考程度にしてください。
また、細かいところ、もっと色々つまづいたのですが...それは端折ってます((>ω<;)
尚、Subversionの古いバージョンがインストールされている場合は、yum eraseで削除しておきます。
リポジトリ用のディレクトリを作成し、リポジトリを作ります。
ディレクトリの権限の設定も。
次に、WSGI(mod_wsgi)のインストール。
ここではmod_wsgi 3.3をインストールします。
次に、共有ライブラリのパスを設定。
mod_pythonが既に2.4に向けて入っていたのですが、これをインストールし直します。
submin2-adminを用いて、/var/lib/subminに対して環境を作成します。
このとき入力するメールアドレスは、パスワードリセットに使うらしく、
後から変更もできるのでとりあえず正しいものを。
さらに、Apacheの設定(httpd.conf)で...
次のモジュールをLoadModuleさせます:
mod_dav_svn, mod_authz_svn, mod_wsgi, mod_dbd, mod_authn_dbd and mod_python
これで準備完了か・・・ということで、
http://****/submin/submin.cgi へブラウザからアクセス・・・。
が、500エラー。
Apacheのエラーログ:
確認のため、
/var/lib/submin/cgi-bin/submin.cgi
を直接実行すると、ちゃんと実行される。(エラー画面のHTMLが出力される)
となると...Apache側で実行している設定がおかしいのか。
/var/lib/submin/cgi-bin/submin.cgiを書き換える。
# vi /var/lib/submin/cgi-bin/submin.cgi
もう・・・この際なんで適当にw
そして、再度アクセス・・・
python2.4のほうを・・・。PATHも設定したはずなのにね。
というわけで、Apacheが渡す環境変数の値(env)をどうにかすべきなんだろうけども...
(ちなみにApacheは、suからservice httpd startで実行させてる)
...面倒くさいので、とりあえず、
・・・お。
ということで完了です(>ω<)♪...とりあえず。
参考にさせていただいたページ(感謝!♪):
[補足]
- Apache: 2.2.21
- さくらのVPSにはデフォルトでPython 2.4がインストールされていますが、
これでは古いので、こちらのとおり Python 2.7をソースからビルドし、
/usr/local/bin/python2.7/ へインストールして共存させている環境です。
まず、前準備としてライブラリをyumでインストール。
$ sudo yum install swig openssl-devel libtool python-devel
SQLiteも入れておく。記事執筆時の最新版です。
$ cd ~Subversionをインストールします。(2011/12/29 現在最新版:1.7.2)
$ wget http://www.sqlite.org/sqlite-autoconf-3070900.tar.gz
$ tar vxf sqlite-autoconf-3070900.tar.gz
$ cd sqlite-autoconf-3070900
$ ./configure
$ make
$ sudo make install
$ cd ..
尚、Subversionの古いバージョンがインストールされている場合は、yum eraseで削除しておきます。
$ cd ~次に、SubversionのPython用モジュールをビルドしてインストールします。
$ wget http://ftp.kddilabs.jp/infosystems/apache/subversion/subversion-1.7.2.tar.bz2
$ tar vxf subversion-1.7.2.tar.bz2
$ cd subversion-1.7.2
$ ./configure \
> --prefix=/usr/local/svn \
> --with-apxs=/usr/sbin/apxs \
> --with-apr=/usr/bin/apr-1-config \
> --with-apr-util=/usr/bin/apu-1-config \
> --with-neon=/usr/include/neon \
> --with-swig=/usr/bin/swig --without-jdk
$ make
$ make install
$ make swig-pyこれに、Python2.7のライブラリディレクトリ上へシンボリックリンクを張ります。
$ sudo make install-swig-py
$ sudo ln -s /usr/local/lib/svn-python /usr/local/lib/python2.7/site-packages/svn-python次に、Subversionの初期設定。
$ sudo ln -s /usr/local/lib/svn-python/svn /usr/local/lib/python2.7/site-packages/svn
$ sudo ln -s /usr/local/lib/svn-python/libsvn /usr/local/lib/python2.7/site-packages/libsvn
リポジトリ用のディレクトリを作成し、リポジトリを作ります。
ディレクトリの権限の設定も。
$ sudo mkdir /var/svn
$ sudo chown -R apache:apache /var/svn
$ svnadmin create /var/svn/test
次に、WSGI(mod_wsgi)のインストール。
ここではmod_wsgi 3.3をインストールします。
$ cd ~
$ wget http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz
$ tar vxf mod_wsgi-3.3.tar.gz
$ cd mod_wsgi-3.3
$ ./configure --with-apxs=/usr/sbin/apxs --with-python=/usr/local/bin/python2.7
$ make
$ sudo make install
次に、共有ライブラリのパスを設定。
$ sudo vi /etc/ld.so.conf”/usr/local/lib ”を追加しておきます。記述しました。
include ld.so.conf.d/*.conf次に、mod_pythonのインストール
/usr/local/lib
mod_pythonが既に2.4に向けて入っていたのですが、これをインストールし直します。
$ wget http://archive.apache.org/dist/httpd/modpython/mod_python-3.3.1.tgzそして、Submin2のインストール。最新版のSubmin2.0.2。
$ tar vxf mod_python-3.3.1.tgz
$ cd mod_python-3.3.1
$ ./configure --with-apxs=/usr/sbin/apxs
$ make
$ sudo make install
$ wget http://supermind.nl/submin/current/submin-2.0.2.tar.gz続いて、Submin2の初期設定を行ないます。
$ tar zxvf submin-2.0.2.tar.gz
$ cd submin-2.0.2
$ sudo python setup.py install
submin2-adminを用いて、/var/lib/subminに対して環境を作成します。
このとき入力するメールアドレスは、パスワードリセットに使うらしく、
後から変更もできるのでとりあえず正しいものを。
$ sudo python submin2-admin /var/lib/submin initenv your@email.address
Please provide a location for the Subversion repositories. For new Subversion
repositories, the default setting is ok. If the path is not absolute, it will
be relative to the submin environment. If you want to use an existing
repository, please provide the full pathname to the Subversion parent
directory (ie. /var/lib/svn).
Path to the repository? [svn]> /var/svn //Subversionのリポジトリパスを入力
Please provide a location for the git repositories. For new git repositories,
the default setting is ok. If the path is not absolute, it will be relative to
the submin environment. If you want to use an existing repository, please
provide the full pathname to the git parent directory (ie. /var/lib/git).
Path to the git repositories? [git]>
Please provide a location for the parent dir of Trac environments. For a new
installation, the default setting is ok. If you don't want to use Trac, the
default setting is also ok. For existing Trac environments, please provide
the full path.
Path to trac environment? [trac]>
Please provide a hostname that can be used to reach the web interface. This
hostname will be used in communication to the user (a link in email, links
in the web interface).
Hostname? [~~]> example.com //ホスト名を入力
The HTTP path tells Submin where the website is located relative to the root.
This is needed for proper working of the website. Submin will be accesible
from <http base>/submin, Subversion will be accessible from <http base>/svn.
If you use Trac, it will be accessible from <http base>/trac.
HTTP base? [/]>
Apache file created: /var/lib/submin/conf/apache.cgi.conf
Please include this in your apache config. Also make sure that you have
the appropriate modules installed and enabled. Depending on your choices,
these may include: mod_dav_svn, mod_authz_svn, mod_wsgi, mod_dbd,
mod_authn_dbd and mod_python
Apache file created: /var/lib/submin/conf/apache.wsgi.conf
Please include this in your apache config. Also make sure that you have
the appropriate modules installed and enabled. Depending on your choices,
these may include: mod_dav_svn, mod_authz_svn, mod_wsgi, mod_dbd,
mod_authn_dbd and mod_python
さらに、Apacheの設定(httpd.conf)で...
次のモジュールをLoadModuleさせます:
mod_dav_svn, mod_authz_svn, mod_wsgi, mod_dbd, mod_authn_dbd and mod_python
これで準備完了か・・・ということで、
http://****/submin/submin.cgi へブラウザからアクセス・・・。
が、500エラー。
Apacheのエラーログ:
[Fri Dec 30 01:41:45 2011] [error] [client ***.***.**.**] ImportError: No module named submin.dispatch.cgirunnersubmin.dispatch.cgirunnerがロードできていないそうで。
[Fri Dec 30 01:41:45 2011] [error] [client ***.***.**.**] Premature end of script headers: submin.cgi
確認のため、
/var/lib/submin/cgi-bin/submin.cgi
を直接実行すると、ちゃんと実行される。(エラー画面のHTMLが出力される)
となると...Apache側で実行している設定がおかしいのか。
/var/lib/submin/cgi-bin/submin.cgiを書き換える。
# vi /var/lib/submin/cgi-bin/submin.cgi
もう・・・この際なんで適当にw
#!/usr/bin/env pythonとしてしまう。
import sys
print print "Content-Type:text/html; charset=UTF-8\n\n"
print sys.path
sys.exit()
そして、再度アクセス・・・
['/usr/lib/python2.4/site-packages/Genshi-0.6-py2.4.egg',・・・はい。そうですか...そうですか...www
'/usr/lib/python2.4/site-packages/Trac-0.11.6.ja1-py2.4.egg', '/usr/lib64/python24.zip', '/usr/lib64/python2.4', '/usr/lib64/python2.4/plat-linux2',
'/usr/lib64/python2.4/lib-tk', '/usr/lib64/python2.4/lib-dynload', '/usr/lib64/python2.4/site-packages',
'/usr/lib64/python2.4/site-packages/Numeric', '/usr/lib64/python2.4/site-packages/gtk-2.0', '/usr/lib/python2.4/site-packages']
python2.4のほうを・・・。PATHも設定したはずなのにね。
というわけで、Apacheが渡す環境変数の値(env)をどうにかすべきなんだろうけども...
(ちなみにApacheは、suからservice httpd startで実行させてる)
...面倒くさいので、とりあえず、
# vi /var/lib/submin/cgi-bin/submin.cgisubmin.cgiを次のように書きかえてしまう。pythonのパスを直接指定。
#!/usr/local/bin/python2.7そして、http://****/submin/submin.cgi へ再度、ブラウザからアクセス・・・。
from submin.dispatch.cgirunner import run
run()
・・・お。
Submin2のデプロイ完了。 |
参考にさせていただいたページ(感謝!♪):
- INSTALL in submin/trunk – Submin
- 「さくらのVPS」に setuptools (python) をインストール « uex555
- Subversion の swig による Python バインディングのビルド | Livingdeadの日記 | スラッシュドット・ジャパン
- SubversionとWebDAV | ももーい鯖覚書
- TracDoc/SakuraInternet – HirobeのHack倉庫 – Trac
- Subversion使ってる人いますか?
- 2011-01-13 - 理想のユーザ・インターフェイスを求めて
- TracModPython - Spark project
0 件のコメント:
コメントを投稿
お気軽にコメントをお寄せください m(_ _)m♪
"コメントの記入者"欄から[名前/URL]を選ぶと、登録なしでコメント投稿していただけます。