= {{{環境構築(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]]
{{{
・
・
・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。エラーの場合はインポート出来ないよ!って怒られる。