環境構築(Ubuntu-server版)

環境 自サバ
OS Linux
ディストリビューション Ubuntu 7.10

パーティション

基本 / 500MB
論理 /home 他残り全部
論理 /tmp 5GB
論理 /usr 10GB
論理 /usr/local 10GB
論理 /var 10GB
論理 swap 500MB

パッケージインストール

最新のリストをチェック

$sudo aptitude update

更新されているものをダウンロードとインストールして最新へ

$sudo aptitude upgrade

※apt-getも使えるが併用しないほうが良い。
debian Searcgeからaptitudeを推奨している。

※既にインストールされているパッケージの確認は下記で可能。

$sudo aptitude

開発環境用パッケージのインストール まずはサーチ

$sudo aptitude search build-essential

次にインストール ※これでgccなどの開発環境が整う

$sudo aptitude install build-essential

もしCD-ROMを入れてね的なのが表示されたら、

$sudo vim /etc/apt/sources.list

で下記の場所をコメントアウトする。

deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]/ gutsy main restricted

をコメントアウトなので、下記のようになります。

#deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]/ gutsy main restricted

もしくは、build-essentialした後に

$sudo aptitude update

$sudo aptitude upgrade

をしてあげればよい。

Vimインストール

Ubuntuにはデフォルトで入っているが、 そのままだとsyntax onでエラーになる。 なのでaptitudeでインストールしておく。 ※vim-runtimeが依存関係なので、一緒にインストールされる。

$sudo aptitude install vim

openssh-serverインストール

サーバにsshで入るために必要。

$sudo aptitude install openssh-server

これを入れればとりあえずローカル環境で入れる。
例えば別PCでsshで入ってみる。

$sudo ssh -l ユーザー名 192.168.0.2

ネットワークの設定

次にローカルでは無く外部からsshで接続するために設定する。
設定するファイルは下記。

/etc/networks/interfaces

このinterfacesに設定を記述する。
デフォルトがDHCP自動取得だったので下記のようになっている。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

ユーザーとグループ追加

今回mysqlを使用するためmysqlユーザーとグループを作成する まずはグループの追加。

$sudo groupadd グループ名(mysql)

次にユーザーの追加

$sudo useradd -g グループ名(mysql) -d ディレクトリパス(/home/mysql) -m ユーザー名(mysql)

※今回はmysqlのdataディレエクトリを/home/mysql以下に作成するので、  ディレクトリを指定している。

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

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

curlインストール

$sudo aptitude install curl

easy_installインストール

$sudo curl -O http://peak.telecommunity.com/dist/ez_setup.py

上記コマンドを叩くと下記が表示される。

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  8960  100  8960    0     0  11375      0 --:--:-- --:--:-- --:--:-- 22683

最後に下記コマンドを叩いてインストール完了

sudo python2.5 ez_setup.py

docutilsインストール

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

$sudo easy_install-2.5 -U -Z docutils

ipythonインストール

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

$sudo easy_install-2.5 -U -Z ipython

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インストール

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

$sudo wget http://globalbase.dl.sourceforge.jp/tritonn/28539/mysql-5.0.51-tritonn-1.0.8.tar.gz
$sudo tar zxvf mysql-5.0.51-tritonn-1.0.8.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

上記を実行するとエラーが出てconfigureが通らない。。。
エラーは下記のように出てました。

checking for termcap functions library... configure: error: No curses/termcap library found

ライブラリが無いよと怒られているので、
インストールする。

$sudo aptitude install libncurses5-dev

これでもう一回実行すると、
素直に通る。
なのでmakeとmake installを実行する。

$sudo make
$sudo make install
  • my.cnfのコピー
$sudo cp /usr/local/src/mysql-5.0.51-tritonn-1.0.8/support-files/my-medium.cnf /etc/my.cnf
  • mysql_install_db
$sudo /usr/local/mysql5/bin/mysql_install_db --user=mysql

エラーになった。。。

Installing MySQL system tables...
ERROR: 1062  Duplicate entry 'localhost-' for key 1
080125 16:15:42 [ERROR] Aborting

