確認した環境
ねたは以下の URL から持ってきます。つながらない場合などは、 FTP searchなどで 探してみてください。
readline-2.2.1 のインストール
root@server1:~# cd /tmp root@server1:/tmp# tar xvzf /どこかの/readline-jp/readline-2.2.1.tar.gz root@server1:/tmp# cd readline-2.2.1 root@server1:/tmp/readline-2.2.1# gzip -dc /どこかの/readline-2.2.1.jpatch.980724 | patch -p0 (これで README.jis ができるので読みましょう) root@server1:/tmp/readline-2.2.1# ./configure root@server1:/tmp/readline-2.2.1# make root@server1:/tmp/readline-2.2.1# make install
(運がよければ)これで /usr/local/lib 配下に libreadline.a と libhistory.a が作成されます。もはやソースは不要なので削除しても 構いません。
root@server1:/tmp/readline-2.2.1# cd .. root@server1:/tmp# rm -rf readline-2.2.1*
PostgreSQL 6.4 のインストール
簡単に説明します。ハマッてしまったら、迷わず 石井さんのページに直行します :-)。
ソースの展開準備
root@server1:~# rm -rf /usr/local/pgsql root@server1:~# mkdir /usr/local/pgsql root@server1:~# chown postgres.users /usr/local/pgsql
PostgreSQL 管理者の設定(はじめてのインストールの場合のみ)
まず、/usr/local/pgsql/lib/libpq.so が各アプリケーションから アクセスできるようにします。
root@server1:~# echo '/usr/local/pgsql/lib' >> /etc/ld.so.conf root@server1:~# ldconfig -p
adduser コマンド で postgres というユーザを作成します。
これ以降はユーザ postgres で作業します。
root@server1:~# su - postgres postgres@server1:~$
初めてのインストールの場合は、.bash* とか .cshrc とかを編集して /usr/local/pgsql/bin にパスを通しておきます。
postgres@server1:~$ echo 'export PATH=/usr/local/pgsql/bin:$PATH' > ~/.bashrc postgres@server1:~$ source ~/.bashrc
展開+インストール
postgres@server1:~$ cd /usr/local/pgsql postgres@server1:/usr/local/pgsql$ tar xvzf /どこかの/postgresql-v6.4-patched.tar.gz postgres@server1:/usr/local/pgsql$ cd postgresql-v6.4/src/ ( ここには README.mb.jp という福音書があるので、ありがたく参照します) postgres@server1:/usr/local/pgsql/postgresql-v6.4/src$ ./configure --with-mb=EUC_JP postgres@server1:/usr/local/pgsql/postgresql-v6.4/src$ make postgres@server1:/usr/local/pgsql/postgresql-v6.4/src$ make install
データベースの初期化
postgres@server1:~$ initdb --pgdata=/usr/local/pgsql/data --pglib=/usr/local/pgsql/lib
これは、インストール後に一度だけ行う作業です。 何をやっているのかということに興味があれば、 initdb.1に何か書いてあるかもしれません。
PostgreSQL の起動
postmaster というデーモンを起動するのですが、 セキュリティ保護の関係で root 権限では起動できないとかありますので、 ここは桑村さんが作られた pgsqld というスクリプトをパクって しまいましょう(^^;。
pgsqld は、技術評論社 が発行している Software Design 98/12 月号についてくる Plamo Linux 1.3 の CD-ROMの中の、contrib/Database/pgsql632.tgz というやつに入ってますが、無い方あるいは買いそびれた方は、 ここにも置いてあります。
ゲットした pgsqld を /usr/local/pgsql/bin にコピーして、 コマンドラインから起動します。
postgres@server1:~$ pgsqld start /usr/local/pgsql/bin/pgsqld: postmaster(PostgreSQL server) started. /usr/local/pgsql/bin/pgsqld: Proccess ID = 16830
幸運な事にうまく起動するようであれば、このコマンドを /etc/rc.d/rc.local などに追加しておけば、ブート時に自動的に 立ち上がるようになります。
注意:pgsqld は、デフォルトで -i オプションが指定して ありますので、別のホストからのアクセスもできるようになっています。 セキュリティ上問題がある場合は、pgsqld をエディタで開いて適当に 修正してください。詳細は postmaster.1を参照してください。
Regression Test(回帰テスト?)
では、動作確認を行います。
postgres@server1:~$ cd /usr/local/pgsql/postgresql-v6.4/src/test/regress/ postgres@server1:/usr/local/pgsql/postgresql-v6.4/src/test/regress$ make all runtest (中略) =============== running regression queries... ================= boolean .. ok char .. ok name .. ok (中略) install_plpgsql .. ok plpgsql .. ok euc_jp .. ok ACTUAL RESULTS OF REGRESSION TEST ARE NOW IN FILE regress.out rm regress.o
みたいな感じで、各データ型や機能について ok/fail が表示されます。 ここで fail が出るようであれば、私の手には負えないので、 PostgreSQL のメーリングリストで聞いてみてください。
Regression Test が終了すると、regress.out というファイルに 結果が書き込まれます。これで PostgreSQL については完璧です(どこが?)。 どうもお疲れさまでした。
PHP 3.0.5 + Apache 1.3.3 のインストール
ここからは、また root に戻って作業です。
過去の清算
すでに apache 1.3.x を動かしている方は、古い httpd をブチ殺しておくと 共に、古い環境もばっさり消しておいた方がよいかもしれません。 あ、バックアップはちゃんと取っておきましょうね。
root@server1:~# cd /usr/local/etc/ root@server1:/usr/local/etc# rm -r apache* php*
展開
root@server1:/usr/local/etc# tar xvzf /どこかの/php-3_0_5_tar.gz root@server1:/usr/local/etc# tar xvzf /どこかの/apache_1_3_3_tar.gz root@server1:/usr/local/etc# export LD_LIBRARY_PATH=/usr/local/pgsql/lib ( make の途中で PostgreSQL のライブラリ libpq を 見に行けるようにするおまじない)
php-3.0.5/INSTALL ファイルにある QUICK INSTALL の指示に従います。
root@server1:/usr/local/etc# cd apache_1.3.3/ root@server1:/usr/local/etc/apache_1.3.3# ./configure --prefix=/www root@server1:/usr/local/etc/apache_1.3.3# cd ../php-3.0.5/ root@server1:/usr/local/etc/php-3.0.5# ./configure --with-pgsql --with-apache=../apache_1.3.x --enable-track-vars root@server1:/usr/local/etc/php-3.0.5# make root@server1:/usr/local/etc/php-3.0.5# make install root@server1:/usr/local/etc/php-3.0.5# cd ../apache_1.3.3/ root@server1:/usr/local/etc/apache_1.3.3# ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a root@server1:/usr/local/etc/apache_1.3.3# make root@server1:/usr/local/etc/apache_1.3.3# make install
Apache の確認
ここまでで、Apache としてはインストールが完了しました。 では、動かして確認してみましょう。
root@server1:/usr/local/etc/apache_1.3.3# /www/sbin/apachectl start /www/sbin/apachectl start: httpd started
この後、適当なブラウザでそのサーバにアクセスしてみて、 例の「It Worked!」(元々 /www があった場合は元々のページ)が 表示されれば成功です。うまくいったら、上記のコマンドを /etc/rc.d/rc.local にでも書いておきましょう。
PHP3 の確認
次は PHP3 の設定を行います。
root@server1:/usr/local/etc/apache_1.3.3# cd ../php-3.0.5 root@server1:/usr/local/etc/php-3.0.5# cp php3.ini-dist /usr/local/lib/php3.ini
上書きインストールでない場合は、さらに以下の設定が必要です。
root@server1:/usr/local/etc/php-3.0.5# cd /www/etc/apache/
この配下に srm.conf ファイルがあるのでそれを開いて、 php3 を含む行
#AddType application/x-httpd-php3 .phtmlの行頭の '#' を削除して有効にし、右端の .phtml を .php3 に変更します。 これが PHP3 スクリプトファイルの拡張子とみなされます。その後 変更を反映させるために Apache を再起動します。
root@server1:/www/etc/apache/# /www/sbin/apachectl restart /www/sbin/apachectl restart: httpd restarted
確認方法としては、以下の事を試してみてください。
root@server1:/www/etc/apache# cd /www/share/apache/htdocs/ root@server1:/www/share/apache/htdocs# cp /usr/local/etc/php-3.0.5/examples/date.php3 .
この後、適当なブラウザで http://そのサーバの/date.php3 にアクセスしてみて、こんな感じの出力がなされれば成功です。
Functions demonstrated
The date() function is used to display times and dates in various ways. The function takes a format string and a time as arguments. If the time argument is left off, the current time and date will be used. The time argument is specified as an integer in number of seconds since the Unix Epoch on January 1, 1970. The format string is used to indicate which date/time components should be displayed and how they should be formatted.
For example, if we wanted to print the current date and time, we might use a tag like: <? echo date("D M d, Y H:i:s")?>. This looks like: Fri Nov 27, 1998 17:16:45 (ここが今現在の時刻になっていればOK)
Apache のディレクトリ構成や、PHP/FI からの移行などについては、 前回作った Apache 1.3.1 + PHP 3.0.2 インストールメモ の方に書いてあります。