2007年8月27日月曜日

CentOS 5でつくるPHP開発サーバ.#5

林檎生活100: CentOS 5でつくるPHP開発サーバ.#4の続き.今回は,PostgreSQLphpPgAdminのインストールについて.

PostgreSQLのインストール手順.

1.yumでインストールする.
# yum -y install postgresql-server


2.OS起動時に起動するように登録する.
# /sbin/chkconfig  postgresql on


3.PostgreSQLを起動する.(DBの初期化とかも初回起動時にやってくれるみたい.楽だねぇ♪)
# /sbin/service postgresql start


4.PostgreSQLのpsqlクライアントの動作確認.(といっても,バージョンを表示してるだけなんだけどねw)
# psql --version


5.PostgreSQLに接続する.
# su postgres(postgresユーザになる.ユーザについての詳しい情報は,エントリ末尾の補足情報を参照.)
$ psql


6.PostgreSQLのpostgresユーザにパスワードを設定する.
postgres=# ALTER USER postgres WITH PASSWORD '(設定したいパスワードを入力する.)';


7.PostgreSQLへadminユーザ(管理用の全権限を持つスーパーユーザ.)を追加する.(ここで追加するユーザは,CentOSのユーザとは異なる.)
postgres=# CREATE USER admin WITH PASSWORD '(設定したいパスワードを入力する.)' SUPERUSER CREATEDB CREATEROLE;


8.PostgreSQLへの接続を解除する.
postgres=# \q


9.PostgreSQLのクライアント認証を変更する.
# vi /var/lib/pgsql/data/pg_hba.conf
.
.
.
# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5


10.PostgreSQLを再起動する.
# /sbin/service postgresql restart


PostgreSQLの設定はこんなところ.yumで楽にインストールできるんだけど,あとあとにインストールするphpPgAdminのせいで,ユーザ管理とかはちょっと複雑.補足情報にまとめておいたので,そこをみてくれぃ.

次にphpPgAdminをインストールする前に,PHPからPostgreSQLにアクセスできるように,pgsqlモジュールをインストールする必要がある.これもyumでさくっといける.

1.pgsqlモジュールをインストールする.
# yum -y install php-pgsql


2.モジュールを反映させるため,サーバを再起動する.
# /sbin/service httpd restart


3.設定をブラウザから確認する.PDOとpdo_pgsql,pgsqlの項目があればOK.
http://172.16.8.3/phpinfo.php

これで,PHPからPostgreSQLにアクセスすることができるようになったはず・・・.(確かめてないんだよね.)

さて,やっときたphpPgAdminのインストール.これがちょっと面倒.だって,yumからいけないんだもの・・・.しかし,「SQLなんてよくわかりませんからっ!」って人とか,「SQLってなに?おいしいの?」って人とかのため(僕を含むw)に,インストールしないわけにはいかないんだな.ということで,そのインストール手順.

1.ソースを入手する.(現在の最新版は,4.1.3だったけど,それより新しいのがあれば,それを使ったほうが無難だな.)
# cd ~
# wget http://jaist.dl.sourceforge.net/sourceforge/phppgadmin/phpPgAdmin-4.1.3.tar.gz(ごめん.JAISTへの直リンク.)


2.ソースを展開する.
# tar -zxvf phpPgAdmin-4.1.3.tar.gz


3.ソースを移動する.
# mv phpPgAdmin-4.1.3 /var/www/html/phpPgAdmin


4.動作をブラウザから確認する.
http://172.16.8.3/phpPgAdmin/

というようなかんじで,ひととおり設定が終わった.使うときは,新しいDBと新しいユーザを作って,PHPからそのユーザを使ってDBを操作するような感じになるんじゃないかなぁ・・・.(まだ試していないんだよな.間違ってるかもしれん・・・.)

次回でとりあえず最終回の予定.でもまあ,Zend Studio用の設定なんで,今回までで十分な人が多いんだろうなぁwむしろ,MySQLやれよとw(MySQLに関しては,僕の不勉強なんでそのうちやれればなぁと思う.とかいいながら,仕事ではちゃっかり使ってるんだけどwww)

注意事項:
セキュリティ無視してる部分も多々あるというか,開発用なのでセキュリティなんて気にしてないんで要注意.本来なら,.htaccessとかでphpPgAdminに対してIPアドレスとかでアクセス制限をかけるべきだし,adminユーザに全権限を与えないほうがいい.もっというなら,phpPgAdminを使わないほうがいい.

補足情報:
知らなくてもどうにかなるけど,知っておいたほうがいい情報ってとこかな.むしろ,僕が間違っている可能性を含む情報だったりw

1.初期生成されるDB.
初回起動時に初期化されて,postgres,template0,template1という名前のDBが自動的に作成される.こいつらなんだよって話になるんだけど,postgresは,いわずもがなpostgresユーザのDBで,DBがないとPostgreSQLに接続できないから作られる.template1は,新しいDBを作るときのテンプレート.こいつを変更すれば,新しいDBの初期状態もそれにあわせられる.で,template1を変更しちゃうと初期状態のテンプレートがなくなるから,初期状態のテンプレートとしてtemplate0が存在するってわけなんだ.

2.DB接続時のユーザ認証の仕組み.
初期状態では,pg_hba.confの設定が,ローカルのOSユーザとDBユーザが一致すれば,DBに接続できるというようになっている.だから,postgresというユーザでDBに接続できる.しかし,phpPgAdminからDBへのアクセスでは,ローカルのOSユーザがapacheになるため,DBユーザとしてapacheがいないと接続できないという状態になる.また,その状態ではapacheというユーザでしかDBを管理できない.なので,パスワード認証(MD5認証.)を使うことになる.だから,pg_hba.confを前述のように変更したんだよね.

追記(2007年8月30日):
/etc/rc.d/init.d/postgresql startとかやってたのを,/sbin/service postgresql startというように変更した.

0 件のコメント: