Rough English Here
 

PHP+Apache+PostgreSQLのセットアップ

10/18, 2003: 更新停止
1/3, 2002: PHPの設定(magic_quotes_gpc)に関する記述を追加
10/22, 2001: ページ公開
[019748]

内容が古くなったため、今後このページは更新されません。ご了承下さい。

PHP+Apache+PostgreSQLの組合わせでWebアプリケーションがバリバリ構築できます. 拙作のbookmark+xは バリバリというよりもショボショボと開発した例ですが, 最近ユーザの方も増えてきましたので 今まではしょっていた PHP,Apache,PostgreSQLのセットアップ方法を説明します.

用いたディストリビューションはVine Linux 2.1.5です.

PHP4のインストール
Vine PlusからRPMパッケージをもらってきて,インストールします. php-imapは必要なければ入れなくてもいいでしょう.

# rpm -ivh php-4.0.4-1vl1.i386.rpm 
# rpm -ivh mod_php-4.0.4-1vl1.i386.rpm 
# rpm -ivh php-manual-4.0.4-1vl1.i386.rpm 
# rpm -ivh php-pgsql-4.0.4-1vl1.i386.rpm 
# rpm -ivh php-imap-4.0.4-1vl1.i386.rpm

Apacheの設定
ApacheでPHP4を使うための設定をします.

・/etc/httpd/conf/httpd.confを編集して,以下の記述を追加

# Dynamic Shared Object (DSO) Support
 .....
 LoadModule php4_module         modules/libphp4.so

# Reconstruction of the complete module list from ...
 .....
 AddModule mod_php4.c

# AddType: allows you to tweak mime.types without ...
 .....
 <IfModule mod_php4.c>
   AddType application/x-httpd-php .php
   AddType application/x-httpd-php-source .phps
 </IfModule>

・Apacheを再起動

# /etc/rc.d/init.d/httpd restart

・ntsysvを使ってマシン起動時にApacheが動作するよう設定

# /usr/sbin/ntsysv

PostgreSQLの設定
PostgreSQLの設定を行うときは,基本的にユーザ "postgres"にsuして操作します. データベースは/var/lib/pgsql/data/以下に格納されています.

・データベースの初期化 (Vine2.1.5の場合,初回の「サーバの起動」時に自動的に行われるため,この操作は不要です)

 # su - postgres
 > initdb

・サーバの起動

 # /etc/rc.d/init.d/postgresql start

・ユーザ 'nobody'の追加 (Apache用のユーザを追加します)

 # su - postgres
 $ createuser nobody
 Shall the new user be allowed to create databases? (y/n) y
 Shall the new user be allowed to create more new users? (y/n) n

・ntsysvを使ってマシン起動時にPostgreSQLが動作するよう設定

# /usr/sbin/ntsysv

PHPの設定
PHP4の設定は "/usr/etc/php.ini" というファイルで行います.

・"magic_quotes_gpc"をOffに設定します.PHPのマニュアルによると,

magic_quotes_gpc:
GPC (Get/Post/Cookie) 命令に関する magic_quotes の状態を セットします。 magic_quotes がオンの場合、' (シングルクオート)、 " (ダブルクオート)、 \ (バックスラッシュ) 、NUL は 全て自動的にバックスラッシュで エスケープ処理されます。
とありますが,この機能は多バイト文字が混じっていると うまく働かないことがあります.例えば,SJISで"予定"という文字列は "予\定"のようにエスケープ処理されてしまいます。 "magic_quotes_runtime"も同様なので,両方とも"Off"に設定した方が いいでしょう.

; Magic quotes
magic_quotes_gpc    =   Off     ; magic quotes for incoming GET/POST/Cookie data
magic_quotes_runtime=   Off     ; magic quotes for runtime-generated data, e.g.\
                                  data from SQL, from exec(), etc.

・'php.ini'を編集したら,Apacheを再起動することで有効になります

# /etc/rc.d/init.d/httpd restart

というわけで
以上のようにVineを使う場合,セットアップは簡単です. 僕は試したことがないのですが,Windowsでも動かせるんじゃないかと思います.

Copyright © 2001 KOMORIYA Takeru リンクはご自由に (参考) →Linux Lifeにもどる