CentOS環境構築

= {{{環境構築(CentOS)}}} =

[[PageOutline]]

|| 環境 || 使えるネットのシルバープラン ||
|| OS || Linux ||
|| ディストリビューション || CentOS release 4.5 (Final) ||

== グループ・ユーザー追加 ==

* グループ作成

{{{
# groupadd -g 1000 グループ名
}}}

* ユーザー作成

{{{
# useradd -g グループ名 -d /home/ユーザーディレクトリ名 -m ユーザー名
# passwd ユーザー名
Changing password for user ユーザー名.
New UNIX password: パスワード入力(ユーザー名)
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:パスワード入力(ユーザー名)
passwd: all authentication tokens updated successfully.
}}}

※上記の方法では無く、下記で行うようにすること。
 何を弄ったのか解らなくらる可能性があるので。
 下記の方法で行えばちゃんと内容も解る。

* vipwにてユーザーを追加する
{{{
/usr/sbin/vipw
}}}

でパスワードファイルを編集する。
/etc/passwd と /etc/master.passwd があるので、これらのファイルを直接エディタで書き換えてはいけない。[[BR]]
2つのファイルの間に矛盾が発生する可能性があるからである。vipw を使うと、自動的に2つのファイルの整合性を取ってくれる。
vipwコマンドは環境変数EDITORで指定したエディターでパスワードファイル(/etc/passwd、/etc/shadow)を開きます。

{{{
account:password:UID:GID:GECOS:directory:shell
}}}

|| account || ユーザー名。他と重複しない名前。8文字以内||
|| password || ユーザーの暗号化されたパスワード。ログインできないユーザ,あるいはシャドウパスワードを使う場合は’*’||
|| UID || ユーザID ||
|| GID || ユーザーが属するグループID ||
|| GECOS || ユーザのフルネームなどを記載する。省略可能 ||
|| directory || ユーザーのホームディレクトリ ||
|| shell || ログインシェルのプログラム名。空欄の 場 合は/bin/shが 使われる。存在しないプログラムが設定された場合,loginコマンドではシステムにログインできなくなる ||

{{{
/usr/sbin/vigr
}}}

にてグループファイルを編集する。
vigrコマンドは環境変数EDITORで指定したエディターでグループファイル(/etc/group、/etc/gshadow)を開きます。

{{{
group_name:passwd:GID:user_list
}}}

|| group_name || グループの名前 ||
|| password || グループに設定されたパスワード(暗号化されている)。[[BR]]あるユーザがこのグループの権限を使うために,newgrpコマンドなどを実行する場合に,[[BR]]ここに登録されているパスワードと照合する。[[BR]]user_listに登録されているユーザはパスワード照合を必要としない。[[BR]]パスワードが空欄の場合もパスワード照合を必要としない。 ||
|| GID || グループIDの数値。 ||
|| user_list || グループのメンバー全員のユーザー名。それぞれのユ ーザ名はカンマ(’,’)で区切る。 ||

== sudoインストール ==

http://www.courtesan.com/sudo/

{{{
$cd /usr/local/src
$wget
$tar zxvf sudo-1.6.9p8.tar.gz
$cd sudo-1.6.9p8
$./configure
$make
$make install
}}}

* sudo設定

{{{
$/usr/local/sbin/visudo
}}}

{{{
# sudoers file.
#
# This file MUST be edited with the ‘visudo’ command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root ALL=(ALL) ALL
ここへユーザーを追加する

例:
sample_user ALL=(ALL) ALL
}}}

== rootユーザーのログイン禁止 ==

{{{
$sudo vim /etc/ssh/sshd_config

#PermitRootLogin yes を
PermitRootLogin no に変更する
}}}

== {{{yumインストール}}} ==

{{{
$sudo yum install screen
$sudo yum install feetype-devel
$sudo yum install feetype2-devel
$sudo yum install libjpeg-devel
$sudo yum install libpng-devel
$sudo yum install zlib-devel
}}}

== vim7インストール ==

{{{
$cd /usr/local/src
$sudo wget ftp://ftp.vim.org/pub/vim/unix/vim-7.1.
tar.bz2
$sudo wget ftp://ftp.vim.org/pub/vim/extra/vim-7.1-extra.tar.gz
$sudo wget ftp://ftp.vim.org/pub/vim/extra/vim-7.1-lang.tar.gz
$sudo tar jxf vim-7.1.tar.bz2
$sudo tar xzvf vim-7.1-extra.tar.gz
$sudo tar xzvf vim-7.1-lang.tar.gz
$cd vim71
$sudo mkdir patches
$cd patches
$sudo curl -O ‘ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.[001-100]’
$cd ../
$cat patches/7.1.* | patch -p0

$sudo ./configure \
–enable-multibyte \
–enable-xim \
–enable-fontset \
–with-features=big \
–prefix=/usr/local/vim7

$sudo make
$sudo make install
}}}

