www.suzu841.com | mrs.suzu841.com

neko1sa.gif CentOS5.2 に phpMyAdmin を設置してみる

もともとWindows ユーザの私にとって、Linux コマンドで操作をするのは余り得意ではありません。
web ページを作成するにはテキストで入力をすればいいとして、CMS などのブログツールなどで編集の確認をしたりするには、 php や mysql などの操作が必要になります。そこで、手っ取り早く phpMyAdmin Project へ行き、phpMyAdmin を貰って、設置する事にしました。だって、この方が X 画面で見ながら操作できるし・・・
それに、Apache は 2.2 系列から認証モジュールに大幅な変更が行われ、新たな config ファイルが 追加されていますので、nss.confの設定も必要になりました。 あれやこれや覚えているのは大変なので、以下、その設置方法を、簡単に書いておくことにしました。

OS : CentOS 5.2 (Kernel 2-6-18-92.1.6.e15 on an i686)
Apache 2.2 系 

解凍 | config.inc.php の設定 | Apache nss.conf の設定 | Apache Alias の設定 | httpd のステータス確認 | mysqld のステータス確認

phpMyAdmin をダウンロードする

http://www.phpmyadmin.net/home_page/ で、 phpMyAdmin 2.11.8.1 ( Version 2.11.8.1 (2008-07-28) ) をダウンロードしてきます。
all-languages 版とutf-8 だけの版と english 版とがありますので、私は all-languages.tar.gz をダウンロードしました。
images/download1.png

ダウンロード後、デスクトップを確認すると phpMyAdmin 2.11.8.1-all-languages.tar.gz が確かにありました。
images/download2.png

解凍

ここからはコマンド操作になります。まずデスクトップ画面上で右クリックし、端末を表示します。
端末が表示されたら、特権ユーザである root に su します。以下のように記述します。(緑色の文字の部分)


$ su -


この時 su の後に必ず半角スペースを入れ、その次に半角ハイフン( - ) を入れてEnter キーを押します。
下の画像のようになりますので、パスワードは root のパスワードを入れてください。

images/su-copy.png



次にphpMyAdmin 2.11.8.1-all-languages.tar.gz を移動させます。
解凍の前に移動させてしまった方が楽なので・・・。とりあえずここでは、例として、 /var/www/ に移動することにしますが、 もちろん、この場所は各ユーザの自由ですので、 /var/www/ の文字は適確置き換えてくださいまよう。

mv コマンドを使い、以下のように入力します(緑色の文字の部分)。

# mv phpMyAdmin 2.11.8.1-all-languages.tar.gz /var/www/


上記のように端末で入力した後で、、Enter キーを押し、デスクトップ画面上を確認すると、確かに消えていました。
images/mv1.png

では、次に端末上での現在位置を  /var/www/ に移動します。
もし、自分が端末上でどこにいるのかわからなくなってしまったら、 pwd と入力して、Enter キーを押してみてください。現在位置を表示します。
以下のように cd コマンドで移動します(緑色の文字の部分)。

# cd /var/www/


さて、移動できたら、 ls コマンドで中を見てみます(緑色の文字の部分)。

# ls -a


いかがでしょうか? 中に phpMyAdmin 2.11.8.1-all-languages.tar.gz はありましたでしょうか?
無事にありましたら、いよいよ解凍をします。拡張子は .tar.gz なので、解凍には、 xzvf 、又は、 -xzvf を使います。
この x( エックス ) , z( ゼット ) , v( ブイ ) , f( エフ ) の4つの文字は順番はないそうです。 要は、この4つの文字が入力されればいいのだそうで、zxfvであろうと、fzxv であろうと平気だそうです。ホントかウソかお試しあれ♪

解凍は次のように入力して、Enter キーを押します(緑色の文字の部分)。

# tar xzvf phpMyAdmin 2.11.8.1-all-languages.tar.gz


これで解凍が完了したら、もう一度 ls コマンドで中を見てみます。
phpMyAdmin 2.11.8.1-all-languages.tar.gz の他に青い文字で phpMyAdmin 2.11.8.1-all-languages というディレクトリが出来ていませんでしょうか?
ありましたら、とりあえずの解凍は成功ということになります。



