Postgres8.0の設定メモ
ログ出力の設定
postgresのログをsyslogへ吐くように変更。
/usr/local/pgsql/data/postgresql.confを以下のように変更。
〜略〜 log_destination = 'syslog' 〜略〜 log_statement = 'all' 〜略〜
/etc/syslog.confに以下を追加。
local0.* /var/log/postgresql.log
TCP接続の設定
標準ではUNIXドメインソケットでの接続しかできない為、
TCP接続を行えるように変更する。
/usr/local/pgsql/data/postgresql.confを以下のように変更。
listen_addresses = '*'
/usr/local/pgsql/data/pg_hba.confへ以下を追加。
LANからのアクセスを許可し、パスワードによる認証を行う。
host all all 192.168.0.0/24 password
Postgres8.0をインストールする。
Windowsマシンへpostgres8.0をインストールしてみたんだけど、
せっかくなんでLinuxマシンへもインストールしてみる。
1.RPMのアンインストール
最初からPosgresがインストールされている場合、
2重にインストールされることになる為、インストールされているものをまずは削除する。
依存関係があるものも全て削除しました。
rpm -e postgresql-devel rpm -e postgresql rpm -e postgresql-server rpm -e postgresql-pl rpm -e postgresql-contrib rpm -e postgresql-freeradius rpm -e freeradius-postgresql rpm -e postgresql-jdbc rpm -e postgresql-python rpm -e postgresql-odbc rpm -e postgresql-docs rpm -e postgresql-tcl rpm -e postgresql-libs rpm -e mod_auth_pgsql rpm -e planner rpm -e perl-DBD-Pg rpm -e libdbi-dbd-pgsql rpm -e qt-PostgreSQL rpm -e php-pgsql rpm -e postgresql-libs
2.ソースをダウンロード
PostgreSQLのサイトからソースをダウンロードします。
http://www.postgresql.org/
「postgresql-8.0.1.tar.gz」をダウンロードしました。
ダウンロードしたファイルは「/usr/local/src/」へ展開します。
3.コンパイル
昔ソースからコンパイルした時には、configureの引数に「--enable-multibyte」などを
指定した記憶があるんだけど、現在はなにも指定しなくても普通に日本語が使えるらしい。
# ./configure # make all # make check # make install
なんかエラーが出てたけど。。。
4.ユーザを追加する
# /usr/sbin/adduser postgres # chown postgres:postgres /usr/local/pgsql
5.DBを初期化する。
# su - postgres $ mkdir /usr/local/pgsql/data $ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
6.初期設定
postgresユーザの.bashrcに以下を追加する。
export PATH=$PATH:/usr/local/pgsql/bin export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib export PGDATA=$POSTGRES_HOME/data export MANPATH="$MANPATH":$POSTGRES_HOME/man export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
.bashrcを読み直す。
$ . ~/.bashrc
7.サーバの起動とDBの作成
サーバを起動する。
$ pg_ctl start
DBを作成する。引数を省略しているので、ユーザ名と同名のDBが作成される。
createdb -E UTF-8
8.接続してみる
[postgres@fourth pgsql]$ psql Welcome to psql 8.0.1, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit postgres=# \l List of databases Name | Owner | Encoding -----------+----------+---------- postgres | postgres | UNICODE template0 | postgres | UNICODE template1 | postgres | UNICODE (3 rows)
大盤振舞い(その2)
再び吉宗にリベンジ!
+79Kで見事昨日の負債を取り戻しました!!!
ふへーっ、良かった良かった!
吉宗ギャフン。。。
吉宗にギャフンと言わされました。。。
60K負け。。。
バケ一回とは悲しすぎる。。。
ギャフン。。。
Mavenに触ってみました。
Maven(メイベン - 達人)
Maven は Apache Software Foundation で開発されているJavaベースのプロジェクト管理ツール。
Mavenはソフトウェア開発プロジェクトをPOM(Project Object Model)というモデルで
プロジェクトを管理する。
管理するプロジェクトの単位は、最終的に1つのJarファイルを生成する規模を想定している。
project.xmlで以下のような情報を管理する。
インストール
①アーカイブを公式サイトからダウンロードする。
http://maven.apache.org/
②展開したディレクトリへのパスを「MAVEN_HOME]という環境変数へ定義する。
(${MAVEN_HOME}/binへパスを通す。)
③ローカルリポジトリの初期化を行う。
成功すると、リポジトリへJarが格納される。
mkdir ${MAVEN_HOME}/repo install_repo.bat ${MAVEN_HOME}/repo
実行
Mavenは、引数にゴールを渡してあげることで実行される。
ゴールとは、Antのターゲットのようなものである。
異なる点としては、Antはガリガリとターゲットを記述する必要があることに
対して、Mavenではプラグインとしてあらかじめいくつかのゴールが定義されている。
(当然、自前でゴールを定義することも可能。)
【実行方法】
maven <プラグイン名>:<ゴール名>
①サンプルプロジェクトを生成する。
Sampleというディレクトリを作成し、その中で「genapp」というゴールを実行する。
$ mkdir sample $ cd sample/ $ maven genapp
すると、Sampleへ以下のようなディレクトリが作成されます。
└─src ├─conf ├─java │ └─example │ └─app └─test └─example └─app
②コンパイルする。
targetというディレクトリが新たに生成され、クラスファイルが作成されました。
$ maven java:compile $ tree ├─src │ ├─conf │ ├─java │ │ └─example │ │ └─app │ └─test │ └─example │ └─app └─target └─classes └─example └─app
③テストする。
test-classes、test-reportsというディレクトリが新たに生成され、クラスファイルと
テスト結果のレポートファイルが作成されました。
コンパイルでは、テストクラスはコンパイルされないみたい。
(java:compileする前にいきなりtestをすると、コンパイルした後でテストをしてくれるらしい。)
$ maven test $ tree ├─src │ ├─conf │ ├─java │ │ └─example │ │ └─app │ └─test │ └─example │ └─app └─target ├─classes │ └─example │ └─app ├─test-classes │ └─example │ └─app └─test-reports
④サイトを作成する。
Javadocの他にもなんかいろいろできました。。
すげーな。
$ maven site $ tree ├─src │ ├─conf │ ├─java │ │ └─example │ │ └─app │ └─test │ └─example │ └─app └─target ├─classes │ └─example │ └─app ├─docs │ ├─apidocs │ │ ├─example │ │ │ └─app │ │ │ └─class-use │ │ └─resources │ ├─images │ │ └─logos │ ├─style │ ├─xref │ │ └─example │ │ └─app │ └─xref-test │ └─example │ └─app ├─generated-xdocs ├─javadoc ├─linkcheck │ └─docs ├─test-classes │ └─example │ └─app └─test-reports
project.properties
- maven.build.dist
クラスファイルの出力先を指定する。
標準は、「target/classes 」。
- maven.build.dist
テストクラスファイルの出力先を指定する。
標準は、「target/test-classes 」。
- maven.repo.remote
リモートリポジトリの場所を指定する。
- maven.build.dir
targetディレクトリの場所を指定する。
- maven.checkstyle.properties
Checkstyleの設定ファイルを指定する。
- maven.docs.outputencoding
リポートファイルを生成する際のエンコーディングを指定する。
指定しないと化けます。。
その他
- リモートリポジトリ
Mavenでは依存関係にあるJarファイルをリモートリポジトリ 2 より取得する仕組みになっている。
project.xmlのdependency要素に定義されたライブラリがローカルに存在しなければ、リモートリポジトリから取得する。
デフォルトのリモートリポジトリは、「http://www.ibiblio.org/maven/」。
- ローカルリポジトリ
リモートリポジトリから取得したライブラリをキャッシュしておくローカルのディレクトリ。
標準は、「$HOME/.maven/repository」 。
ローカルリポジトリへ自前のJarを登録する場合は、以下のような構成でJarを格納する。
$HOME/.maven/repository/MyJar/jars/MyJar-01.jar
Maven Repo Search
dependencyのidやversionを設定するのに便利。
http://maven.ozacc.com/search
Scarabを触ってみました。(その2)
メールを送信する。
メールを送信するだけなのにかなりはまってしまってます。。。
【手順】
①BlackJumboDogでメールサーバを立ち上げます。
②WEB-INF/conf/CustomSettings.properties
でメールサーバを指定します。
system.mail.host=localhost system.mail.smtp.from=goo@hohohoge.ne.jp
とりあえずこれでメールは送れました。
が!文字化けしまくりです。。。
もう眠いので続きは次回。。。。。