080125 16:15:42 [Note] /usr/local/mysql5/bin/mysqld: Shutdown complete

Installation of system tables failed!

この原因は自サバのホスト名がlocalhostに設定されているかららしい。
Googleさんに聞いたら、 こんな事が書かれているサイトがありました。

このコマンドスクリプトを最初に実行する前、

# hostname localhost

を実行して、一時的にサーバのホスト名を、localhostというホスト名に置き換えれば、別々なrootユーザの作成を防ぐ事が出来ます。

ただし、この場合、

ERROR: 1062  Duplicate entry 'localhost-root' for key 1
ERROR: 1062  Duplicate entry 'localhost-' for key 1

とデータベース初期化の際にエラーが表示されます。これは本来、

    * root@'ホスト名'

が挿入されるべき箇所に、重複して

    * root@localhost

が挿入されるからです。これは意図した動作でもあるので無視して構いません。

なお、データベースを初期化した後は、ホスト名は従来のものに戻して下さい。

らしいので、
ホスト名を変更してから実行してみた。

$sudo hostname ホスト名

これを実行してからターミナルを一度終了させて、
もう一度立ち上げた。

次にmysql_installdbを実行してみる。

WARNING: The host 'ホスト名' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/mysql5/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql5/bin/mysqladmin -u root -h ホスト名 password 'new-password'

Alternatively you can run:
/usr/local/mysql5/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr/local/mysql5 ; /usr/local/mysql5/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/local/mysql5/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com

OKっぽいね。 でも一番上に

WARNING: The host 'ホスト名' could not be looked up with resolveip.

って出てるなぁ~。

  • mysql起動
$sudo /usr/local/mysql5/bin/mysqld_safe --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 節を使用すると、
ユーザは自分が所有する権限を他のユーザに与えることができます。
GRANT 権限をユーザに設定する際は注意が必要です。
2 人のユーザがお互いの権限を組み合わせることが可能になるからです。

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

※ユーザー名には「-」などが使えないみたいですね。 例)hoge-hoge は無理。

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;

python2.5-dev

$sudo aptitude install python2.5-dev

libxml2-devインストール

$sudo aptitude install libxml2-dev

libxslt-devインストール

$sudo aptitude install libxslt-dev

上記「python2.5-dev」と「libxml2-dev」「libxslt-dev」が無いと lxmlインストールでこける。

lxmlインストール

$sudo easy_install-2.5 -U -Z lxml

MySQLdbインストール

$sudo easy_install-2.5 -U -Z MySQL-Python

を実行すると

sh: mysql_config: not found

って怒られる。
これはmysql_configが見つからないと怒られている。
なので追加する。
まずrootになりそこからmysql_configを追加してやる。

rootになる。

$sudo -s

次にmysqlのパスを追加する。
まずは既存のパスの確認。

$echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

「/mysqlをインストールしたディレクトリ/bin」を追加してやる。

$export PATH=/mysqlをインストールしたディレクトリ/bin:$PATH

パスの確認。

$echo $PATH
/mysqlをインストールしたディレクトリ/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

ちゃんと通っておればOK。

次にmysql_configの確認。

$which mysql_config
/mysqlをインストールしたディレクトリ/bin/mysql_config

ちゃんとあるのでldconfigに追加する。

$cd /etc/ld.so.conf.d/
$touch mysql.conf
$vim mysql.conf

下記を追加する。

/mysqlをインストールしたディレクトリ/lib/mysql

追加したら下記コマンドを実行する。

$ldconfig

反映されたら、
easy_installをもう一度実行する。
※sudoは付けずに!付けて行うとパスが見れない状態でeasy_installを実行するので、
エラーになる。

easy_install-2.5 -U -Z MySQL-Python

pysqliteインストール

$sudo easy_install-2.5 -U -Z pysqlite

インストールを実行するとエラーになる。 エラーで怒られてしまう。

src/connection.h:33:21: error: sqlite3.h: No such file or directory