※ 元の phpMyAdmin 2.11.8.1-all-languages.tar.gz ファイルの方はいらないようでしたら、 rm コマンドでそのまま削除されてください。
rm コマンドで、以下のように入力し(緑色の文字の部分)、Enter キーを押します。

# rm phpMyAdmin 2.11.8.1-all-languages.tar.gz

するとホントに消していいかどうかを確認してくるので、 yes , no で応えてあげてください。

もし、取って置くようでしたら、先ほどの mv コマンドを使い、そのままどこかへ移されたらよろしいかと思います。

config.inc.php の設定

まず、出来ている phpMyAdmin 2.11.8.1-all-languages の名前を変えましょう。ここではとりあえず phpMyAdmin と変更する事にします。
端末で以下のように mv コマンドで変更します。 mv コマンドは、ディレクトリやファイルなどの移動にも使いますが、リネーム(名前の変更) などにも使用します。


# mv phpMyAdmin 2.11.8.1-all-languages phpMyAdmin


出来ましたら、また、 ls コマンドで確認をしてみてください。
phpMyAdmin 2.11.8.1-all-languages のディレクトリの名前が phpMyAdmin になっていれば成功です。


次に cd コマンドで、 phpMyAdmin のディレクトリ内へ移動します。

# cd phpMyAdmin



移動したら、 phpMyAdmin のディレクトリ内を ls コマンドで確認をします。中のファイルを見ます。

# ls -a


この中に config.sample.inc.php というファイルがあります。 このファイルの名前を config.inc.php と変更します。
以下の手順を踏んでください。

1. less コマンドでファイルを開きます。

# less config.sample.inc.php

開けましたでしょうか? 文章が表示されましたら、次の操作を行います。

2.v キーを押します。(vi 画面になりました。)

3.i キーを押します。(インサートモードです。)

4. Esc キーを押します。(インサートモードを抜けます。)

5.: ( コロン ) を押し、続けて wq config.inc.php と入力して、Enter キーを押します。
( wq は、 write quit の事であり、現在開いているファイルを上書きモードで終了ですが、 wq の後にファイル名を書いた場合は、 その名前のファイルを作って、終了となります。)

6. q キーを押します。( less コマンドの終了。)


以上の一連の操作が終わりましたら、 ls コマンドで、ちゃんと出来ているかどうかを確認します。

# ls -a


images/config.png
ちゃんと出来ています。


次に今度は、作った config.inc.php の最低限の設定を1箇所だけします。 less コマンドで開きます。

1. less コマンドで config.inc.php ファイルを開きます。

# less config.inc.php

開けましたでしょうか? 文章が表示されましたら、次の操作を行います。

2.v キーを押します。(vi 画面になりました。)

3.i キーを押します。(インサートモードです。)
images/config2.png
$cfg['blowfish_secret'] = 'ここへ入れる'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ と書かれた箇所のシングルクォーテーションの間に自分だけにわかるパスワードのような文字列を入れてください。 キーボードだけの操作になります。終わりましたら次の操作に移ります。

4. Esc キーを押します。(インサートモードを抜けます。)

5.: ( コロン ) を押し、続けて wq とだけ入力して、Enter キーを押します。
( 現在開いているファイルを上書きモードで終了します。)

6. q キーを押します。( less コマンドの終了。)


以上で、 config.inc.php の編集は終了です。

Apache nss.conf の設定

さて、上記のように設定して、Apacheを起動させるために startコマンドを使用します。


# service httpd start


images/httpd_start.png
あら? 起動してくれませんね???
何度やってもアパッチが起動してくれません。
原因をさぐるために cd コマンドで error_log などが保存されている /var/log/httpd/ まで移動します。

# cd /var/log/httpd/


この中には今出されたエラーのlogなどが保存されていますので、それを探します。
いくつかの logファイルがありますが、まず error_log を lessコマンドで開いて読んでみますが、どうやらこれは違うようです。 次に nss_error_logと名前のついているlogファイルを開いてみます。


# less nss_error_log


