スポンサーサイト

-------- --:--:-- --

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【Solr】Solrサーバのセットアップ【tomcat】

2012-03-27 00:45:12 Tue

■環境


  • CentOS 5 32bit

  • jdk 1.6.0.31

  • solr 3.4.0

  • tomcat 7.0.23


solrは1つのコアしか利用しないつもりでも将来的なマルチコアを想定して環境を作っておく。
そんなに面倒でもないので。

あと、solrにはjettyが同梱されます。
そのままjettyを使っても良いのですがapache tomcat 上で利用することにし、tomcatはapache httpサーバとajpプロトコルで連携させます。

細かいファイル構成まで書いていると死にそうなのでざっくりと。

solr本体
WS000015_20120726161120.jpg

solr_home
WS000020_20120726175754.jpg
←マルチコアのフォルダを置いていく。このsolr直下にsolr.xmlがある

tomcat本体
WS000017_20120726161412.jpg
←/usr/local/jakarta/apache-tomcat-7.0.26/conf/Catalina/localhost/solr.xml でWARのdocBaseを指定しつつtomcatのEnvironmentのnameにsolr_home、valueにsolr_homeのパスを文字列で記述

solr webアプリ
WS000019_20120726162006.jpg
←/usr/local/apache-solr-3.4.0/dist/apache-solr-3.4.0.war を展開したものを入れておく。フィルターの設定とかいらないとか、WARがあるならわざわざ展開する必要はない。


■JDKのインストール


./jdk* を実行して展開する

/usr/local ディレクトリに移動する

bash_profileなどにJavaの実行パスを追加


PATH=$PATH:$HOME/bin

JAVA_HOME=/usr/local/jdk1.6.0_31

PATH=$PATH:$JAVA_HOME/bin


java -version でインストールの確認

※ bit数に注意

実はJavaにパス通さなくても下記のtomcatインストールのところにある
vi /etc/init.d/tomcat7 の起動用スクリプトで
JAVA_HOME をちゃんと設定していれば問題なし。

■apacheのインストール


http://itochif.com/contents/Linux/centos5/web/apache_00100.html 参考

rpm -qa httpd でインストール済みか確認

yum -y install httpd でインストールする

/etc/rc.d/init.d/httpd start で apache 起動

起動/停止コマンドの参考 http://tech.hitsug.net/?CentOS%2FApache%2F%E8%B5%B7%E5%8B%95%E8%A8%AD%E5%AE%9A

/etc/rc.d/init.d/httpd stop でapacheを停止する


■tomcatのインストール



http://symfoware.blog68.fc2.com/blog-entry-839.html を参考

mkdir /usr/local/jakarta ディレクトリを作成

jakartaディレクトリでtomcatのターボールを展開

apache-tomcat-7.0.23/bin/startup.sh で起動確認

apache-tomcat-7.0.23/bin/shutdown.sh で停止


ln -s /usr/local/jakarta/apache-tomcat-7.0.23 /usr/local/tomcat7 でシンボリックリンク作成

vi /etc/init.d/tomcat7 で起動用スクリプト作成


#! /bin/sh
### BEGIN INIT INFO
# Provides: tomcat7
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: tomcat7 servlet server
# Description: tomcat7 servlet server
### END INIT INFO

DESC="tomcat7 servlet server"
NAME=tomcat7
DAEMON1=/usr/local/tomcat7/bin/startup.sh
DAEMON2=/usr/local/tomcat7/bin/shutdown.sh
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

export JAVA_HOME=/usr/local/jdk1.6.0_31
export TOMCAT_HOME=/usr/local/tomcat7

. /lib/lsb/init-functions

case "$1" in
start)
echo -n "Starting servlet server: $NAME"
$DAEMON1
;;
stop)
echo -n "Stopping servlet server: $NAME"
$DAEMON2
;;
*)
echo "Usage: $SCRIPTNAME {start|stop}" >&2
exit 1
;;
esac
exit 0


chmod 755 などで実行権限を付与

/etc/init.d/tomcat7 start で起動

/etc/init.d/tomcat7 stop で停止

自動起動設定などをしておく


■solrのインストール


unzip apache-solr-3.4.0.zip で展開する

/usr/local ディレクトリに展開したディレクトリをすべて移動する


/usr/local/apache-solr-3.4.0/example を main などディレクトリ名を変更するかディレクトリコピーする