sqlite3が無いよと怒られる。
なのでsqlite3をインストールしてあげる。

$cd /usr/local/src/
$sudo wget sudo wget http://www.sqlite.org/sqlite-3.5.4.tar.gz
$sudo tar zxvf sqlite-3.5.4.tar.gz
$cd  sqlite-3.5.4
$sudo ./configure \
--prefix=/usr/local/sqlite \
--enable-threadsafe \
--enable-cross-thread-connections

してから、 makeする。

$sudo make

ここでエラー発生。

make: tclsh: Command not found
make: *** [sqlite3.c] Error 127

tclなんてコマンドが無いよと怒られているので、 aptitudeでsearchしてみる。

libsqlite-tcl

があるのでこちらをインストールするついでに libsqlite3-devもインストールする。

$sudo aptitude install libsqlite3-dev
$sudo aptitude install libsqlite-tcl

もう一度

$sudo make

今度はエラーが出なくなった。

$sudo make install

でインストール完了

aprインストール

※Subversion・Apacheをインストールする場合は、

  • apr(Apache Portable Runtime)
  • apr-util
  • neon
  • swig

が必要になるためインストールしておく。
後はそれに依存するものもインストールする。

$sudo aptitude install libexpat1-dev

$sudo aptitude install expat

をインストールしておく。 そうしないとSubversionのmake時にエラーが出て途中で止まる。

$cd /usr/local/src/
$sudo tar zxvf apr-1.2.12.tar.gz
$cd apr-1.2.12
$sudo ./configure \
--prefix=/usr/local/apr \
--enable-threads
$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

swigインストール

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

$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

インストール出来た。

opensslインストール

aptitudeで

$sudo aptitude search openssl

でインストールされていないか確認
されていなければインストールする。

$sudo aptitude install openssl

neonのインストール

$sudo ./configure \
--with-ssl \
--enable-shared \
--prefix=/usr/local/neon

$sudo make
$sudo make install

Apacheインストール

$sudo wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.6.tar.gz
$sudo tar zxvf httpd-2.2.6.tar.gz
$cd 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 \
--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実行ユーザ=webadminで行う。

  • webadminグループを追加する。
$sudo groupadd webadmin
  • webadminユーザーを追加する。

※ユーザー追加のコマンドが
useradd -g グループ名 -d /home/ユーザーディレクトリ名 -m ユーザー名なので、 今回はwebadminに置き換えて実行する。

$sudo useradd -g webadmin -d /home/webadmin -m webadmin
  • webadminディレクトリ以下にlogsディレクトリを作成する。
$cd /home/webadmin
$sudo mkdir logs
$sudo chown webadmin:webadmin logs
  • Apache実行ユーザ=SVNリポジトリ権限のユーザとなるように、UserとGroupを変更する。

(※Apache実行ユーザ=webadmin)

$cd /usr/local/apache/conf
$sudo vim httpd.conf

下記の通り変更する。

#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

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

※/usr/local/apache226/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"
$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/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/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
  • httpd-vhostsを有効にする
$sudo vim /usr/local/apache226/conf/httpd.conf

下記のコメントアウトを外す

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

 ↓
Include conf/extra/httpd-vhosts.conf
  • 443ポートを空ける

ルータやiptablesを確認する。

  • Apache起動
$sudo /usr/local/apache/bin/apachectl start
  • 確認
http://ドメイン名/
https://ドメイン名/

正常なら「It works!」と表示される。

clearsilverインストール

$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/bin/python
$sudo make
$sudo make install

subversionのインストール

xpatでworningが出るが無視。
インストール時のみ見つからないとworningが出ているだけ。