ここには下のような errorログが残されていました。

[Tue Aug 05 10:46:56 2008] [error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved. Aug 05 10:50:12 2008] [error] Certificate not verified: 'Server-Cert'
[Tue Aug 05 10:49:42 2008] [error] Certificate not verified: 'Server-Cert'
[Tue Aug 05 10:49:42 2008] [error] SSL Library Error: -8181 Certificate has expired
[Tue Aug 05 10:49:42 2008] [error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.)
[Tue Aug 05 10:50:12 2008] [error] Certificate not verified: 'Server-Cert'
[Tue Aug 05 10:50:12 2008] [error] SSL Library Error: -8181 Certificate has expired
[Tue Aug 05 10:50:12 2008] [error] Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.


このログの中の下の方の行に
Unable to verify certificate 'Server-Cert'. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.
という行があります。これによると 'Server-Cert'ファイルをちゃんと作るか、
nss.conf に "NSSEnforceValidCerts off" の文字列を入れろと・・・・?


というわけでここからは、nss.conf の編集です。
今までのApacheでしたら、この nss の設定はいらないものでしたが、Apache は 2.2 系列から認証モジュールに大幅な変更が行われ、 新たな config ファイルが追加されています。
このうち、/etc/httpd/conf.d/nss.conf がデフォルトのままでは apache が起動しませんので注意が必要です。

対応方法としてはとりあえず、以下の2つの方法が考えられます。
■ 対応方法1
nss.conf を httpd.conf 内の Include ディレクティブに記述されたディレクトリ以外の場所へ移動する。
ここでは例として、omitconf.d というディレクトリを作成し、そちらに移すことにします。

# mkdir /etc/httpd/omitconf.d
# mv /etc/httpd/conf.d/nss.conf /etc/httpd/omitconf.d


または nss.conf を /etc/httpd/conf.d から削除しても OK ですが、この方法はあまりお勧めできません。

■ 対応方法2
nss.conf に以下の一行を記述して nss モジュールの動作を抑制する。

NSSEnforceValidCerts off


ここでは対応方法2の方法を選択し、以下のように nss.conf の頭に NSSEnforceValidCerts off の1行を くわえます。また less コマンドから vi で編集します。

1. /etc/httpd/conf.d/ まで cd コマンドで移動し、 less コマンドで nss.conf ファイルを開きます。

# cd /etc/httpd/conf.d/ 
# less nss.conf 

開けましたでしょうか? 文章が表示されましたら、次の操作を行います。

2.v キーを押します。(vi 画面になりました。)

3.i キーを押します。(インサートモードです。)
ここでキーボードを使い、NSSEnforceValidCerts off の1行を書き加えます。
images/nss.png

4. Esc キーを押します。(インサートモードを抜けます。)

5.: ( コロン ) を押し、続けて wq と入力して、Enter キーを押します。( 上書きします。)

6. q キーを押します。( less コマンドの終了。)


変更した書式が間違えていないかどうかを確認するために、下のように入力し、Enter キーを押します。


# httpd -t


Syntax OK と表示されれば、間違いないことになります。

images/syntax.png


次に、apache を起動させます。以下のように入力し、Enter キーを押します。


# service httpd start


images/httpd_start-yes.png

以上で nss.conf の編集は終わりましたので、今度は phpMyAdmin の場所をApacheに登録する Alias の設定になります。



※ なお、この nss.conf が置いてあるディレクトリの場所については RedHat 系のものです。他のLinuxディストリビューションについてはそれぞれに個々違う場所かもしれませんので、各ディストリビューションのマニュアルを参照願います。

Apache Alias の設定

今度は Alias (エイリアス)の設定をします。
Apache を動かすデーモン(サービス)を httpd(エッチ・テー・テー・ピー・デー) といいます。
Apache の設定ファイルの事を httpd.conf といい、私たちが作った web ページを置く場所を DocumentRoot といいます。