/usr/local/apache-solr-3.4.0/main/multicore/solr.xml で使用するコア名とディレクトリを指定する


  <cores adminPath="/admin/cores">
    <!--<core name="core0" instanceDir="core0" />-->
    <core name="core1" instanceDir="core1" />
  </cores>



/usr/local/apache-solr-3.4.0/main/multicore/core1 にlibディレクトリを作成

lucene-gosen-1.1.1-naist-chasen.jarをlibディレクトリに配置

/usr/local/apache-solr-3.4.0/main/solr/conf を /usr/local/apache-solr-3.4.0/main/multicore/core1/conf にコピー

confディレクトリ内に定義した schema.xml を配置

下記のコマンドでsolrサーバを起動/停止確認

■solr実行コマンドチューニング


java -Dsolr.solr.home=multicore -DSTOP.PORT=8888 -DSTOP.KEY=hogefuga -server -Xmx8192m -Xms5120m -XX:+UseGCOverheadLimit -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+UseTLAB -XX:MaxPermSize=1024m -XX:MaxDirectMemorySize=2048m -jar start.jar &




java -Dsolr.solr.home=multicore -DSTOP.PORT=8888 -DSTOP.KEY=hogefuga -server -Xmx8192m -Xms5120m -XX:+UseGCOverheadLimit -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+UseTLAB -jar start.jar &



■solrサーバ起動/停止コマンド

◯起動


java -Dsolr.solr.home=multicore -DSTOP.PORT=8888 -DSTOP.KEY=hogefuga -jar ./start.jar &



◯停止


java -DSTOP.PORT=8888 -DSTOP.KEY=hogefuga -jar ./start.jar --stop &




mkdir /usr/local/solr でディレクトリを作成