== {{{Mecabインストール}}} ==

{{{
$sudo wget http://downloads.sourceforge.net/mecab/mecab-0.96.tar.gz?modtime=1181487226&big_mirror=0
$sudo tar xzvf mecab-0.96.tar.gz
$sudo ./configure \
–prefix=/usr/local/mecab \
–with-charset=utf8
$sudo make
$sudo make install
}}}

== {{{Mecab-ipadicインストール}}} ==

{{{
$sudo wget http://downloads.sourceforge.net/mecab/mecab-ipadic-2.7.0-20070801.tar.gz?modtime=1185895550&big_mirror=0
$sudo tar xzvf mecab-ipadic-2.7.0-20070801.tar.gz
$sudo ./configure \
–prefix=/usr/local/mecab \
–with-charset=utf8 \
–with-mecab-config=/usr/local/mecab/bin/mecab-config
$sudo make
$sudo make install
}}}

== {{{Sennaインストール}}} ==

{{{
$sudo wget http://osdn.dl.sourceforge.jp/senna/27317/senna-1.0.9.tar.gz
$sudo tar xzvf senna-1.0.9.tar.gz
$sudo ./configure \
–prefix=/usr/local/senna \
–with-charset=utf8 \
–with-mecab \
–with-mecab-config=/usr/local/mecab/bin/mecab-config
$sudo make
$sudo make install
}}}

== {{{MySQLインストール}}} ==

mysqlのdataディレクトリの作成

{{{
$cd /home
$sudo mkdir mysql
$sudo chown mysql mysql
$cd mysql
$sudo mkdir data
$sudo chown mysql data
}}}

* http://qwik.jp/tritonn/

※–localstatedir=/home/mysql/data オプションはデフォルトでインストールした場合、[[BR]]
 /usr/local/mysql5/var/data のようになります。[[BR]]
 これだとroot権限でないとdataディレクトリ内を書き換えたりする事が出来ないため、[[BR]]
 /home/mysql/dataに指定しています。[[BR]]
 他にデータが大きくなることも踏まえて、パーティションが一番大きい/home以下に作成しています。

{{{
$sudo wget
$sudo tar zxvf mysql-5.0.45-tritonn-1.0.7.tar.gz
$sudo ./configure \
–prefix=/usr/local/mysql5 \
–localstatedir=/home/mysql/data \
–libexecdir=/usr/local/mysql5/bin \
–with-unix-socket-path=/home/mysql/data/mysql.sock \
–with-tcp-port=5432 \
–sysconfdir=/home/mysql/data \
–with-charset=utf8 \
–with-collation=utf8_general_ci \
–with-extra-charsets=all \
–with-mysqld-user=mysql \
–enable-thread-safe-client \
–enable-local-infile \
–enable-assembler \
–with-zlib-dir=bundled \
–with-big-tables \
–with-readline \
–with-innodb \
–with-senna=/usr/local/senna \
–with-mecab=/usr/local/mecab \
–with-extra-charsets=complex

$sudo make
$sudo make install
}}}

* mysql_install_db

{{{
$sudo /usr/local/mysql5/bin/mysql_install_db –user=mysql
}}}

※使えるネットの場合は「my.cnf」対応のため下記を実行

{{{
$sudo /usr/local/mysql5/bin/mysql_install_db –defaults-file=/usr/local/mysql5/my.cnf –user=mysql
}}}

* mysql起動

{{{
$sudo mysqld_safe –user=mysql &
}}}

※使えるネットの場合は「my.cnf」対応のため下記を実行

{{{
$sudo /usr/local/mysql5/bin/mysqld_safe –defaults-file=/usr/local/mysql5/my.cnf –user=mysql
}}}

* rootでログインする

{{{
$ mysql -u root

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45-log Source distribution

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql>
}}}

* rootのパスワードを設定と匿名ユーザーの削除

{{{
mysql> set password for root@localhost=password(‘パスワードを入力’);
Query OK, 0 rows affected (0.00 sec)

mysql> use mysql;
Database changed
mysql> delete from user where User=”;
Query OK, 0 rows affected (0.00 sec)

mysql> delete from db where User=”;
Query OK, 2 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
}}}

