☆ Linux(7)☆ Linux(5)前へ
☆ Linux奮闘記 (6) PostgereSQL6.51+PHP3環境+(java) '99/8-9 ☆
この連載も早い物で(6)に突入です。(5)は半月でいっぱいになってしまいました。今回仕事で、PostgreSQL+PHPを使用しなくてはならなくなりそうです。
今まで、Apache1.2.6+Post6.3+PHP2('98/12-)を使用していたのですが、最近新しいバ−ジョンがリリ−ス('99/7-)されましたので、今回はそちらを採用してみたいと思っています。これらを使用し(Web+DB+Java)、本格的なe-businessソリュ−ションを展開したいと思っています。
PHP3.0.12の実装
- 99/8/16 HTML埋め込み型のサーバーサイドスクリプト言語です。Apacheモジュールとして動作するので高速です。各種データベースとの連携も簡単に
できます。Active Server Pages(ASP)のApache版といった感じのものです。PHP3.0.12のDownLoad。
tar xvfz php-3_0_12_tar.gz
php-3.0.12/win95nt.h
php-3.0.12/configuration-scanner.c
php-3.0.12/configuration-parser.tab.c
php-3.0.12/configuration-parser.tab.h
php-3.0.12/language-scanner.c
php-3.0.12/language-parser.tab.c
php-3.0.12/language-parser.tab.h
php-3.0.12/configure
./configure --with-apache=/apache/pass --with-pgsql=/usr/local/pgsql
make
function/oci8.oなど、たくさんのoファイルが出来る。
ranlib libmodphp3.a
make install
apacheのsrc/沢山のモジュ−ルをコピ−した旨のメツセ−ジが出る。このインスト−ルはただ、Apache1.3.6にPHPのライブラリ−をコピ−しただけですので
最終的にApacheを再構築する必要があります。
99/9/15 kanji-patchを当てるのですが、うまく展開してくれません。
PHP3.0.7(ja)の実装
- 99/9/15 PHP3.0.7jaのDownLoad。
tar xvfz php-3_0_7ja_tar.gz
php-3.0.7jp-beta2/mb_regex/Makefile.in
php-3.0.7jp-beta2/mb_regex/Makefile.tmpl
php-3.0.7jp-beta2/mb_regex/README.MB
php-3.0.7jp-beta2/mb_regex/dfa.c
php-3.0.7jp-beta2/mb_regex/dfa.h
php-3.0.7jp-beta2/mb_regex/mbc.c
php-3.0.7jp-beta2/mb_regex/mbc.h
php-3.0.7jp-beta2/mb_regex/regex.c
php-3.0.7jp-beta2/mb_regex/regex.h
root@soho /tmp]# tar zxvf php-3_0_7jp-beta2_patch1_tar.tar
php-3.0.7jp-beta2.patch1/
php-3.0.7jp-beta2.patch1/php-3.0.7jp-beta2.patch1
php-3.0.7jp-beta2.patch1/README
[root@soho /tmp]# cd php-3.0.7jp-beta2
[root@soho php-3.0.7jp-beta2]# patch -p1 <../php-3.0.7jp-beta2.patch1/php-3.0.7jp-beta2.patch1
patching file `i18n_version'
patching file `language-scanner.c'
patching file `language-scanner.lex'
./configure --with-apache=/apache/pass --with-pgsql=/usr/local/pgsql
make
function/oci8.oなど、たくさんのoファイルが出来る。
ranlib libmodphp3.a
make install
apacheのsrc/沢山のモジュ−ルをコピ−した旨のメツセ−ジが出る。このインスト−ルはただ、Apache1.3.6にPHPのライブラリ−をコピ−しただけですので
最終的にApacheを再構築する必要があります。
PostgereSQL6.51の実装(失敗)
- 99/8/16 adduser postgres、ただしRedHatの場合はすでに、グル−プも、ユ−ザも存在しています。注意事項はPostgresユ−ザで作業をする事。
[root@soho local]# mkdir /usr/local/pgsql
[root@soho local]# chown postgres:postgres /usr/local/pgsql
[root@soho src]# mkdir /usr/src/pgsql(src)
[root@soho src]# chown postgres:postgres /usr/src/pgsql
[root@soho /tmp]# mv postgresql-6_5_1_tar.gz /usr/src/pgsql
[root@soho /tmp]# cd /usr/src/pgsql
root@soho /tmp]# tar zxvf postgresql-6_5_1_tar.gz
postgresql-6.5.1/src/win32/CVS/Entries
postgresql-6.5.1/src/win32/CVS/Tag
postgresql-6.5.1/src/win32/README
postgresql-6.5.1/src/win32/endian.h
postgresql-6.5.1/src/win32/tcp.h
postgresql-6.5.1/src/win32/un.h
root@soho ]# chown -R postgres:postgres /usr/src/pgsql/postgresql-6.5.1
root@soho ]# ./configure --with-mb=EUC_JP
linking ./backend/port/tas/dummy.s to backend/port/tas.s
linking ./backend/port/dynloader/linux.c to backend/port/dynloader.c
linking ./backend/port/dynloader/linux.h to include/dynloader.h
linking ./include/port/linux.h to include/os.h
linking ./makefiles/Makefile.linux to Makefile.port
linking ./include/port to interfaces/odbc/port
linking ./makefiles to interfaces/odbc/makefiles
linking ./template to interfaces/odbc/template
linking ./include/config.h to interfaces/odbc/config.h
root@soho ]# make all
make[3]: Leaving directory `/usr/src/pgsql/postgresql-6.5.1/src/pl/plpgsql/src'
make[2]: Leaving directory `/usr/src/pgsql/postgresql-6.5.1/src/pl/plpgsql'
make[1]: Leaving directory `/usr/src/pgsql/postgresql-6.5.1/src/pl'
All of PostgreSQL is successfully made. Ready to install.
make install
(1999-07-15)
PostgreSQL has a Web site at http://www.postgresql.org/ which carries details
on the latest release, upcoming features, and other information to make your
work or play with PostgreSQL more productive.
Please check the following URL for a listing of the current user-support
mailing lists:
http://www.postgresql.org -> Info Central -> Mailing Lists
All of the mailing lists are currently archived and viewable at:
http://www.postgresql.org -> Info Central -> Mailing Lists
And, so that we have an idea of who is using what, please connect to the
following registration URL:
http://www.postgresql.org -> Helping Us -> Survey/Register
Thank you for choosing PostgreSQL, the most advanced open source database
engine.
なんか、導入は成功したみたい。それでは、テ−ブルの初期化をしてみましょう。
[postgres@soho src]$ PATH=$PATH:/usr/local/pgsql/bin
[postgres@soho src]$ initdb --pgdata=/usr/local/pgsql/data --pglib=/usr/local/pgsql/lib
We are initializing the database system with username postgres (uid=100).
This user will own all the files and must also own the server process.
Creating Postgres database system directory /usr/local/pgsql/data
Creating Postgres database system directory /usr/local/pgsql/data/base
initdb: creating template database in /usr/local/pgsql/data/base/template1
Running: postgres -boot -C -F -D/usr/local/pgsql/data -Q template1
syntax error 2334 : parse error
Creating global classes in /base
Running: postgres -boot -C -F -D/usr/local/pgsql/data -Q template1
Adding template1 database to pg_database...
Running: postgres -boot -C -F -D/usr/local/pgsql/data -Q template1 < /tmp/create.5250
ERROR: pg_atoi: error in "template1": can't parse "template1"
ERROR: pg_atoi: error in "template1": can't parse "template1"
initdb: could not log template database
initdb: cleaning up.デ−タベ−スの初期化でエラ−になりました。過去のメ−リングリストで同様のエラ−の回避策を見ると、どうも古いPostgresが
残って、悪さをしている様子です。
PostgreSQL6.5.1(再度挑戦)の実装
- 99/8/17 どうしても、Postgres6.3.2と6.5.1の同居がうまく出来ないため、rpm -qaでPostgres6.3を確認。postgresql-6.rpm関係を消しました。RedHat5.2の場合、標準は/var/lib/pgsql,
いきなり、本体は消せないのですね。devel,data,clients,本体と消していく、又、アップグレ−ドも6.3から6.5は出来ませんでした。勉強しました。
とりあえず、6.3.2の環境はすべて削除。再度、デ−タベ−スを初期化。
PATH=$PATH:/usr/local/pgsql/bin
EXPORT LD_LIBRARY_PATH=/usr/local/pgsql/lib initdbするときは、上記2行は忘れないように。
inittb --pgdata=/usr/local/pgsql/data --pglib=/usr/local/pgsql/lib
Verating template1
creating public pg_user view
creating view pg_rules
creating view pg_views
creating view pg_tables
creating view pg_indexes
loading pg_description
今度は、なにか成功したみたい。長かったなあ、ここへ到達するのに8時間ちかくもかかりました。
/data/pg_hba.confの修正。一行追加、host all 0.0.0.0 0.0.0.0 password追加。
デ−タベ−スの作成、create xxxxをすると、/usr/local/pgsql/data/base/にxxxのデ−タベ−スが作られる。
createuserもしておくと良いよ。テ−ブルの作成。create文をどこかに作って、psqlのsql文として、リダイレクションしてやればテ−ブルは作れます。
しかし、psqlだけ入力するとエラ−(1.2.6はOKだった。),.bash_profileにPASS情報を書いておくと便利。
[postgres@soho pgsql]$ psql yubin
Welcome to the POSTGRESQL interactive sql monitor:
Please read the file COPYRIGHT for copyright terms of POSTGRESQL
[PostgreSQL 6.5.1 on i686-pc-linux-gnu, compiled by gcc 2.7.2.3]
type \? for help on slash commands
type \q to quit
type \g or terminate with semicolon to execute query
You are currently connected to the database: yubin
\dtなどで見ると、テ−ブルが見れる。
yubin=> select * from yubin_tab;
new_zip|old_zip|address1
-------+-------+--------
(0 rows)
やっとできました。今回も、苦労しました。
yubin=> insert into yubin_tab values ('1111111','22222','3333333333');
INSERT 18560 1
yubin=> insert into yubin_tab values ('2222222','22222','3333333333');
INSERT 18561 1
yubin=> insert into yubin_tab values ('3333333','22222','3333333333');
INSERT 18562 1
yubin=> select * from yubin_tab;
new_zip|old_zip| address1
-------+-------+----------
1111111| 22222|3333333333
2222222| 22222|3333333333
3333333| 22222|3333333333
(3 rows)
PostgreSQL6.5.1+ACCESS97(ODBC)の実装
- 99/8/17 次は、ACCESS97から、Postgres6.51のデ−タを色々触ってみたいと思って、6.3時代のODBCでアタッチしたのですが、ODBCエラ−になりました。やはりねこれってまずいのかな。SOSをインタ−ウイズの片岡さんに送り、アドバイスをいただきました。
ODBCは問題ありませんでした。pg_hba.confの定義を変更しました(host all 0.0.0.0 0.0.0.0 trust)。問題無く動作しはじめました。漢字も問題無し。
PostgreSQL6.5対SQLserver6.5の比較
- 99/8/18 PostgreSQL6.5.1が問題なく動作しましたので、Access97から、ODBC経由でデ−タを1万件作りました。(約4分かかりました)
それでは、比較をしてみましょう。まずは、begin ; update yubin_tab set xxx='xxx';(4秒)けっこう、SQL-Serverと比べても早いぞ。
Rollback ;
NOTICE: UserAbortTransactionBlock and not in in-progress state ABORT
はて、なんだろう。エラ−になってしまって、Rollbackしないな。6.3.2も確認しましたが、同様です。
もう一度、挑戦。yubin=>vacumm;これは関係無し。
yubin=>begin;
BEGIN
yubin=>select yubin_tab set old_aip='22222';
UPDATE 10004
yubin=> rollback
ABORT これって、正常に終了(元に戻した)したとのメッセ−ジでした。まぎらわしい。
yubin=>end;
PGP6の実装
- 99/8/23 皆さんは、メ−ルを暗号化せずに送っていませんか。世の中には、Freeですばらしい、暗号化のソフトが色々あります。今回は、その中でも特に優秀なPGPをクライアントに導入してみます。
http://www.pgpi.com/から、International,Win95,Free版をダウンロ−ド。間違えても、US版を選択しないようにしてください。後は、インスト−ルして、使用(詳しくは、オライリ−のPGP実践活用ガイド参照)。
お手軽版は、http://www.blk.mmtr.or.jp/~cosmo/さんから出されている、「暗号郎」はシンプルなのですが強固な暗号化ソフトです、簡単に使用出来てお手軽です。どちらのソフトも情報を暗号化して、送れますので安心です。
JRun(JSP)の実装
- 99/8/24 Servletを起動させるには、Apache+jServ(Free,実装済み),LiveSoftware(Free,)+JRun,Javasoft+java Server(有償)が有名です。是非一度、JSPを試してみたくなりました。今回は、JSPにも対応出来るJRunを使用してみたいと思います(参考書はNT Prees #7)。http://jrun.com/から、Jrun2.3.2(Linux,Win95)のダウンロ−ド。
カギと、ダウンロ−ドサイトの案内がMailで届きます。Linux版はインスト−ルが難しそうなので、Win版で一度体験した方が良さそうです。
Win版はどちらを落として良いかわからなかった為、とりあえずLinux版を落としました。(20MB、1時間かかりました)
tar xvf jrun23setup_tar.zで解凍。
jrun/webl/scripts/ReadingGrade.webl
jrun/webl/scripts/StockQuote.webl
jrun/webl/scripts/YahooPeople.webl
jrun/webl/servlets
jrun/webl/servlets/Example1.webl
jrun/webl/servlets/Example2.webl
jrun/webl/servlets/Example3.webl
jrun/webl/servlets/README
jrun/README.webl、かなりの数の、プログラムが解凍されました。
sample$db$Tables$pKey.tbl
com.livesoftware.jrun.plugins.jsp.JSPAbortException.html
com.livesoftware.jrun.plugins.jsp.JSPApplication.html
com.livesoftware.jrun.plugins.jsp.JSPCompileException.html
com.livesoftware.jrun.plugins.jsp.JSPObjectUnavailableException.html
com.livesoftware.jrun.plugins.jsp.JSPParseException.html
com.livesoftware.jrun.plugins.jsp.JSPTagableHandler.html
com.livesoftware.jrun.plugins.jsp.ServletBuilder.html
com.livesoftware.jrun.plugins.ssi.GenericTagableHandler.html
com.livesoftware.jrun.plugins.ssi.JRunParseException.html
com.livesoftware.jrun.plugins.ssi.SSIAbortException.html
com.livesoftware.jrun.plugins.ssi.SSIParseException.html
com.livesoftware.jrun.plugins.ssi.TagableHandler.html
com.livesoftware.jrun.plugins.ssi.TagletAggregate.html
install.shをすれば良さそうなのですが、少し勉強して、インスト−ルしたいと思います。
99/8/25 Win版、JRun232.exeをインスト−ルしました。
NTのSP5の当て方
- 99/8/25 Linuxの話題ではないのですが、NTはSP(不具合修正)の5が出たのですか、これがまた当て方の順番があり、うまく出来なかったら、再インスト−ルになります。とにかく、うまく動かなくなったら、NTは再インスト−ルです。これが一番早い。色々調査している時間が大変。
SEは時間単価が高いですから。SP3から5へは、SP4を当てて、又IE4.01SP2を当て直して、SP5を導入する必要があるそうです。
Apache1.3.6+PHP3.012の実装
- 99/8/ PostgreSQL6.5.1が問題なく動作しましたので、次はWebから、Apache+PHP3.0に挑戦します。
- Linux関連のリンク集
- PHP・・・PHP関係。
- ネットワーク管理者(の卵)養成講座・・・ネットワーク管理者(の卵)養成講座関係。
- Linux Users group ChugoKu・・・Linux Users group ChugoKu関係。
- Java servlet・・・Java servlet関係。
- Live Software・・・JRun関係。
- 暗号郎・・・暗号郎,関係。
- Java servletのペ−ジ・・・Java servlet関係、他もろもろ。
このホ−ムペ−ジの画像の無断転載はかたくお断りします。Linuxメーリングリストの皆さん、Oracle,PostgreSQLメーリングリストの皆さん、ならびに私を支援していただいた多くの方々に、
この場をお借りして、厚くお礼申し上げます。
ritsuo@mxy.mesh.ne.jp
Copyright(C) 1999 by Ritsuo Fujii