この DocumentRoot は、デフォルトでは /var/www/html/ となっています。
例えば、ここに abcd というディレクトリを置き、中に何かを書いた index.html ファイルがあるとするなら、その URL は、 http://www.○△△×/abcd/index.html となるわけですし、公開していない自分だけのネットワークならば、 http://localhost/abcd/index.html となります。
つまり、このようにブラウザは Apache の設定を読み取って表示をしているのです。

php は web server 上で動作するプログラミング言語ですので、phpMyAdmin を設置するディレクトリにはプログラムの実行権限が必要です。しかし、ドキュメントルート以下のディレクトリに安易に実行権限を与えるのはセキュリティ上好ましくありません。そこで今回は phpMyAdmin をドキュメントルートの外に置きたいと思います。
ここでは例として /var/www/ にしましたが、本来 Apache ではドキュメントツリーの外にアクセスすることができません。このため /var/www がドキュメントルートの中にあるかのように見せる設定を httpd.conf へ記述する必要があります。URI を別名で記述する方法はいくつかありますが、ここでは Alias を使って /var/www/phpMyAdmin の別名を作り、http://localhost/phpMyAdmin でブラウザからアクセスできるように設定します。このように Alias を設定することを、 Alias をふる などという言い方をします。
※ ここではサンプルとして /var/www/ という場所にしましたが、このディレクトリ位置は適確ご自分の環境に合わせて変更してお使い下さいますよう。

まず、端末で root ユーザで操作します。 /etc/httpd/conf/ に移動します。

# cd /etc/httpd/conf/



次に ls コマンドで、中に httpd.conf があるかどうかを確認します。

# ls -a


ありましたら次の操作をします。

1. less コマンドで httpd.conf ファイルを開きます。

# less httpd.conf

開けましたでしょうか? 文章が表示されましたら、次の操作を行います。

2.v キーを押します。(vi 画面になりました。)

3.i キーを押します。(インサートモードです。)

4. Esc キーを押します。(インサートモードを抜けます。)

5.: を押し、続けて wq httpd.conf.org と入力して、Enter キーを押します。
( 名前を変えてオリジナルファイルを保存しておきます。httpd.conf.org と言う名前は適当に付け替えてくださいますよう。)

6. q キーを押します。( less コマンドの終了。)

まず、これだけの操作をしたら、 ls コマンドで、今作ったファイルがちゃんとあるかどうかを確認してください。

# ls -a


大丈夫でしたでしょうか? httpd.conf と httpd.conf.org とちゃんとありましたでしょうか?
こうして先にオリジナルを保存しておく事で、作り変えたファイルがおかしくなった時には、即座に元へ戻す事ができますよね?
では、ここから先は本当に Alias の設定になります。


もう一度less コマンドで httpd.conf ファイルを開きます。

# less httpd.conf



開いた httpd.conf の526行目付近に以下のように書かれているところがあると思いますが、ここへ付け加えます。
編集方法は上の方で2回ほど使いました。
less コマンドからvi編集モードになり、編集が終わったら、Esc → : → wq → Enter キー、で終了です。

# Aliases: Add here as many aliases as you need (with no limit). The format is
# Alias fakename realname
#
# Note that if you include a trailing / on fakename then the server will
# require it to be present in the URL. So "/icons" isn't aliased in this
# example, only "/icons/". If the fakename is slash-terminated, then the
# realname must also be slash terminated, and if the fakename omits the
# trailing slash, the realname must also omit it.
#
# We include the /icons/ alias for FancyIndexed directory listings. If you
# do not use FancyIndexing, you may comment this out.
#
Alias /icons/ "/var/www/icons/"

<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

#
# WebDAV module configuration section.



以下のように赤茶色の文字で書かれた部分を挿入します。ただし、
Allow from 192.168.0. 127.0.0.1 のIPアドレスは適確ご自分の環境に合わせて変更してくださいますよう。
 
# Aliases: Add here as many aliases as you need (with no limit). The format is
# Alias fakename realname
#
# Note that if you include a trailing / on fakename then the server will
# require it to be present in the URL. So "/icons" isn't aliased in this
# example, only "/icons/". If the fakename is slash-terminated, then the
# realname must also be slash terminated, and if the fakename omits the
# trailing slash, the realname must also omit it.
#
# Alias for phpMyAdmin
#
Alias /phpMyAdmin/ "/var/www/phpMyAdmin/"