* ユーザーの作成

※http://dev.mysql.com/doc/refman/4.1/ja/grant.html を参考[[BR]]
WITH GRANT OPTION 節を使用すると、[[BR]]
ユーザは自分が所有する権限を他のユーザに与えることができます。[[BR]]
GRANT 権限をユーザに設定する際は注意が必要です。[[BR]]
2 人のユーザがお互いの権限を組み合わせることが可能になるからです。

* 管理者権限を持つユーザを登録する

{{{
GRANT ALL PRIVILEGES ON *.* TO ユーザー名@localhost IDENTIFIED BY ‘パスワード’ WITH GRANT OPTION;
}}}

* 管理者権限を与えるパラメータについて

{{{
権限:ALL PRIVILEGES(すべての権限)
データベース名.テーブル名:*.*(すべてのデータベースのすべてのテーブル)
ユーザ名:user1@”%” (すべてのホスト「”%”」の、ユーザ「user1」)
user1@localhost(ローカルホストの、ユーザ「user1」)
GRANT実行権限:(GRANT構文を実行する権限)
}}}

* 通常のデータ操作が行えるユーザを登録する

{{{
mysql> GRANT SELECT,INSERT,UPDATE,DELETE
-> ON データベース名.*
-> TO ユーザ名@localhost
-> IDENTIFIED BY ‘パスワード’;
mysql> FLUSH PRIVILEGES;
}}}

* Sennaの確認を行う

http://qwik.jp/senna/check_install.htmlの通りに行う。

テストしたが、

* sennaのステータスの確認

{{{
mysql> show senna status\G
}}}

をしても

{{{
mysql> use senna_test
Database changed
mysql> show senna status\G;
Empty set (0.00 sec)
}}}

だったので、

{{{
mysql> ALTER TABLE table01 DROP INDEX body;
mysql> ALTER TABLE table01 ADD FULLTEXT INDEX body USING MECAB (body);
}}}

を実行してから、

{{{
mysql> show senna status\G
}}}

下記の部分を確認

{{{
Encoding: utf8
Index_type: MECAB
}}}

上記の通りになっていたら、OK

== {{{Pythonインストール}}} ==

{{{
$cd /usr/local/src
$sudo wget
$sudo tar xzvf Python-2.5.tgz
$cd Python-2.5
$sudo ./configure –prefix=/usr/local/python25
$sudo make
$sudo make install
}}}

※インストール後にPython(python25)へのPathを通しておく事。

== {{{easy_installインストール}}} ==

Pythonのライブラリのインストールするのに使用する。

{{{
$easy_install (パッケージ名)
}}}

こんな感じで出来る。[[BR]]
このコマンドは、[[BR]]
適切なパッケージを探し、[[BR]]
見つかった場合はダウンロード・インストールが始まる。

{{{
$curl -O http://peak.telecommunity.com/dist/ez_setup.py
$python2.5 ez_setup.py
}}}

== {{{docutilsインストール}}} ==

Pythonで書かれたテキスト処理ツール群。[[BR]]
reStructuredTextという簡単な構文で、[[BR]]
構造化されたテキストファイルを「HTML,XMLやLaTeX」[[BR]]
などのフォーマットに変換することができる。

{{{
$sudo /usr/local/python25/bin/easy_install-2.5 -U -Z docutils
}}}

== {{{MySQLPythonインストール}}} ==

MySQLにPythonでアクセスするためのインターフェース

* http://paison.hp.infoseek.co.jp/paison/database/mysqldb.html

{{{
$sudo /usr/local/python25/bin/easy_install-2.5 -U -Z MySQL_Python
}}}

== {{{ipythonインストール}}} ==

標準のPythonのシェルと比較して、 マクロ、履歴、ログなどさまざまな機能を持ったインタラクティブシェル

* http://ipython.scipy.org/moin/

{{{
$sudo /usr/local/python25/bin/easy_install-2.5 -U -Z ipython
}}}

== {{{pysqliteインストール}}} ==

*

{{{
$sudo /usr/local/python25/bin/easy_install-2.5 -U -Z pysqlite
}}}

== {{{lxmlインストール}}} ==

*
*
* http://d.hatena.ne.jp/perezvon/20071130/1196442670

今回はバージョンを指定してインストールした.

{{{
$sudo /usr/local/python25/bin/easy_install-2.5 -U -Z lxml==1.3.6
}}}

== {{{Python Imaging Libraryインストール}}} ==

http://effbot.org/zone/pil-index.htm

{{{
$sudo wget http://effbot.org/media/downloads/Imaging-1.1.6.tar.gz
$sudo tar zxvf Imaging-1.1.6.tar.gz
$cd Imaging-1.1.6
$sudo python25/bin/python2.5 setup.py build
}}}

buidした後に

{{{
——————————————————————–
PIL 1.1.6 BUILD SUMMARY
——————————————————————–
version 1.1.6
platform linux2 2.5 (r25:51908, Aug 10 2007, 19:11:31)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-8)]
——————————————————————–
*** TKINTER support not available
— JPEG support ok
— ZLIB (PNG/ZIP) support ok
— FREETYPE2 support ok

*** Warning: zlib 1.2.1.2 may contain a security vulnerability.
*** Consider upgrading to zlib 1.2.3 or newer.
*** See: http://www.kb.cert.org/vuls/id/238678
http://www.kb.cert.org/vuls/id/680620
http://www.gzip.org/zlib/advisory-2002-03-11.txt

——————————————————————–
}}}

こんな感じになってれば、OK。
確認する所は、

{{{
— JPEG support ok
— ZLIB (PNG/ZIP) support ok
— FREETYPE2 support ok
}}}

次に

{{{
$sudo python25/bin/python2.5 setup.py install
}}}

でインストールが完了したら、
実際に使用できるのかを確認。

{{{
$python/bin/python2.5

>>> from PIL import Image

}}}

importしてエラーにならなければ、OK。

== {{{opensslインストール}}} ==

* http://www.openssl.org/source/

{{{
$cd /usr/local/src
$sudo 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
$sudo ./config \
–prefix=/usr/local/openssl \
-fPIC shared
$sudo make
$sudo make install
}}}

* {{{OpenSSLライブラリへのパスを設定}}}

{{{
$cd /etc/ld.so.conf.d
$sudo vim openssl.conf
}}}

以下の行を記入

{{{
/usr/local/openssl/lib
}}}

設定を反映

{{{
ldconfig
}}}
== {{{aprのインストール}}} ==

* http://apr.apache.org/download.cgi#apr0

{{{
$cd /usr/local/src/
$sudo tar zxvf apr-1.2.11.tar.gz
$cd apr-1.2.11
$sudo ./configure \
–prefix=/usr/local/apr
$sudo make
$sudo make install
}}}

== {{{apr-utilのインストール}}} ==

*

※aprと同じ場所に入れる

{{{
$sudo tar zxvf apr-util-1.2.10.tar.gz
$cd apr-util-1.2.10
$sudo ./configure \
–prefix=/usr/local/apr \
–with-apr=/usr/local/apr
$sudo make
$sudo make install
}}}

== {{{apacheのインストール}}} ==

* http://httpd.apache.org/download.cgi

{{{
$sudo tar zxvf httpd-2.2.6.tar.gz
$cd /usr/local/src/httpd-2.2.6
$sudo ./configure \
–enable-mods-shared=most \
–enable-auth-digest \
–enable-dav \
–enable-dav-fs \
–enable-dav-lock \
–enable-cgi \
–enable-cgid \
–enable-so \
–enable-rewrite \
–enable-ssl \
–prefix=/usr/local/apache226 \
–with-ssl=/usr/local/openssl \
–with-apr=/usr/local/apr \
–with-apr-util=/usr/local/apr
$sudo make
$sudo make install
}}}

* {{{apache226にシンボリックリンクを貼る}}}

{{{
$cd /usr/local
$sudo ln -s apache226 apache
}}}

* {{{apacheのlogディレクトリの作成}}}

※今回はApache実行ユーザ=webadminで行う。

{{{
$cd /home/webadmin
$mkdir logs
}}}

* {{{httpd.confの設定}}}

{{{
sudo vim /usr/local/apache/conf/httpd.conf
}}}

* {{{Apache実行ユーザの設定}}}

”’Apache実行ユーザ=SVNリポジトリ権限のユーザ”’となるように、UserとGroupを変更する。(”’※Apache実行ユーザ=webadmin”’)

{{{
#User daemon
#Group daemon
User webadmin
Group webadmin
}}}

* {{{SSL設定ファイルの読み込み}}}

以下のInclude行がコメントアウトされているので解除する

{{{
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf
}}}

* {{{httpd-ssl.confの設定}}}

{{{
$cd /usr/local/apache226/conf/extra
$sudo vim httpd-ssl.conf
}}}

今回は以下のような設定にする

{{{
SSLCertificateFile “/usr/local/apache2/conf/server.crt”
SSLCertificateKeyFile “/usr/local/apache2/conf/server.key”

SSLCertificateFile “/usr/local/apache226/conf/ssl.crt/server.crt”
SSLCertificateKeyFile “/usr/local/apache226/conf/ssl.key/server.key”
}}}

* {{{秘密鍵/自己署名証明書作成}}}(参考URL:http://linux.kororo.jp/cont/server/openssl_command.php)

{{{
$cd /usr/local/apache226/conf
$sudo mkdir ssl.crt
$sudo mkdir ssl.key
$sudo chown webadmin:webadmin ssl.crt
$sudo chown webadmin:webadmin ssl.key
$cd ssl.key
$sudo /usr/local/openssl/bin/openssl genrsa -des3 -out server.key 1024
}}}

対話式にPasswordを聞かれるので、入力してEnter

{{{
Enter pass phrase for server.key: パスワードを入力する
Verifying – Enter pass phrase for server.key: パスワードを入力する
}}}

次に

{{{
$cd ../ssl.crt
$sudo /usr/local/openssl/bin/openssl req -new -x509 -days 365 -key ../ssl.key/server.key -out server.crt
}}}

また対話式にPasswordを聞かれるので、入力してEnter

{{{
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]:foo
Organizational Unit Name (eg, section) []:foo
Common Name (eg, YOUR name) []:foo
Email Address []:foo@exmaple.com
}}}

* Apache起動

{{{
$sudo /usr/local/apache/bin/apachectl start
}}}

== mod_pythonインストール ==

*

{{{
$cd /usr/local/src
$sudo tar zxvf mod_python-3.3.1.tgz
$cd mod_python-3.3.1
$sudo ./configure \
–with-apxs=/usr/local/apache226/bin/apxs \
–with-python=/usr/local/python25/bin/python
$sudo make
$sudo make install
}}}

* httpd.confの修正

{{{
$sudo vim /usr/local/apache/conf/httpd.conf
}}}

下記を追記する

{{{
LoadModule python_module modules/mod_python.so
}}}

== {{{swigのインストール}}} ==

※2007/10/2現在の最新はswig1.3.31だが、subversion1.4.5ではswig1.3.29を使用する

* http://www.swig.org/download.html

{{{
$cd /usr/local/src
$sudo tar zxvf swig-1.3.29.tar.gz
$cd swig-1.3.29
$sudo ./configure \
–with-python=/usr/local/python25/bin/python \
–prefix=/usr/local/swig
$sudo make
$sudo make install
}}}

== {{{neonのインストール}}} ==

※2007/10/2現在の最新はneon0.27.2だが、subversion1.4.5ではneon0.25.5を使用する

* http://www.webdav.org/neon/

{{{
$cd /usr/local/src
$sudo tar zxvf neon-0.25.5.tar.gz
$cd
$sudo ./configure \
–with-ssl \
–with-libs=/usr/local/openssl \
–disable-static \
–prefix=/usr/local/neon
$sudo make
$sudo make install
}}}

== {{{clearsilverインストール}}} ==

* http://www.clearsilver.net/downloads/

{{{
$sudo wget http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz
$sudo ./configure \
–prefix=/usr/local/clearsilver \
–with-apache=/usr/local/apache226 \
–with-python=/usr/local/python25/bin/python2.5
$sudo make
$sudo make install
}}}

== {{{subversionのインストール}}} ==

* http://www.webdav.org/neon/neon-0.25.5.tar.gz

{{{
$cd /usr/local/src
$sudo tar zxvf subversion-1.4.5.tar.gz
$cd subversion-1.4.5
$sudo ./configure \
–prefix=/usr/local/subversion145 \
–enable-dso \
–with-apr=/usr/local/apr \
–with-apr-util=/usr/local/apr \
–with-apxs=/usr/local/apache226/bin/apxs \
–with-neon=/usr/local/neon \
–with-swig=/usr/local/swig \
–with-editor=/usr/local/vim7/bin/vim \
–without-jdk
$sudo make
$sudo make install
}}}

* {{{subversionにシンボリックリンクを貼る}}}

{{{
$cd /usr/local
$sudo ln -s subversion145 subversion
}}}

== {{{svn-pythonのインストール}}} ==

subversionをインストールしたディレクトリで

{{{
$cd /usr/local/src/subversion-1.4.5
$sudo make swig-py
$sudo make install-swig-py
$sudo vim /usr/local/python25/lib/python2.5/site-packages/svn-python.pth
}}}