例)libtool: link: warning: `/usr/lib/gcc/i486-linux-gnu/4.1.3/../../..//libsqlite3.la' seems to be movedなど

$cd /usr/local/src
$sudo wget http://subversion.tigris.org/downloads/subversion-1.4.5.tar.gz
$sudo tar zxvf subversion-1.4.5.tar.gz
$cd subversion-1.4.5
$sudo ./configure \
--prefix=/usr/local/subversion145 \
--enable-dso \
--with-ssl \
--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/bin/vim \
--without-jdk

$sudo make
$sudo make install
  • subversionにシンボリックリンクを貼る
$cd /usr/local
$sudo ln -s subversion145 subversion
  • tracなどの為にpythonバインディング「svn-python」をインストール

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

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

/usr/local/subversion145/libにsvn-pythonがあるか確認する。

で下記を記述する

/usr/local/subversion/lib/svn-python
  • pythonからsubversionを読めているか確認する
$iptyhon

でインタラクティブシェルを起動。

In [1]: import svn

In [2]: from libsvn import fs

エラーが出ないことを確認する。

SVNのレポジトリ作成

/home/webadmin以下にsvn用のディレクトリを作成する。
※今回はapache実行ユーザーの「webadmin」に作成する。
「webadmin」のホームディレクトリ以下に「svn」というディレクトリを作成し、
そこを「svn」用のディレクトリにした。

$cd /home/webadmin
$sudo mkdir svn
$sudo chown webadmin:webadmin svn

試しに「hoge」というリポジトリを作成する。

$sudo /usr/local/subversion/bin/svnadmin create /home/webadmin/svn/hoge
$sudo sudo chown webadmin:webadmin hoge
$/usr/local/subversion/bin/svn mkdir file:///home/webadmin/svn/hoge/trunk -m "create"
$/usr/local/subversion/bin/svn mkdir file:///home/webadmin/svn/hoge/branches -m "create"
$/usr/local/subversion/bin/svn mkdir file:///home/webadmin/svn/hoge/tags -m "create"
$sudo chown -R webadmin:webadmin hoge

データをインポートする

$svn import (インポート元の絶対パス) (インポート先) -m "initial project"

なので、
hogeをさっき作った/home/webadmin/svn/hoge/trunkへインポートする。

$svn import ./hoge file:///home/webadmin/svn/hoge/trunk -m "initial project"

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

$cd /usr/local/src
$sudo /usr/local/subversion/bin/svn co http://code.djangoproject.com/svn/django/trunk/django ./Django-svn
  • Djangoにシンボリックリンクを貼る
$cd /usr/lib/python2.5/site-packages/
$sudo ln -s /usr/local/src/Django-svn ./django

JPEGインストール

画像関係を扱う場合に必要。 Python Imaging Libraryを使用するのに必要だったので、 インストール。

$sudo aptitude install libjpeg-dev

Freetypeインストール

フォント関連のライブラリ。 Python Imaging Libraryを使用するのに必要だったので、 インストール。

$sudo aptitude install libfreetype6-dev

PNGインストール

画像フォーマットの一つ。 Python Imaging Libraryを使用するのに必要だったので、 インストール。

$sudo aptitude install libpng12-dev

Python Imaging Libraryインストール

$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 python 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 python setup.py install

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

$ipython

でインタラクティブシェルにて確認する。
下記の通りPILライブラリからImageをインポートする。

In [1]: from PIL import Image

In [2]:

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

$ldconfig -p | grep 'svn'

してパスが通っていないので、
追加する。

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

下記を記述する。

/usr/local/subversion/lib

記述後に反映させる。

$ldconfig

次に確認する。

$ldconfig -p | grep 'svn'

下記のように表示されればOK

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

これをしておかいないとTracを動かした場合に、

SubversionException: ("Failed to load module for FS type 'fsfs'", 160033)

なんてエラーが出てしまうので注意。
これでちょっとはまったw
CentOSの場合は、trac-adminコマンドの時点でエラーになったが、
Ubuntuの場合はここでエラーになった。
そんな違いがあるとは・・・。

後は、
「trac-admin resync」的なのが出た場合には、
Trac TimelineとSVN repositoryが同期されていなために出ているエラーなので、
同期してあげる。

$cd /home/webadmin/trac
$sudo trac-admin hoge resync
Resyncing repository history...
3 revisions cached. Done.

でOK。

mod_wsgiインストール

$sudo wget http://modwsgi.googlecode.com/files/mod_wsgi-2.0c4.tar.gz
$sudo tar zxvf mod_wsgi-2.0c4.tar.gz
$sudo ./configure \
--with-apxs=/usr/local/apache226/bin/apxs \
--with-python=/usr/bin/python

した結果が下記。

> --with-apxs=/usr/local/apache226/bin/apxs \
> --with-python=/usr/bin/python
checking Apache version... 2.2.6
configure: creating ./config.status
config.status: creating Makefile

次にmake

$sudo make

した結果が下記。

/usr/local/apache226/bin/apxs -c -I/usr/include/python2.5 -DNDEBUG  mod_wsgi.c -L/usr/lib/python2.5/config -lpython2.5 -lpthread -ldl  -lutil
/usr/local/apr/build-1/libtool --silent --mode=compile gcc -prefer-pic   -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -g -O2 -pthread -I/usr/local/apache226/include  -I/usr/local/apr/include/apr-1   -I/usr/local/apr/include/apr-1  -I/usr/include/python2.5 -DNDEBUG  -c -o mod_wsgi.lo mod_wsgi.c && touch mod_wsgi.slo
/usr/local/apr/build-1/libtool --silent --mode=link gcc -o mod_wsgi.la  -rpath /usr/local/apache226/modules -module -avoid-version    mod_wsgi.lo -L/usr/lib/python2.5/config -lpython2.5 -lpthread -ldl -lutil

次にmake install

$sudo make install

した結果が下記。

/usr/local/apache226/bin/apxs -i -S LIBEXECDIR=/usr/local/apache226/modules -n 'mod_wsgi' mod_wsgi.la
/usr/local/apache226/build/instdso.sh SH_LIBTOOL='/usr/local/apr/build-1/libtool' mod_wsgi.la /usr/local/apache226/modules
/usr/local/apr/build-1/libtool --mode=install cp mod_wsgi.la /usr/local/apache226/modules/
cp .libs/mod_wsgi.so /usr/local/apache226/modules/mod_wsgi.so
cp .libs/mod_wsgi.lai /usr/local/apache226/modules/mod_wsgi.la
cp .libs/mod_wsgi.a /usr/local/apache226/modules/mod_wsgi.a
ranlib /usr/local/apache226/modules/mod_wsgi.a
chmod 644 /usr/local/apache226/modules/mod_wsgi.a
PATH="$PATH:/sbin" ldconfig -n /usr/local/apache226/modules
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/apache226/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache226/modules/mod_wsgi.so
  • httpd.confへ追記する。
$sudo sudo vim /usr/local/apache226/conf/httpd.conf

下記を記述する。

LoadModule wsgi_module   modules/mod_wsgi.so

TracPygments?インストール

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

$sudo easy_install-2.5 -U -Z TracPygments

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

Tracのプロジェクトを作成

$cd /home/webadmin
$sudo mkdir trac
$sudo chown -R webadmin:webadmin trac
$trac-admin hoge initenv

これで対話的に聞かれるので設定する。

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

で完了。 Apacheを再起動して接続出来るか確認する。

Beautifulsoupをインストール

ファイルをpythonが読み込める場所に保存するのみらしいので、
今回は「site-pakages」の下において置いた。

$sudo wget http://www.crummy.com/software/BeautifulSoup/download/BeautifulSoup.py

これだけです。
後は読み込めるかテストしてみる。

$ipython

In [1]:from BeautifulSoup import BeautifulSoup

PyCrypto?をインストール

$sudo wget http://www.amk.ca/files/python/crypto/pycrypto-2.0.1.tar.gz
$sudo tar zxvf pycrypto-2.0.1.tar.gz
$cd pycrypto-2.0.1
$sudo python setup.py build
$sudo python setup.py install

Universal Feed Parserをインストール

$ wget http://feedparser.googlecode.com/files/feedparser-4.1.zip
$ unzip feedparser-4.1.zip -d feedparser-4.1
$ cd feedparser
$ sudo python setup.py install