cp -r /usr/local/apache-solr-3.4.0/example/solr/* /usr/local/solr でディレクトリコピー、
あとで行うマルチコア用の設定をするのでrm -fr conf などでconfやbinディレクトリは削除しておく。

cp -r /usr/local/apache-solr-3.4.0/contrib/ /usr/local/solr/ でディレクトリコピー

cp -r /usr/local/apache-solr-3.4.0/dist/ /usr/local/solr/ でディレクトリコピー

mkdir /opt/solr でディレクトリを作成

unzip /usr/local/apache-solr-3.4.0/dist/apache-solr-3.4.0.war で/opt/solr に展開

cd /usr/local/tomcat7/conf/Catalina/localhost/solr.xml を以下のように作成


<?xml version="1.0" encoding="utf-8"?>
<Context docBase="/opt/solr/" debug="0" crossContext="true">
    <Environment name="solr/home" type="java.lang.String" value="/usr/local/solr" override="true"/>
</Context>



マルチコアの設定として /usr/local/solr/solr.xml を変更


<!--  <cores adminPath="/admin/cores" defaultCoreName="core1">-->
  <cores adminPath="/admin/cores">
    <!--<core name="core0" instanceDir="core0" />-->
    <core name="core1" instanceDir="core1" />
  </cores>




defaultCoreName を設定すると、http://ホスト名:ポート/solr/admin/ で http://ホスト名:ポート/solr/core1/admin/ のエイリアスとしてアクセスできる

/usr/local/solr にcore1フォルダを作成

cp -r /usr/local/apache-solr-3.4.0/example/solr/conf /usr/local/solr/core1 でディレクトリをコピー

/usr/local/solr/core1 にlibディレクトリを作成

lucene-gosen-1.1.1-naist-chasen.jarをlibディレクトリに配置

/usr/local/solr/core1/conf/solrconfig.xml の../../ となっているところを /usr/local/solr/ に置換

ここまででtomcatを起動してアクセスできることを確認


■apacheとtomcatの連携


vi /etc/httpd/conf.d/proxy_ajp.conf を更新

# 最終行に追記
ProxyPass /tomcat/ ajp://localhost:8009/

/etc/rc.d/init.d/httpd restart でapacheをリスタート

/etc/init.d/tomcat7 stop して start でtomcatをリスタート

http://ホスト名/tomcat/solr/core1/admin/ こんな感じでアクセスできることを確認

ルートから丸ごとtomcatにプロキシする場合は

ProxyPass / ajp://localhost:8009/ とすることでOK

8080ポートでのアクセスは不要なので vi /usr/local/tomcat7/conf/server.xml でポートを利用しないように設定変更


<!--<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />-->




■クエリーの文字コードが化けてしまうので対策


http://shinodogg.com/?p=3035

○tomcat6に付属しているサンプルのフィルタクラスをtomcat7にコピーしてweb.xmlに設定
\apache-tomcat-6.0.35.tar\apache-tomcat-6.0.35\webapps\examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class これがいる

これを /opt/solr/WEB-INF/classes/filters/SetCharacterEncodingFilter.class にコピー

/opt/solr/WEB-INF/web.xml にfilter設定を追記


<filter>
   <filter-name>Set Character Encoding</filter-name>
   <filter-class>filters.SetCharacterEncodingFilter</filter-class>
   <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>Set Character Encoding</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>



○server.xmlのajpプロトコルでエンコーディングの設定を追加
vi /usr/local/tomcat7/conf/server.xml で ajp プロトコルのところでエンコーディング周りの設定を追加。


<Connector port="ポート" ~略~ protocol="AJP/1.3″ ~略~
useBodyEncodingForURI="true" URIEncoding="UTF-8″ />




■JAVA_OPTSの設定


http://ameblo.jp/wataru420/entry-10837851281.html
http://d.hatena.ne.jp/flick-flick/20120120/1327024721

/usr/local/tomcat7/bin/setenv.sh を作成


#!/bin/sh

JAVA_OPTS="-server -Xms512M -Xmx512M"

export JAVA_OPTS



◯tomcatのBasic認証はこちら(apacheでやればいいみたいだけどajpとか使ってても普通にやればいいの?がわからず調査していないのでtomcatでやってます)
http://zonotex.blogspot.jp/2012/05/tomcatapache-solrbasic.html

solrjでBasic認証ヘッダ付与の実装例
http://zonotex.blogspot.jp/2012/05/caused-by-org.html
スポンサーサイト

【環境構築】サーバのセキュリティ設定

2011-12-09 00:25:32 Fri

サーバのセキュリティ設定を少しずつやっていきます。

■ssh接続の設定


次の3つを行います。
・ssh接続時、rootでのログイン禁止
・パスワード認証の禁止
・特定ユーザのみに接続許可

まずは、sshの接続でrootでの接続を禁止します。

そのために、、、まずユーザを適当に追加してみます。


useradd centosadm


パスワードはmkpasswdでランダム文字列を生成すると良いです。
centosにはデフォルトではmkpasswdが入っていないので入れてからパスワードを設定します。

yum install expect
mkpasswd -l 16 -d 4 -c 6 -C 6 -s 0
passwd centosadm


http://nullpopopo.blogcube.info/2008/01/memo-centos.html
http://www.ksknet.net/linuxjq/mkpasswd.html

ユーザを追加したらrootでの接続を禁止します。


cd
cp /etc/ssh/sshd_config ./
vi /etc/ssh/sshd_config




#PermitRootLogin yes

PermitRootLogin no


設定を変更したらsshdを再起動。

/etc/rc.d/init.d/sshd restart


次にパスワード接続を禁止して公開鍵認証にします。
いきなりパスワード接続を禁止にはせずに、
先に公開鍵認証の設定を行なってからパスワード接続を禁止にします。

私はWindows環境からteratermもしくはpuTTYでssh接続します。
Windows環境でpuTTYを使用してssh用の公開鍵と秘密鍵を作成します。

puTTYのDLはこちらから。
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

puTTYの使い方は解説サイトがいくつもありますのでそちらで。
http://www-net.nifs.ac.jp/lnas/manual/man-sshrsa.html
簡単に手順をメモすると、
1.PUTTYGEN.EXEよりGenerateボタンを押下
2.アプリ内のKeyでマウスを動かす(マウス位置で乱数を生成しているらしいです。日付とかも加味してるかな)
3.Key passphraseとConfirm passphraseを入力
4.Save public_key を出力
5.Save private key (秘密鍵)を出力
6.Keyで表示されている文字列をテキストファイル(公開鍵)に出力
→これを linux サーバの ~/.ssh/authorized_keys とする
7.5で出力したppkをLoadより読み込む
8.メニューのConversionsでOpenSSH key(秘密鍵)を出力
→これが teraterm や mac のコンソールで ssh接続する際の秘密鍵
です。

この公開鍵をサーバに持っていくのですが、ここでサーバ側で
sshのログインユーザ(上記までならcentosadm)にユーザを切り替えます。
そしてcdでホームディレクトリへ移動します。
ここに.sshディレクトリを作成します。

cd
mkdir .ssh
ls -la


ここにPUTTYGEN.EXEで作成した公開鍵(6で保存したファイル!4ではない)をもっていき、ファイル名をauthorized_keysにし、さらに権限を変更します。
公開鍵を間違えているとPUTTY.EXEなどで接続する際に次のエラーが出ます。

Server refused our key


もし別問題であった場合は、/var/log/secureにssh接続時のログが出力されるようなのでtail -f などで参照してください。
また、権限を変更する意味は、鍵認証の鍵が変更されていることを認証プロセスが検知するためなようです。
ディレクトリ/ファイルの所有者以外は書き込み権限がないようにする権限設定で下記手順はこれを考慮しています。

cd
cd .ssh
mv putty.pub authorized_keys
chmod 600 authorized_keys
ls -la
cd ..
chmod 755 .ssh
ls -la


なお、この設定はsshd_configの次の場所によって定義されます。

vi /etc/ssh/sshd_config
・・・
#AuthorizedKeysFile .ssh/authorized_keys
・・・


これらが終わったらPUTTY.EXEを起動して
1.Session のHOSTNAMEに各IPアドレスもしくは名前
2.Connection > Data の Auto-login username を指定(ここではcentosadm)
3.Connection > SSH > Auth のPrivate key file for authentication:より
 PUTTYGEN.EXEで作成した5の秘密鍵を指定
4.Session に戻り Saved Sessions にセッション名を指定してSave
まで行いOpen、うまく接続できれば成功。

公開鍵認証でログインできるようになったのでsshのパスワード認証を禁止します。


vi /etc/ssh/sshd_config



#PasswordAuthentication yes

PasswordAuthentication no


これでパスワード認証が禁止されました。

公開鍵認証でsshでログインするcentosadm以外はssh接続できないように設定します。

vi /etc/ssh/sshd_config


次に最下行に次を追加します。

AllowUsers centosadm



■サーバへの接続をsshのみに


・telnetやftp経由での接続を禁止
これはここそのままです。
http://www.turbolinux.com/products/server/11s/user_guide/tcpwrapperconf.html

vi /etc/hosts.deny



ALL:ALL



vi /etc/hosts.allow



ALL : 127.0.0.1
sshd : ALL



■suできるユーザを限定


suできるユーザを限定する、すなわちwheelグループに属しているアカウントのみがsuできる、ということのようです。

まずはcentosadmをwheelグループに所属させます。
1と2のいずれかで大丈夫です。

1./etc/groupをそのまま変更

vi /etc/group



wheel:x:10:root

wheel:x:10:root,centosadm



2.コマンド

usermod -G wheel centosadm


次にWHEELグループのユーザしかsuできないようにします。
http://d.hatena.ne.jp/hamaco/20080425/1209123632
/etc/pam.d/suのみの設定変更では他のユーザにsuできなくなってしまうようなので /etc/login.defs も変更しておく。

vi /etc/login.defs



SU_WHEEL_ONLY yes



vi /etc/pam.d/su



#auth required pam_wheel.so use_uid

auth required pam_wheel.so use_uid


これでひとまず少しはセキュアになった、がまだまだ…。

※teratermでsshログインする場合は「8.メニューのConversionsでOpenSSH key(秘密鍵)を出力」した秘密鍵を指定して下さい。

【環境構築】CentOS5.7にApacheとSubvesionとTrac

2011-12-08 02:27:13 Thu

centos 5.7に
subversion と trac とインストールする。

subversionはapache経由でBasic認証で接続できるようにする。

■Apacheのインストール


こちらを参考にしながらApacheをインストールする。


yum -y install httpd



vi /etc/httpd/conf/httpd.conf で設定ファイルを変更する。
ここは適宜変更するが、あんまり詳しくないので下記のようにした。


Options Indexes FollowSymLinks
  ↓
Options Includes ExecCGI FollowSymLinks ← CGI,SSIの許可

AllowOverride None
  ↓
AllowOverride All ← .htaccessの許可

ServerSignature On

ServerSignature Off ← エラーページでサーバー情報を表示しないようにする

#AddHandler cgi-script .cgi

AddHandler cgi-script .cgi .pl ← CGIスクリプトに.plを追加


Options Indexes MultiViews

Options MultiViews ← iconsディレクトリのファイル一覧を表示しないようにする
AllowOverride None
Order allow,deny
Allow from all



ここまでやったら


/etc/rc.d/init.d/httpd start ← httpd起動



でサーバを起動する。
ただ、CentOSを普通にインストールしているとファイアウォールの設定があるので下記を設定。


system-config-securitylevel-tui


WS000176.jpg

WS000177.jpg

80番ポートのアクセスを許可する

■subversionのインストール




yum -y install subversion mod_dav_svn ← subversionインストール



vi /etc/httpd/conf.d/subversion.conf で Apache用Subversion設定ファイル編集する。

以下を最終行へ追加


←http://hostname/repos/...のURLになる。URLをhttp://hostname/svn/...としたければ/svnなどURL名にあわせて変更する。
DAV svn
SVNParentPath /var/www/svn
SVNAutoversioning on
内部からのみアクセスする場合(ここから)
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1.0/24 ← 内部ネットワークアドレスを指定
内部からのみアクセスする場合(ここまで)

# Limit write permission to list of valid users.

# Require SSL connection for password protection.
# SSLRequireSSL

AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user






/etc/rc.d/init.d/httpd restart ← httpd停止して起動



【リポジトリ作成】

[root@centos ~]# svnadmin create /var/www/svn/test ← リポジトリ(例:test)作成

[root@centos ~]# chown -R apache:apache /var/www/svn/test/ ← リポジトリ所有者をApache実行ユーザーに変更


http://サーバー名/repos/test

この時点で参照することができます。

WS000178.jpg


参照にもBasic認証させたければLimitExceptノードをコメントアウトして次のようにしておく。


# Limit write permission to list of valid users.
#
# Require SSL connection for password protection.
# SSLRequireSSL

AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user
#




■Basic認証アカウントを作成



.htpasswdファイル作成
(1).htpasswdファイルを新規作成する場合

[root@centos ~]# htpasswd -b -c /etc/httpd/conf/.htpasswd centos centospassos ← .htpasswdを作成してユーザーcentosを登録する
Adding password for user centos



(2)既存の.htpasswdファイルへユーザーを追加する場合

[root@centos ~]# htpasswd -b /etc/httpd/conf/.htpasswd centos centospassos ← 既存の.htpasswdへユーザーcentosを登録する
Adding password for user centos



(3)ユーザー登録確認

[root@centos ~]# cat /etc/httpd/conf/.htpasswd ← ユーザー登録確認
centos:vYwnFfo59lI/c



※Basic認証の確認
(1)テスト用ディレクトリ、ページ作成

[root@centos ~]# mkdir /var/www/html/secret ← テスト用ディレクトリ作成

[root@centos ~]# echo test > /var/www/html/secret/index.html ← テスト用ページ作成



(2).htaccessファイル作成
.htpasswdに登録してある全てのユーザー名で認証できるようにする場合

[root@centos ~]# vi /var/www/html/secret/.htaccess ← テスト用ディレクトリに.htaccess作成
SSLRequireSSL
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /dev/null
AuthName "secret page"
AuthType Basic
require valid-user



http://ホスト名/secret/ にアクセスして認証ウィンドウが出ればBasic認証されている。

WS000178.jpg

■tracのインストール


http://www.cafechantant.com/blog/2007/08/27/centos5-%E3%81%A7-subversiontrac/
http://blog.ciklone.com/2010/05/13/linuxcentos-5-4-%E3%81%ABtrac%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/


yum install python

yum install sqlite



pysqliteをインストールしたいんだけど次のようなエラーになる。

error: command 'gcc' failed with exit status 1

これはsqlite-develがあれば私の環境では発生せず正常にインストールできたので、
先にyum install sqlite-develでsqlite-develをインストールする。

私はこの方と同じエラーはでているけど対処方法は違っているみたいです。


yum install python-devel ←いるかどうかわからないけど、いつもこれインストールしていたのでおまじない。

yum install sqlite-devel

wget http://pysqlite.googlecode.com/files/pysqlite-2.6.0.tar.gz
tar xzvf pysqlite-2.6.0.tar.gz
cd pysqlite-2.6.0
python setup.py build_static install


次にこのあたりからpython のバージョン似あわせてwgetで取得してくる
http://pypi.python.org/pypi/setuptools#files


sh setuptools-0.6c11-py2.4.egg



これを参考にしつつeggファイルは展開されるように--always-unzip オプションをつけておくようにする。おまじない。


easy_install --always-unzip Genshi

easy_install --always-unzip Babel



DAGレポジトリを追加。

# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# vi /etc/yum.repos.d/rpmforge.repo
・・・
enabled = 1
・・・

・・・
enabled = 0
・・・
に変更。

# yum --enablerepo=rpmforge install -y python-clearsilver

# yum install -y mod_python


日本語版tracをDLして展開する。

http://www.i-act.co.jp/project/products/products.html


wget http://www.i-act.co.jp/project/products/downloads/Trac-0.12.2.ja1.zip
# unzip Trac-0.12.2.ja1.zip
# cd Trac-0.12.2.ja1
# python setup.py install



Tracプロジェクト用ディレクトリの作成

# mkdir /var/www/trac

trac-admin /var/www/trac/test initenv



で、うまくいくはずなのにtracで使用するデータベースの選択時に下記のようなエラーに。


プロジェクトの生成と初期化
initenv 失敗: '/var/www/html/trac012/test-new'
tracenv が作成できません。
SQLite 向け Python バインディングをロードできません
Traceback (most recent call last):
File "usr/lib/python2.4/site-packages/trac/admin/console.py", line 413, in do_initenv
File "usr/lib/python2.4/site-packages/trac/env.py", line 221, in __init__
File "usr/lib/python2.4/site-packages/trac/env.py", line 408, in create
File "usr/lib/python2.4/site-packages/trac/db/api.py", line 145, in init_db
File "usr/lib/python2.4/site-packages/trac/db/api.py", line 195, in get_connector
TracError:
initenv 失敗: '/var/www/html/trac012/test-new'
1
Traceback (most recent call last):
File "usr/lib/python2.4/site-packages/trac/admin/console.py", line 418, in do_initenv
SystemExit: 1



これは「pysqlite未導入だとinitenvしたときにエラーが出ます」との通り、
pysqlite周りかと思い、もう一度pysqliteを下記のようにインストールしてみる。おまじない。


cd pysqlite-2.6.0

python setup.py build_static install



http://d.hatena.ne.jp/tomo_snowbug/20100613/1276365386

これでもう一度行うと、


trac-admin /var/www/trac/test2 initenv



Congratulations!が表示されてうまくいったっぽい。


tracd --port 8000 /home/develop/trac/test2 &



で確認してみる。


wget http://127.0.0.1:8000/

cat index.html



Available Projectsの見出しで先程追加したプロジェクトがあればひとまず成功。


chown -R apache:apache /var/www/trac/test2

vi /etc/httpd/conf.d/trac.conf


SetHandler mod_python
PythonDebug On
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/www/trac
# PythonOption TracUriRoot /trac



AuthType Basic
AuthName "trac"
AuthUserFile "/etc/httpd/conf/.htpasswd"
Require valid-user


/etc/rc.d/init.d/httpd restart ← httpd停止して起動



回避しようとしていたエラーになってしまった…。


Mod_python error: "PythonHandler trac.web.modpython_frontend"

Traceback (most recent call last):

File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 287, in HandlerDispatch
log=debug)

File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 461, in import_module
f, p, d = imp.find_module(parts[i], path)

ImportError: No module named trac



これはeggがアーカイブされたままであるために起こっている模様。
解凍して展開した状態にする。

WS000182.jpg

WS000183.jpg

これでなんとかtracが表示されるはず。

WS000184.jpg

WS000186.jpg

ここで、

TimeoutError: Unable to get database connection within 0 seconds


が表示されたらここを参考にして/var/www/trac/test2/dbディレクトリの所有者がrootとかになっていてapacheから権限がない状態になっているので権限を変更すればこの例外は対処できる。

なお、tracも閲覧制限する場合は/etc/httpd/conf.d/trac.confを変更する。
例えば下記を追加するなど。



AuthType Basic
AuthName "trac"
AuthUserFile "/etc/httpd/conf/.htpasswd"
Require valid-user




参考URL
http://pocomoco.net/trac-ja-0-12-%E3%81%AB%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89/
http://trac.edgewall.org/ticket/4435
http://ruk.ca/content/importerror-no-module-named-trac
http://centossrv.com/subversion.shtml
http://centossrv.com/apache.shtml
http://centossrv.com/apache-htpasswd.shtml
http://blog.ciklone.com/2010/05/13/linuxcentos-5-4-%E3%81%ABtrac%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/
http://www.cafechantant.com/blog/2007/08/27/centos5-%E3%81%A7-subversiontrac/
http://www.l2tp.org/?p=1735
名言集
全記事(数)表示
全タイトルを表示
ブログ内検索
Loading
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。