で下記を記述する

{{{
/usr/local/subversion145/lib/svn-python
}}}

== {{{Django-svnのco(チェックアウト)}}} ==

{{{
sudo svn co ./Django-svn
}}}

== {{{svnのリポジトリを作成}}} ==

※今回は”’apache実行ユーザー”’の「webadmin」に作成する。[[BR]]
 「webadmin」のホームディレクトリ以下に「svn」というディレクトリを作成し、[[BR]]
 そこを「svn」用のディレクトリにした。[[BR]]
 試しに「jsample」というリポジトリを作成する。

{{{
$cd /home/webadmin
$mkdir svn
$svnadmin create /home/webadmin/svn/jsample
$svn mkdir file:///home/webadmin/svn/jsample/trunk -m “create”
$svn mkdir file:///home/webadmin/svn/jsample/branches -m “create”
$svn mkdir file:///home/webadmin/svn/jsample/tags -m “create”
}}}

※インポートする

{{{
$svn import /jsample(インポート元の絶対パス) file:///home/webadmin/svn/jsample/trunk -m “initial project”
}}}

== {{{newforms-adminへswitch}}} ==

{{{
sudo svn switch
}}}

== {{{Tracをインストール}}} ==

* http://ftp.edgewall.com/pub/trac/

{{{
$cd /usr/local/src
$sudo wget http://ftp.edgewall.com/pub/trac/trac-0.10.4.tar.gz
$sudo tar xzf trac-0.10.4.tar.gz
$python2.5 ./setup.py build
$python2.5 ./setup.py install
}}}

== {{{mod_wsgiインストール}}} ==

* http://modwsgi.googlecode.com/files/mod_wsgi-1.0c3.tar.gz

{{{
$sudo wget http://modwsgi.googlecode.com/files/mod_wsgi-1.0c3.tar.gz
$sudo tar zxvf mod_wsgi-1.0c3.tar.gz
$sudo ./configure \
–with-apxs=/usr/local/apache226/bin/apxs \
–with-python=/usr/local/python25/bin/python2.5
$sudo make
$sudo make install
}}}

* {{{httpd.confへ追記}}}

{{{
LoadModule wsgi_module modules/mod_wsgi.so
}}}

* {{{mod_wsgi設定}}}

下記ファイルをapache実行ユーザーのhomeディレクトリ内の[[BR]]
dispatchというディレクトリにdispatch.wsgiというファイル名で保存する。[[BR]]
名前は何でも良いので、今回は仮でdispatchにした。[[BR]]
apache実行ユーザーで(今回はwebadmin)

{{{
$mkdir dispatch
$cd dispatch
$vim dispatch.wsgi
}}}

下記を記入

{{{
import os
os.environ[‘TRAC_ENV’] = ‘/home/webadmin/trac/jsample’
os.environ[‘PYTHON_EGG_CACHE’] = ‘/tmp/.python-eggs’
import trac.web.main

application = trac.web.main.dispatch_request
}}}

* trac-admin

{{{
$sudo /usr/local/python25/bin/trac-admin jsample initenv
}}}

※エラーになった

{{{
Warning:

You should install the SVN bindings
}}}

{{{
$/sbin/ldconfig -p | grep ‘svn’
}}}

何も表示されない。
svn/binにパスが通っていないせいなので、下記を実行する

{{{
$sudo vim /etc/ld.so.conf.d/svn.conf
}}}

下記を記入(subversionのlibへのpath)

{{{
/usr/local/subversion145/lib
}}}

変更を反映させる

{{{
$/sbin/ldconfig
}}}

を実行。

{{{
$/sbin/ldconfig -p | grep ‘svn’
}}}

で確認してみる。

