○ phpMyAdminのインストール

・WebブラウザからMySQLを管理します
・phpMyAdmin-4.6.6をインストールし、設定します
・httpd・php・mysqlが先に起動している必要があります
・PHP 5.5 以上、MySQL 5.5 以上が必要です

・ファイルの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:phpMyAdmin-4.6.6-all-languages.tar.bz2 (http://www.phpmyadmin.net/)

○参照ファイル

最初の設定 (Xen)
mysqlのインストール
imap/mcryptのインストール
httpd/phpのインストール

○インストール環境

:OS CentOS 6.8
:selinux disabled or permissive
:インストール先  /home/www/myhome/
:作業 ~/src
:ユーザー rootで実行

・メンテナンスの場合は一般ユーザから行います



○phpMyAdmin-4.6.6

・phpMyAdmin 4.0.x 4.1.x 4.2.x 4.3.x 4.4.x 4.5.xとは構成がことなるので注意

○ファイルの展開・コピー

・適当なディレクトリでソースを展開します
・新規のphpmyadminへ名前を変えてコピーします
・upload、save、tmpディレクトリをつくります
・ディレクトリ名は、自分の環境に読みかえてください

# cd /home/www/myhome
[root@jupiter:/home/www/myhome]
# tar jxvf phpMyAdmin-4.6.6-all-languages.tar.bz2
# mv phpMyAdmin-4.6.6-all-languages phpmyadmin

・upload、save、tmpディレクトリの作成

# mkdir -p phpmyadmin/{upload,save,tmp}

○phpMyAdmin 環境保管領域の作成 (mysql)

・SQLクエリを発行してデータベースを作成します
・phpmyadminで用意されているsqlファイルを読み込みます
・create_tables.sqlを修正すれば、デフォルト値の変更は可能
・4.6.xではcreate_tables.sqlがexamples/ からsql/に移されています
・phpmyadminデータベースの管理者とパスワードを設定します
・"pmapass"にはオリジナルのパスワードを入れてください

# /usr/local/mysql/bin/mysql -u root -p
Enter password:← パスワード(mysql管理者)の入力
mysql> show databases;
mysql> source /home/www/myhome/phpmyadmin/sql/create_tables.sql;
mysql> show databases;
mysql> use phpmyadmin;
mysql> show tables;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO pma@localhost IDENTIFIED BY "pmapass";
mysql> select host,user,password from mysql.user;
mysql> flush privileges;
mysql> exit;


○config.inc.phpファイルの作成

:setupファイルで作成します

・apacheのアクセスできるconfigディレクトリをつくります

# cd /home/www/myhome/phpmyadmin
[root@jupiter:/home/www/myhome/phpmyadmin]
# mkdir -m 777 config

・クライアントのブラウザでhttp://サーバ名/phpmyadmin/setup/にアクセスし
 設定ファイルをつくります (作業工程は省略)
 設定ファイルをphpmyadminディレクトリにコピーします

# cp -a config/config.inic.php .
# rm -r config

・またはsampleファイルをコピーします

# cp config.sample.inc.php config.inc.php

○config.inc.phpファイルの修正

:/home/www/myhome/phpmyadmin/config.inc.php

・参考になる config.default.php は phpmyadmin/libraries にあります
・'PmaAbsoluteUri'は4.6.xではなくなりました
・'TranslationWarningThreshold'日本語化の程度を指定(%) 警告への対処
・'blowfish_secret'には、cookie認証で使うパスフレーズを入れます (32文字以上)
・'UploadDir''SaveDir''TempDir'の設定に注意、場所によっては絶対パスが必要
・'auth_type'には認証モードを入れます
・'LogoutURL'には、画面の[ログアウト]アイコンでもどるURLを入れます
・'pmadb'以下の設定値はmysqlで作成したデータベースに合わせます
・'controluser''controlpass'は、安全のため外部からincludeします
・青色の部分はconfig.default.phpの設定値のままです

<?php

$cfg['TranslationWarningThreshold'] = 71;
$cfg['blowfish_secret'] = 'mfgrngrvvglij3dtczobdu4spfmkzcba';
$cfg['ServerDefault'] = 1;
$cfg['DefaultLang'] = 'ja';
$cfg['UploadDir'] = './upload';
$cfg['SaveDir'] = './save';
$cfg['TempDir'] = './tmp';

/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['LogoutURL'] = 'http://ja.528p.com/';
$cfg['Servers'][$i]['verbose'] = '';

/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

/* include pmapassword setting */
 
include ("/home/www/myhome/trust/pma_auth.php");

/* End of servers configuration */
?>

:/home/www/myhome/trust/pma_auth.php

・'pmapass'にはmysqlで設定したパスワードを指定します

<?php
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';  
?>

○アップデート

・既にphpmyadminが存在する場合です
・適当なディレクトリでソースを展開します
・デフォルトの設定ファイルを保存します
・ディレクトリ名は、自分の環境に読みかえてください

・バックアップをとります

# cd /home/www/myhome
[root@jupiter:/home/www/myhome]
# mv phpmyadmin phpmyadmin46052

# tar jxvf phpMyAdmin-4.6.6-all-languages.tar.bz2
# mv phpMyAdmin-4.6.6-all-languages phpmyadmin

・設定ファイルのコピー

# cp phpmyadmin46052/config.inc.php phpmyadmin/

・設定ファイルの修正 (必要な場合)

# vi phpmyadmin/config.inc.php

・ディレクトリの作成 (必要な場合)

# mkdir -p phpmyadmin/{upload,save,tmp}

・ユーザ・グループ・パーミッションの変更

# cd /home/www/myhome
[root@jupiter:/home/www/myhome]
# chown -R apache:apache phpmyadmin
# find phpmyadmin -type f -print0 | xargs -0 chmod g-w,o-rwx
# find phpmyadmin -type d -print0 | xargs -0 chmod g-rw,o-rw

・setupファイルにアクセスできないようにします

# chmod -x phpmyadmin/setup

・mysqlの設定 (必要な場合)

# /usr/local/mysql/bin/mysql -u root -p
Enter password:← パスワード(mysql管理者)の入力

・4.3.0より前からupdateする場合

mysql> source /home/www/myhome/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql
mysql> source /home/www/myhome/phpmyadmin/sql/create_tables.sql
mysql> show databases;
mysql> use phpmyadmin;
mysql> show tables;
mysql> drop table pma__designer_coords;
mysql> show tables;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO pma@localhost IDENTIFIED BY 'pmapass';
mysql> select host,user,password from mysql.user;
mysql> flush privileges;

・4.4.xより前からupdateする場合

mysql> source /home/www/myhome/phpmyadmin/sql/create_tables.sql
mysql> show databases;
mysql> use phpmyadmin;
mysql> show tables;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO pma@localhost IDENTIFIED BY 'pmapass';
mysql> select host,user,password from mysql.user;
mysql> flush privileges;

mysql> quit;

○ユーザ・グループ・パーミッションの変更

・ユーザ・グループは httpd.conf の設定に合わせます
・空白の含まれるディレクトリ名があるので注意します

# cd /home/www/myhome
[root@jupiter:/home/www/myhome]
# chown -R apache:apache phpmyadmin
# find phpmyadmin -type f -print0 | xargs -0 chmod g-w,o-rwx
# find phpmyadmin -type d -print0 | xargs -0 chmod g-rw,o-rw

・setupファイルにアクセスできないようにします

# chmod -x phpmyadmin/setup

・pmaパスワードファイルも変更しておきます

# chown apache:apache /home/www/myhome/trust/pma_auth.php
# chmod 640 /home/www/myhome/trust/pma_auth.php

○selinuxヘの対応 (selinuxが有効の場合)

・新規インストールファイルのselinuxラベルを修正

# cd ~
[root@jupiter:~]
# restorecon -RFv /home/www/myhome

○アクセス制限をします

・ローカルからの接続のみ許可します
・"SSLRequireSSL" SSLでセキュアな接続をします (SSLの設定は省略)
・ブラウザからlibrariesへの直接の接続要求を拒否します
・バージョン4.6.3以降、Refererを返さないようです
・Refererを使ってアクセス制御をしている場合は注意

・mod_securityを全体で有効にしている場合、個別に制御できないことがあります
・mod_securityの設定で個別のIPアドレスからの接続を無視する設定をして下さい

:httpd-personal.conf (ファイル名は各自、httpdの設定を参照)

・httpd(apache) 2.4 の場合

<IfModule alias_module>
    Alias /phpmyadmin "/home/www/myhome/phpmyadmin"
</IfModule>

<Directory "/home/www/myhome/phpmyadmin">
    Options Includes ExecCGI
    SSLRequireSSL
    Require ip 192.168.0
</Directory>

<Directory "/home/www/myhome/phpmyadmin/libraries">
    Require all denied
</Directory>

・httpd(apache) 2.2 の場合

<IfModule alias_module>
    Alias /phpmyadmin "/home/www/myhome/phpmyadmin"
</IfModule>

<Directory "/home/www/myhome/phpmyadmin">
    Options Includes ExecCGI
    SSLRequireSSL
    Order deny,allow
        Deny from all
        Allow from 192.168.0
</Directory>

<Directory "/home/www/myhome/phpmyadmin/libraries">
    Order deny,allow
        Deny from All
</Directory>

:httpdをリスタートします

[root@jupiter:~]
# service httpd restart

○ログインします

URL https://ja.528p.com/phpmyadmin/

・MySQLのユーザ・パスワードを聞かれます
・root (mysqlの管理者) でログインします



○いくつかの拡張機能が無効になっています (参考)

○phpmyadminという名前のデータベースを作ってリレーション機能を有効にします

・[詳細設定]に必要なので拡張機能を組み込んでおいた方が良いです
・mysqlでcreate_tables.sqlを使用して、phpmyadmin 環境保管領域 を作成します(省略)
・config.inc.phpでデータベース管理者の設定をします

:config.inc.php

$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';  

・config.inc.phpでデータベースの設定をします
・create_tables.sqlで作成されるphpmyadminデータベースに基づいた設定値

・4.3.x 4.4.x 4.5.xの場合 pma__ (アンダーバー2つになっているので注意)
紫色の部分 4.5.xで追加された部分

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

・4.0.x 4.1.x 4.2.xの場合 pma__ (アンダーバー2つになっているので注意)
青色の部分 4.1.xで追加された部分
紫色の部分 4.2.xで追加された部分

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';

・3.5.x の場合 pma_ (アンダーバー1つ)

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';



○ランダムなパスフレーズを作成 (参考)

・mkpasswdコマンドを使う(expectパッケージに含まれる)
・大文字、特殊文字を使わないオプションを指定しています

[root@jupiter:~]
$ mkpasswd -l 32 -s 0 -C 0
mfgrngrvvglij3dtczobdu4spfmkzcba

○ Copyright(c) 528p.com All Rights Reserved.