<Directory "/var/www/phpMyAdmin">
#Options Indexes MultiViews
AllowOverride None
Order deny,allow
Deny from all
Allow from 192.168.0. 127.0.0.1
</Directory>


# We include the /icons/ alias for FancyIndexed directory listings. If you
# do not use FancyIndexing, you may comment this out.
#
Alias /icons/ "/var/www/icons/"

<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

#
# WebDAV module configuration section.



以上で httpd.conf の編集は終わります。


※ これはあくまでもローカル環境での検証用環境ですので、これをそのまま公開することはとても危険です。
公開するにはApacheの設定ファイルをもっと洗練されたものにする必要がありますし、アクセス制限や認証などについても考慮しなければなりません。ここでは自分のマシンの環境を使っての検証用としか考えていないので、そういったものには何も触れておりません。ご承知おき下さいますよう。


Alias については本家の Apache Alias をどうぞ。 

httpd のステータス確認

今度は httpd と mysqld がちゃんとサービスとして動いているかを確認します。動いていなければ、せっかく入れた phpMyAdmin をブラウザで表示する事ができませんし、使えません。


端末で root ユーザとして操作します。
まず、httpd が動いているかどうかのステータス( status )を確認します。端末に以下のように入力します。

# service httpd status


images/httpd1.png

httpd が起動していれば、以下のように 実行中 という文字が表示されます。
images/httpd2.png

もし、起動していなければ、以下のように端末に入力して起動させます。

# service httpd start



これだけですが、この記述方法ですと、毎回コンピュータを起動させたときにこれをすることになります。
それでは面倒だ。ローカルだし、自分しか使わないのだから、Apache は、コンピュータが起動するときに自動的に起動するようにしたい、と言われるのであれば、chkconfig の設定をする事になります。以下のように端末に入力します。

# chkconfig httpd on


次回の起動時から有効になります。なお、この設定は RedHat 系だけのものです。

mysqld のステータス確認

httpd が無事に起動したら、今度は mysqld のステータスを確認します。httpd と同じように確認します。

# service mysqld status


images/sql1.png

images/sql2.png
停止していました。

以下のように入力して起動させます。

# service mysqld start


images/sql3.png

images/sql4.png
これで起動しました。

この操作もコンピュータが起動する度に行う事になります。余りスペックがないような非力なマシンはできるだけ起動時の負荷は軽くしたほうがいいので、私はこの mysqld は面倒でもこの操作を行っています。ですが、もしもやはりコンピュータの起動時に起動させておきたいのであれば httpd と同じように chkconfig mysqld on とすれば次回から有効になるので・・・・。


phpMyAdmin をブラウザで表示確認

さて、これで一連の設定は完了したはずなので、ブラウザで実際にアドレスを入力して表示させてみたいと思います。
http://localhost/phpMyAdmin/ とアドレスバーに入力して、Enter キーを押してみます。
この時の phpMyAdmin と言うディレクトリ名はあくまでもここで便宜上変更したサンプル名ですので、実際には適確ご自分で変更したディレクトリ名に置き換えて下さい。

images/brows1.png

何故か utf-8 の character ではいけないらしい・・・・

images/brows2.png
でも、どの character にしてもこの黄色いエラーメッセージは消えないのでこのまま使うことにします。

もしかすると phpMyAdmin は、CentOS5.2 では不具合があるとか? utf-8 ではダメとか・・・・???
もしかすると、私のブラウザのオプションの設定に異議申し立てを行っているのかもしれません。
私は、Firefox 及び、どのブラウザでも履歴、キャッシュ、などは保存しないように設定してありますし、
Cookei についても、Firefox を終了するまで、という設定にしてありますから・・・・
でも、使っていて支障はなにもありませんので、いいです。私はこのままでも・・・はい。

後は、特権 → 新規ユーザを作り、データベースの名前やパスワードなどを設定すれば、mysql も使えます。




※ あくまでも、自分だけが使うマシンであり、ローカルでの web ページの動作検証用環境です。