{{{
libsvn_wc-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_wc-1.so.0
libsvn_wc-1.so (libc6) => /usr/local/subversion145/lib/libsvn_wc-1.so
libsvn_swig_py-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_swig_py-1.so.0
libsvn_swig_py-1.so (libc6) => /usr/local/subversion145/lib/libsvn_swig_py-1.so
libsvn_subr-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_subr-1.so.0
libsvn_subr-1.so (libc6) => /usr/local/subversion145/lib/libsvn_subr-1.so
libsvn_repos-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_repos-1.so.0
libsvn_repos-1.so (libc6) => /usr/local/subversion145/lib/libsvn_repos-1.so
libsvn_ra_svn-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_ra_svn-1.so.0
libsvn_ra_svn-1.so (libc6) => /usr/local/subversion145/lib/libsvn_ra_svn-1.so
libsvn_ra_local-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_ra_local-1.so.0
libsvn_ra_local-1.so (libc6) => /usr/local/subversion145/lib/libsvn_ra_local-1.so
libsvn_ra_dav-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_ra_dav-1.so.0
libsvn_ra_dav-1.so (libc6) => /usr/local/subversion145/lib/libsvn_ra_dav-1.so
libsvn_ra-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_ra-1.so.0
libsvn_ra-1.so (libc6) => /usr/local/subversion145/lib/libsvn_ra-1.so
libsvn_fs_fs-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_fs_fs-1.so.0
libsvn_fs_fs-1.so (libc6) => /usr/local/subversion145/lib/libsvn_fs_fs-1.so
libsvn_fs-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_fs-1.so.0
libsvn_fs-1.so (libc6) => /usr/local/subversion145/lib/libsvn_fs-1.so
libsvn_diff-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_diff-1.so.0
libsvn_diff-1.so (libc6) => /usr/local/subversion145/lib/libsvn_diff-1.so
libsvn_delta-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_delta-1.so.0
libsvn_delta-1.so (libc6) => /usr/local/subversion145/lib/libsvn_delta-1.so
libsvn_client-1.so.0 (libc6) => /usr/local/subversion145/lib/libsvn_client-1.so.0
libsvn_client-1.so (libc6) => /usr/local/subversion145/lib/libsvn_client-1.so
}}}

上記のように表示される。
これでpathが通ったので、もう一度”’trac-admin”’をする

{{{
$/usr/local/python25/bin/trac-admin jsample initenv
}}}

ここから対話式に聞かれてくるが
ほぼデフォルトでOKなので、
enterで良い。
svnのreposのみ指定する。

{{{
Project Name [My Project]> jsample /* ここはプロジェクト名を記述 */
Database connection string [sqlite:db/trac.db]> /* デフォルトがsqliteなのでそのままEnter */
Repository type [svn]> /* デフォルトのままなのでEnter */
Path to repository [/path/to/repos]> /home/webadmin/svn/jsample /* ここには先ほど作成した「jsample」のリポジトリを指定 */
Templates directory [/usr/local/python/share/trac/templates]> /* デフォルトのままなのでEnter */
}}}

これでsvnとtracが紐づけられる。

* バーチャルホストの設定

今回はバーチャルホストに設定するので、httpd-vhosts.confを編集。

{{{
$cd /usr/local/apache226/conf/extra
$sudo vim httpd-vhosts.conf
}}}

下記を設定する。[[BR]]

{{{
はTracのログイン用
はWeb経由でのSubversion用
・WSGIScriptAlias / /home/webadmin/dispatch/dispatch.wsgiは、
 今回mod_pythonではなくmod_wsgiを使用するため。
}}}

{{{

ServerName project_server_name
ErrorLog /home/webadmin/logs/projects_error.log
CustomLog /home/webadmin/logs/projects_access.log combined

WSGIScriptAlias / /home/webadmin/dispatch/dispatch.wsgi


Order deny,allow
Allow from all


AuthType digest
AuthName “Realm String”
AuthUserFile /home/webadmin/path/to/.htdigest(.htdigestまでの絶対Path)
Require valid-user
BrowserMatch “MSIE” AuthDigestEnableQueryStringHack = On


DAV svn
SVNPath /home/webadmin/svn/jsample
AuthType digest
AuthName “Realm String”
AuthUserFile /home/webadmin/path/to/.htdigest(.htdigestまでの絶対Path)
Require valid-user
BrowserMatch “MSIE” AuthDigestEnableQueryStringHack = On


}}}

* .htdigestファイルの作成

上記の

{{{
AuthUserFile /home/webadmin/path/to/.htdigest
}}}

で設定しているファイルを作成する。
初めて.htdigestファイルを作成するときは-cオプションが必要となる。

{{{
htdigest [-c] パスワードファイル レルム ユーザー名
}}}

apache実行ユーザー「webadmin」で実行する。

{{{
$cd /home/webadmin/
$mkdir path
$cd path
$mkdir to
$cd to
$touch .htdigest
$htdigest -c .htdigest “Realm String” ユーザー名
Adding user ユーザー名 in realm Realm String Project
New password: パスワードを入力
Re-type new password: パスワードを入力

$htdigest .htdigest “Realm String” ユーザー名
Adding user ユーザー名 in realm Realm String Project
New password: パスワードを入力
Re-type new password: パスワードを入力
}}}

== {{{TracPygmentsインストール}}} ==

Tracでソースコードをシンタックスハイライトしてくれる。

{{{
$sudo /usr/local/python25/bin/easy_install-2.5 -U -Z TracPygments
}}}

== {{{trac プラグイン webadminインストールなど}}} ==

※Python2.3とPython2.4のモノはあるが、
 Python2.5が無いのでsvnから落としてきてインストール。

* http://svn.edgewall.com/repos/trac/sandbox/webadmin

{{{
$cd /usr/local/src
$sudo svn export http://svn.edgewall.com/repos/trac/sandbox/webadmin
$sudo python2.5 setup.py build
$sudo python2.5 setup.py install
}}}

※”’apache実行ユーザー”’「webadmin」で

{{{
$vim /home/webadmin/trac/jsample/conf/trac.ini
}}}

下記を追記

{{{
[components]
webadmin.* = enabled
tracpygments.* = enabled
}}}

tracにブラウザ上から操作出来る「”’admin機能”’」を表示させるため、adminを追記する。

{{{
mainnav = wiki,timeline,roadmap,browser,tickets,newticket,search,admin
}}}

文字コードを「”’utf-8”’」にしておく

{{{
default_charset = utf-8
}}}

後は「”’header”’」の「”’link”’」も変える。

{{{
[header_logo]
alt =
height = -1
link = サイトトップへのリンク
src = common/trac_banner.png
width = -1
}}}

次はコマンドラインから「”’自分にTRAC_ADMIN”’」のパーミッションを追加する。

{{{
$/usr/local/python25/bin/trac-admin ./jsample permission add ユーザー名 TRAC_ADMIN
}}}

反映させるためには、apacheを再起動させる。

== pycryptoをインストール ==

*

{{{
$cd /usr/local/src
$sudo wget
$sudo tar zxvf pycrypto-2.0.1.tar.gz
$cd pycrypto-2.0.1
$sudo python2.5 setup.py install
}}}

なんか警告が結構出てるけど大丈夫なのかな?
警告: “_POSIX_C_SOURCE” redefined

とりあえずインポートしてみる。
それからBlowfishで暗号化と複合化を試してみる。

{{{
>>> from Crypto.Cipher import Blowfish
>>> obj=Blowfish.new(‘abcdefgh’,Blowfish.MODE_ECB)
>>> plain = ‘Guido van Rossum is a space alien.’
>>> ciph=obj.encrypt(plain+’XXXXXX’)
>>> ciph
>>> ‘{A\xcdy\xed\x15\xce\xecR\xe9\x03\r\x8b\xd0\x8a\xact\xff\x8b\xbb\xd7\xca;Qhn4\xceg\xd3\t\x9a\xfb\xa3L\xc7\xec\xa8\xa2\xbf’
>>> obj.decrypt(ciph)
>>> ‘Guido van Rossum is a space alien.XXXXXX’
}}}

== pyExceleratorをインストール ==

* http://sourceforge.net/projects/pyexcelerator/

{{{
$ http://downloads.sourceforge.net/pyexcelerator/pyexcelerator-0.6.3a.zip?modtime=1130327649
}}}

からダウンロードしてくる。

{{{
$ sudo unzip pyexcelerator-0.6.3a.zip
}}}

で解凍してからビルド

{{{
$ cd pyExcelerator-0.6.3a/
$ sudo python2.5 setup.py build

running build
running build_py
copying pyExcelerator/antlr.py -> build/lib/pyExcelerator
copying pyExcelerator/BIFFRecords.py -> build/lib/pyExcelerator
copying pyExcelerator/CompoundDoc.py -> build/lib/pyExcelerator
copying pyExcelerator/ExcelMagic.py -> build/lib/pyExcelerator
copying pyExcelerator/ImportXLS.py -> build/lib/pyExcelerator
copying pyExcelerator/Workbook.py -> build/lib/pyExcelerator
copying pyExcelerator/Worksheet.py -> build/lib/pyExcelerator
}}}

出来たらインストール

{{{
$ sudo python2.5 setup.py install
}}}

最後の行に

{{{
Writing /usr/local/python25/lib/python2.5/site-packages/pyExcelerator-0.6.3a-py2.5.egg-info
}}}

と表示されたので、そこにインストールされているか確認すれば完了

試しにimportしてみる。

{{{
$ python
}}}

{{{
>>> import pyExcelerator
}}}

ちゃんと読み込まれればok。エラーの場合はインポート出来ないよ!って怒られる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です