welcome! page:page:no03/resbbs/resbbs.php | |
phpMyAdmin | |
2017年 09月 10日(Sun) 11:24:16 AM | |
home:topへ server library:top へ |
phpMyAdminは、MySQLデータベースサーバをクライアントのブラウザから操作、管理できるWebアプリケーションです。
使用感からいえることは、すべての操作が可能といえます。
phpMyAdminのスクリプトファイルはPHPで記述されています。ソースは以下のサイトから取得できます。 |
The phpMyAdmin project |
この時点、2003.12.02日の最新versionは「phpMyAdmin-2.5.4-php.tar.gz」でした。このバージョンをインストールします。 |
phpMyAdminは、データベースごとに、あるいはユーザごとにインストールすることができます。
このことはまた、バーチャルドメインごとにもインストールできるということを意味します。
今回設定するデフォルトルートは「/home/tako/public_html」 です。
クライアントのブラウザからphpMyAdminを利用し、MySQLデータベースサーバに接続する場合、phpMyAdminをインストールしたままでは、
接続情報が平文(ひらぶん)でネットワーク上を流れます。このため何らかのアクセス制限をとることが、求められるでしょう。
ここではApacheのBasic認証を用います。では、ソースの展開から始めます。 |
$ cd tako $ tar zxvf phpMyAdmin-2.5.4-php.tar.gz $ cp phpMyAdmin-2.5.4 /home/tako/public_html/phpMyAdmin $ cd /home/tako/public_html/phpMyAdmin |
ここで「phpMyAdmin」ディレクトリ内の「config.inc.php」ファイルを編集します。 |
$ vi config.inc.php $cfg['PmaAbsoluteUri'] = 'http://ss.tako.ne.jp/xxxx/phpMyAdmin/'; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['user'] = 'tako'; $cfg['Servers'][$i]['only_db'] = 'takoの接続password'; |
この設定だけで、まずは接続できるはずです。もちろん、MySQLデータベースサーバに tako がデータベースを持ち、
接続が許可されていなければなりません。 ここの例の接続URLは、 |
http://www.xxxx.net/~tako/phpMyAdmin/ |
となり、初期ページが表示されることになります。しかし、この段階では誰でもがこのページにアクセスでき、
tako のデータベースを扱える状態です。 ApacheのBasic認証に移ります。 まず tako が自身でアクセス制限を行うことができるには「/etc/httpd/conf/httpd.conf」で、 |
< Directory /home/tako > AllowOverride Limit Options < /Directory> |
となっていなければなりません。これで「.htaccess」を tako は使用できます。「.htaccess」内容を見てみます。 |
$ cd ~tako/public_html/phpMyAdmin $ vi .htaccess AuthType Basic AuthUserFile /home/tako/.htpasswdmysql AuthGroupFile /dev/null AuthName "Input your password mysql" <Limit GET> require valid-user </Limit> |
アクセスするためのパスワードを作成します。 |
$ htpasswd -c /home/tako/.htpasswdmysql tako New password: Re-type new password: Adding password for user tako |
パスワードが作成されました。これで接続の際にアカウントとパスワードを求められるようになりました。 phpMyAdminが持つアクセス制限が別にありますが、これは割愛します。また、ApacheのBasic認証については、 以下のサイト内ページも参照下さい。 |
Apacheによるアクセス制限 |
上記でひとまずOKでしょうが、まだ「config.inc.php」ファイルにMySQLへの接続パスワードが、平文で記述されたままです。
これを何とかしてみたいと思います。まず新規に「phpmyadmin.inc」ファイルを次のように用意します。 |
$ cd ~tako $ vi phpmyadmin.inc <?php define( "ADMIN_ID", "tako" ); define( "ADMIN_PW", "xxxxxxxx" ); ?> |
PHPのdefine()関数で、ユーザ名とパスワードを定数化しました。 このファイルを「config.inc.php」で読み込みます。「config.inc.php」のファイルの先頭に以下の一行を追記します。 |
$ cd /home/tako/public_html/phpMyAdmin $ vi config.inc.php < ?php require_once( "/home/tako/phpmyadmin.inc" ); -------- 以下略 ---------------- |
このようにしてPHPのrequire_once()関数で「/home/tako/phpmyadmin.inc」を読み込んでおきます。
さらに「config.inc.php」を修正します。 |
$ cd /home/tako/public_html/phpMyAdmin $ vi config.inc.php $cfg['Servers'][$i]['user'] = ADMIN_ID; $cfg['Servers'][$i]['only_db'] = ADMIN_PW; |
これで「config.inc.php」ファイルに平文で記述されるという自体は回避できました。SSLを使用しないと、
これも気休めかも知れませんが。 最期に「.htaccess」ファイルと「phpmyadmin.inc」ファイルを「.htaccess」を使って公開しないように、以下を追記しておきます。 |
$ cd ~tako $ vi .htaccess <Files ~ "^\.ht"> order allow,deny deny from all </Files> <Files "*.inc"> order allow,deny deny from all </Files> |
以上ですが、ここまでの設定では、送受信されるデータは暗号化されていません。暗号化するためにSSLを使用しますが、
この設定はサイト内の OpenSSL を参照下さい。 |
《 ■ 参照URL ※サイト内参照ページ 引用、参照書籍 ■ 》 |
netfilter/iptables FAQ 日本語訳 |
指定時刻にジョブを実行する |
※crontab |
※rsync 同期をとるバックアップ |
※TCP/IP(Transmission Control Protocol/Internet Protocol) |
『実践セキュリティ』 著/白崎博生 刊/ASCII |
『実践Linuxセキュリティ』 著/すずきひろのぶ 刊/インプレス |
『Linuxセキュリティ入門』 著/清水正人 刊/ASCII |
『Linuxでパソコンをルータにする』 著/安井健次郎 刊/ディー アート |
『Linux magazine Linuxで作る光速ルータ』 2003年4月号 刊/ASCII |
『Linux WORLD IPネットワーク基礎講座』 2002年5月号 刊/ASCII |
『ステップ式サーバ構築入門 はじめてのファイアウォール』 著/内田法道 刊/技術評論社 |