8回目-16.phpMyAdmin 4.7.9 インストール&設定

さくらVPSCentOS 7 2週間無料のお試し期間 8回目

一覧

 状態:-  閲覧数:1,384  投稿日:2018-03-17  更新日:2018-03-19

Task


1.phpMyAdmin インストール

2.phpMyAdminログイン画面表示
▼/etc/nginx/conf.d/phpmyadmin.conf
# chown -R root:nginx /var/lib/php/session

3.phpMyAdminへログイン
・MySQLのrootパスワードでログイン

4.phpMyAdmin 用データベースの作成

5.「データベースを管理する権限を持つDBユーザpma」を作成

6.config.inc.php修正
※トラブったので、次回試す際は、6 → 4  → 5 の順番で実行
※いややっぱり、4 → 5  → 6 の順番で大丈夫。但し、SQL(IDENTIFIED BY 'パスワード')でDBユーザ作成。その際、DBユーザはpma以外へ変更する

1.phpMyAdmin インストール

 閲覧数:252 投稿日:2018-03-17 更新日:2018-03-18 

インストール


--enablerepo
・指定したリポジトリを有効にする という意味
・すべてのリポジトリを設定で無効にしたうえで 「remi,remi-php72」だけを有効にしている
$ sudo yum -y install --enablerepo=remi,remi-php72 phpMyAdmin
[sudo] password for ★★: 
読み込んだプラグイン:fastestmirror, langpacks
base                                                                                                                                  | 3.6 kB  00:00:00    
epel/x86_64/metalink                                                                                                                  | 6.6 kB  00:00:00    
epel                                                                                                                                  | 4.7 kB  00:00:00    
extras                                                                                                                                | 3.4 kB  00:00:00    
mysql-connectors-community                                                                                                            | 2.5 kB  00:00:00    
mysql-tools-community                                                                                                                 | 2.5 kB  00:00:00    
mysql57-community                                                                                                                     | 2.5 kB  00:00:00    
nginx                                                                                                                                 | 2.9 kB  00:00:00    
http://mirror.bebout.net/remi/enterprise/7/remi/x86_64/repodata/repomd.xml: [Errno 14] curl#7 - "Failed to connect to 2605:2700:0:9::1:6: ネットワークに届きません"
他のミラーを試します。
remi                                                                                                                                  | 2.9 kB  00:00:00    
remi-php72                                                                                                                            | 2.9 kB  00:00:00    
remi-safe                                                                                                                             | 2.9 kB  00:00:00    
updates                                                                                                                               | 3.4 kB  00:00:00    
(1/3): epel/x86_64/updateinfo                                                                                                         | 903 kB  00:00:00    
epel/x86_64/primary_db         FAILED                                                                                      ]  0.0 B/s | 903 kB  --:--:-- ETA
https://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora-projects/epel/7/x86_64/repodata/4f0e2ac9bc0ff76e5b696b46faf4d335d3667fa4b59ecd3c143603034008483b-primary.sqlite.bz2: [Errno 14] HTTPS Error 404 - Not Found
他のミラーを試します。
To address this issue please refer to the below knowledge base article

https://access.redhat.com/articles/1320623

If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/

(2/3): epel/x86_64/primary_db                                                                                                         | 6.3 MB  00:00:00    
(3/3): remi/primary_db                                                                                                                | 2.0 MB  00:00:01    
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.kddilabs.jp
* extras: ftp.iij.ad.jp
* remi: mirrors.mediatemple.net
* remi-php72: mirrors.mediatemple.net
* remi-safe: mirrors.mediatemple.net
* updates: ftp.iij.ad.jp
依存性の解決をしています

//中略

--> 依存性解決を終了しました。

依存性を解決しました

=============================================================================================================================================================
Package                                              アーキテクチャー           バージョン                             リポジトリー                    容量
=============================================================================================================================================================
インストール中:
phpMyAdmin                                           noarch                     4.7.9-1.el7.remi                       remi                           5.1 M
依存性関連でのインストールをします:
composer                                             noarch                     1.6.3-3.el7.remi                       remi                           380 k
dejavu-fonts-common                                  noarch                     2.33-6.el7                             base                            64 k
dejavu-sans-fonts                                    noarch                     2.33-6.el7                             base                           1.4 M
libicu                                               x86_64                     50.1.2-15.el7                          base                           6.9 M
libtidy                                              x86_64                     5.4.0-1.el7                            epel                           174 k
php-PsrLog                                           noarch                     1.0.2-2.el7.remi                       remi                            11 k
php-composer-ca-bundle                               noarch                     1.1.0-1.el7.remi                       remi                            12 k
php-composer-semver                                  noarch                     1.4.2-2.el7.remi                       remi                            16 k
php-composer-spdx-licenses                           noarch                     1.3.0-1.el7.remi                       remi                            16 k
php-fedora-autoloader                                noarch                     1.0.0-1.el7.remi                       remi                           8.9 k
php-gmp                                              x86_64                     7.2.3-2.el7.remi                       remi-php72                      65 k
php-google-recaptcha                                 noarch                     1.1.3-1.el7.remi                       remi                            13 k
php-intl                                             x86_64                     7.2.3-2.el7.remi                       remi-php72                     212 k
php-jsonlint                                         noarch                     1.7.1-1.el7.remi                       remi                            16 k
php-justinrainbow-json-schema5                       noarch                     5.2.7-1.el7.remi                       remi                            40 k
php-paragonie-random-compat                          noarch                     2.0.11-1.el7.remi                      remi                            25 k
php-password-compat                                  noarch                     1.0.4-1.el7.remi                       remi                           9.5 k
php-phpmyadmin-motranslator                          noarch                     4.0-1.el7.remi                         remi                            20 k
php-phpmyadmin-shapefile                             noarch                     2.1-1.el7.remi                         remi                            20 k
php-phpmyadmin-sql-parser                            noarch                     4.2.4-3.el7.remi                       remi                           156 k
php-phpseclib                                        noarch                     2.0.10-1.el7.remi                      remi                           207 k
php-psr-cache                                        noarch                     1.0.1-3.el7.remi                       remi                           8.6 k
php-psr-simple-cache                                 noarch                     1.0.0-1.el7.remi                       remi                           7.2 k
php-recode                                           x86_64                     7.2.3-2.el7.remi                       remi-php72                      44 k
php-seld-cli-prompt                                  noarch                     1.0.3-1.el7.remi                       remi                           7.6 k
php-seld-phar-utils                                  noarch                     1.0.1-2.el7.remi                       remi                           6.8 k
php-symfony-browser-kit                              noarch                     2.8.36-1.el7.remi                      remi                            24 k
php-symfony-class-loader                             noarch                     2.8.36-1.el7.remi                      remi                            27 k
php-symfony-common                                   noarch                     2.8.36-1.el7.remi                      remi                           142 k
php-symfony-config                                   noarch                     2.8.36-1.el7.remi                      remi                            53 k
php-symfony-console                                  noarch                     2.8.36-1.el7.remi                      remi                            89 k
php-symfony-css-selector                             noarch                     2.8.36-1.el7.remi                      remi                            37 k
php-symfony-debug                                    noarch                     2.8.36-1.el7.remi                      remi                            37 k
php-symfony-dependency-injection                     noarch                     2.8.36-1.el7.remi                      remi                            85 k
php-symfony-dom-crawler                              noarch                     2.8.36-1.el7.remi                      remi                            31 k
php-symfony-event-dispatcher                         noarch                     2.8.36-1.el7.remi                      remi                            25 k
php-symfony-expression-language                      noarch                     2.8.36-1.el7.remi                      remi                            28 k
php-symfony-filesystem                               noarch                     2.8.36-1.el7.remi                      remi                            23 k
php-symfony-finder                                   noarch                     2.8.36-1.el7.remi                      remi                            39 k
php-symfony-http-foundation                          noarch                     2.8.36-1.el7.remi                      remi                            95 k
php-symfony-http-kernel                              noarch                     2.8.36-1.el7.remi                      remi                           100 k
php-symfony-polyfill                                 noarch                     1.7.0-1.el7.remi                       remi                            26 k
php-symfony-process                                  noarch                     2.8.36-1.el7.remi                      remi                            33 k
php-symfony-var-dumper                               noarch                     2.8.36-1.el7.remi                      remi                            50 k
php-symfony-yaml                                     noarch                     2.8.36-1.el7.remi                      remi                            30 k
php-symfony3-cache                                   noarch                     3.4.6-1.el7.remi                       remi                            45 k
php-symfony3-common                                  noarch                     3.4.6-1.el7.remi                       remi                           115 k
php-symfony3-expression-language                     noarch                     3.4.6-1.el7.remi                       remi                            24 k
php-tcpdf                                            noarch                     6.2.17-1.el7.remi                      remi                           2.1 M
php-tcpdf-dejavu-sans-fonts                          noarch                     6.2.17-1.el7.remi                      remi                           258 k
php-tidy                                             x86_64                     7.2.3-2.el7.remi                       remi-php72                      60 k
recode                                               x86_64                     3.6-38.el7                             base                           718 k

トランザクションの要約
=============================================================================================================================================================
インストール  1 パッケージ (+52 個の依存関係のパッケージ)

総ダウンロード容量: 19 M
インストール容量: 78 M
Downloading packages:
(1/53): dejavu-fonts-common-2.33-6.el7.noarch.rpm                                                                                     |  64 kB  00:00:00    

//中略

(53/53): phpMyAdmin-4.7.9-1.el7.remi.noarch.rpm                                                                                       | 5.1 MB  00:00:13    
-------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                         1.1 MB/s |  19 MB  00:00:17    
Running transaction check
Running transaction test
Transaction test succeeded

//中略

インストール:
 phpMyAdmin.noarch 0:4.7.9-1.el7.remi                                                                                                                      

依存性関連をインストールしました:
 composer.noarch 0:1.6.3-3.el7.remi                                           dejavu-fonts-common.noarch 0:2.33-6.el7                                      
 dejavu-sans-fonts.noarch 0:2.33-6.el7                                        libicu.x86_64 0:50.1.2-15.el7                                                
 libtidy.x86_64 0:5.4.0-1.el7                                                 php-PsrLog.noarch 0:1.0.2-2.el7.remi                                        
 php-composer-ca-bundle.noarch 0:1.1.0-1.el7.remi                             php-composer-semver.noarch 0:1.4.2-2.el7.remi                                
 php-composer-spdx-licenses.noarch 0:1.3.0-1.el7.remi                         php-fedora-autoloader.noarch 0:1.0.0-1.el7.remi                              
 php-gmp.x86_64 0:7.2.3-2.el7.remi                                            php-google-recaptcha.noarch 0:1.1.3-1.el7.remi                              
 php-intl.x86_64 0:7.2.3-2.el7.remi                                           php-jsonlint.noarch 0:1.7.1-1.el7.remi                                      
 php-justinrainbow-json-schema5.noarch 0:5.2.7-1.el7.remi                     php-paragonie-random-compat.noarch 0:2.0.11-1.el7.remi                      
 php-password-compat.noarch 0:1.0.4-1.el7.remi                                php-phpmyadmin-motranslator.noarch 0:4.0-1.el7.remi                          
 php-phpmyadmin-shapefile.noarch 0:2.1-1.el7.remi                             php-phpmyadmin-sql-parser.noarch 0:4.2.4-3.el7.remi                          
 php-phpseclib.noarch 0:2.0.10-1.el7.remi                                     php-psr-cache.noarch 0:1.0.1-3.el7.remi                                      
 php-psr-simple-cache.noarch 0:1.0.0-1.el7.remi                               php-recode.x86_64 0:7.2.3-2.el7.remi                                        
 php-seld-cli-prompt.noarch 0:1.0.3-1.el7.remi                                php-seld-phar-utils.noarch 0:1.0.1-2.el7.remi                                
 php-symfony-browser-kit.noarch 0:2.8.36-1.el7.remi                           php-symfony-class-loader.noarch 0:2.8.36-1.el7.remi                          
 php-symfony-common.noarch 0:2.8.36-1.el7.remi                                php-symfony-config.noarch 0:2.8.36-1.el7.remi                                
 php-symfony-console.noarch 0:2.8.36-1.el7.remi                               php-symfony-css-selector.noarch 0:2.8.36-1.el7.remi                          
 php-symfony-debug.noarch 0:2.8.36-1.el7.remi                                 php-symfony-dependency-injection.noarch 0:2.8.36-1.el7.remi                  
 php-symfony-dom-crawler.noarch 0:2.8.36-1.el7.remi                           php-symfony-event-dispatcher.noarch 0:2.8.36-1.el7.remi                      
 php-symfony-expression-language.noarch 0:2.8.36-1.el7.remi                   php-symfony-filesystem.noarch 0:2.8.36-1.el7.remi                            
 php-symfony-finder.noarch 0:2.8.36-1.el7.remi                                php-symfony-http-foundation.noarch 0:2.8.36-1.el7.remi                      
 php-symfony-http-kernel.noarch 0:2.8.36-1.el7.remi                           php-symfony-polyfill.noarch 0:1.7.0-1.el7.remi                              
 php-symfony-process.noarch 0:2.8.36-1.el7.remi                               php-symfony-var-dumper.noarch 0:2.8.36-1.el7.remi                            
 php-symfony-yaml.noarch 0:2.8.36-1.el7.remi                                  php-symfony3-cache.noarch 0:3.4.6-1.el7.remi                                
 php-symfony3-common.noarch 0:3.4.6-1.el7.remi                                php-symfony3-expression-language.noarch 0:3.4.6-1.el7.remi                  
 php-tcpdf.noarch 0:6.2.17-1.el7.remi                                         php-tcpdf-dejavu-sans-fonts.noarch 0:6.2.17-1.el7.remi                      
 php-tidy.x86_64 0:7.2.3-2.el7.remi                                           recode.x86_64 0:3.6-38.el7                                                  

完了しました!


インストール先確認 / インストールされたphpMyAdminのバージョンを確認

 閲覧数:132 投稿日:2018-03-17 更新日:2018-03-17 

インストール先確認


「/usr/share/phpMyAdmin/」にインストールされていることを確認
$ rpm -ql phpMyAdmin
2018-03-17T12:24:10.561 - /etc/httpd/conf.d/phpMyAdmin.conf
2018-03-17T12:24:10.561 - /etc/phpMyAdmin
2018-03-17T12:24:10.561 - /etc/phpMyAdmin/config.inc.php
2018-03-17T12:24:10.561 - /usr/share/doc/phpMyAdmin-4.7.9
//中略
2018-03-17T12:24:10.561 - /usr/share/licenses/phpMyAdmin-4.7.9/LICENSE-jquery
2018-03-17T12:24:10.561 - /usr/share/phpMyAdmin
2018-03-17T12:24:10.561 - /usr/share/phpMyAdmin/ajax.php
//中略
/usr/share/phpMyAdmin/view_operations.php
/var/lib/phpMyAdmin
/var/lib/phpMyAdmin/config
/var/lib/phpMyAdmin/save
/var/lib/phpMyAdmin/upload


インストールされたphpMyAdminのバージョンを確認


4.7.9
$ yum info phpMyAdmin
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.riken.jp
* extras: ftp.iij.ad.jp
* remi-safe: mirrors.thzhost.com
* updates: ftp.iij.ad.jp
インストール済みパッケージ
名前                : phpMyAdmin
アーキテクチャー    : noarch
バージョン          : 4.7.9
リリース            : 1.el7.remi
容量                : 24 M
リポジトリー        : installed
提供元リポジトリー  : remi
要約                : Web based MySQL browser written in php
URL                 : https://www.phpmyadmin.net/
ライセンス          : GPLv2+ and MIT and BSD
説明                : phpMyAdmin is a tool written in PHP intended to handle the administration of
                   : MySQL over the Web. Currently it can create and drop databases,
                   : create/drop/alter tables, delete/edit/add fields, execute any SQL statement,
                   : manage keys on fields, manage privileges,export data into various formats and
                   : is available in 50 languages


「Apache環境へphpMyAdminを設定しているページ」は、「Nginx環境へphpMyAdminを設置する際」には参考にならない

 閲覧数:140 投稿日:2018-03-17 更新日:2018-03-19 

以下、Nginx環境では不要な処理


$ cd /etc/httpd/conf.d/
$ cp phpMyAdmin.conf  phpMyAdmin.conf.20180317
cp: 通常ファイル `phpMyAdmin.conf.20180317' を作成できません: 許可がありません

$ sudo cp phpMyAdmin.conf  phpMyAdmin.conf.20180317

$ sudo vim phpMyAdmin.conf
  <IfModule mod_authz_core.c>
    # Apache 2.4
    #Require local
    Require all granted                                                                                                                                    
  </IfModule>


$ sudo systemctl restart httpd
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

$ systemctl status httpd.service
● httpd.service - The Apache HTTP Server
  Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Active: failed (Result: exit-code) since 土 2018-03-17 12:44:50 JST; 29s ago
    Docs: man:httpd(8)
          man:apachectl(8)
 Process: 29625 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
 Process: 29623 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 29623 (code=exited, status=1/FAILURE)

3月 17 12:44:50 tk2-215-17487.vs.sakura.ne.jp systemd[1]: Starting The Apache HTTP Server...
3月 17 12:44:50 tk2-215-17487.vs.sakura.ne.jp httpd[29623]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
3月 17 12:44:50 tk2-215-17487.vs.sakura.ne.jp httpd[29623]: no listening sockets available, shutting down
3月 17 12:44:50 tk2-215-17487.vs.sakura.ne.jp httpd[29623]: AH00015: Unable to open logs
3月 17 12:44:50 tk2-215-17487.vs.sakura.ne.jp systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
3月 17 12:44:50 tk2-215-17487.vs.sakura.ne.jp kill[29625]: kill: cannot find process ""
3月 17 12:44:50 tk2-215-17487.vs.sakura.ne.jp systemd[1]: httpd.service: control process exited, code=exited status=1
3月 17 12:44:50 tk2-215-17487.vs.sakura.ne.jp systemd[1]: Failed to start The Apache HTTP Server.
3月 17 12:44:50 tk2-215-17487.vs.sakura.ne.jp systemd[1]: Unit httpd.service entered failed state.
3月 17 12:44:50 tk2-215-17487.vs.sakura.ne.jp systemd[1]: httpd.service failed.


参考にしていたサイトはApache環境だったことが判明
・取り敢えず元の状態へ戻す
$ sudo vim phpMyAdmin.conf
  <IfModule mod_authz_core.c>
    # Apache 2.4
    Require local                                                                                                   
  </IfModule>


Nginx設定追加 → phpMyAdminログイン画面表示

 閲覧数:139 投稿日:2018-03-17 更新日:2018-03-23 

サブドメインでphpMyAdminを表示


$ sudo vim /etc/nginx/conf.d/phpmyadmin.conf
server {
   listen       80;
   server_name phpmyadmin.w4c.work;
   root   html;
   index  index.php index.html index.htm;


  location /phpMyAdmin {
   alias /usr/share/phpMyAdmin/;
   try_files $uri $uri/ /index.php;
   allow 12.345.67.89; #クライアントのIPアドレス
   deny all;

   location ~ ^/phpMyAdmin/(.+\.php)$ {                            
       alias /usr/share/phpMyAdmin;                                
       fastcgi_pass unix:/var/run/php-fpm.sock;
       fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin/$1;     #変更
       include fastcgi_params;
       fastcgi_intercept_errors on;
       #allow 12.345.67.89;
       #deny  all;
   }
}



}


# systemctl restart nginx.service
ブラウザで「phpmyadmin.w4c.work/phpMyAdmin/」へアクセスして確認


NginxでphpMyAdminにアクセスしようとするとFile not foundと返される【CentOS7】

IPアドレスでphpMyAdminを表示したかったが、うまくいかず挫折

 閲覧数:166 投稿日:2018-03-17 更新日:2018-03-17 
現状
$ cat /etc/nginx/conf.d/default.conf  
                                                                                        
server {
   listen       80 default_server;
   server_name  localhost;
   root   /usr/share/nginx/html;
   index index.php index.html index.htm;

   #charset koi8-r;
   #access_log  /var/log/nginx/host.access.log  main;

   location / {
       #root   /usr/share/nginx/html;
       #index  index.html index.htm;
       try_files $uri $uri/ /index.php?$query_string;
   }

   #error_page  404              /404.html;

   # redirect server error pages to the static page /50x.html
   #
   error_page   500 502 503 504  /50x.html;
   location = /50x.html {
       root   /usr/share/nginx/html;
   }

   # proxy the PHP scripts to Apache listening on 127.0.0.1:80
   #
   #location ~ \.php$ {
   #    proxy_pass   http://127.0.0.1;
   #}

   # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
   #
   #location ~ \.php$ {
   #    root           html;
   #    fastcgi_pass   127.0.0.1:9000;
   #    fastcgi_index  index.php;
   #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
   #    include        fastcgi_params;
   #}

   # deny access to .htaccess files, if Apache's document root
   # concurs with nginx's one
   #
   #location ~ /\.ht {
   #    deny  all;
   #}

   location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include fastcgi_params;
   }

}


locationを入れ子にすればいいだけを参考に試すも失敗
$ sudo vi /etc/nginx/conf.d/default.conf
                                                                                       
server {
   listen       80 default_server;
   server_name  localhost;
   root   /usr/share/nginx/html;
   index index.php index.html index.htm;

   #charset koi8-r;
   #access_log  /var/log/nginx/host.access.log  main;

   location / {
       #root   /usr/share/nginx/html;
       #index  index.html index.htm;
       try_files $uri $uri/ /index.php?$query_string;
   }

   #error_page  404              /404.html;

   # redirect server error pages to the static page /50x.html
   #
   error_page   500 502 503 504  /50x.html;
   location = /50x.html {
       root   /usr/share/nginx/html;
   }

   # proxy the PHP scripts to Apache listening on 127.0.0.1:80
   #
   #location ~ \.php$ {
   #    proxy_pass   http://127.0.0.1;
   #}

   # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
   #
   #location ~ \.php$ {
   #    root           html;
   #    fastcgi_pass   127.0.0.1:9000;
   #    fastcgi_index  index.php;
   #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
   #    include        fastcgi_params;
   #}

   # deny access to .htaccess files, if Apache's document root
   # concurs with nginx's one
   #
   #location ~ /\.ht {
   #    deny  all;
   #}

   location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include fastcgi_params;

        location /phpMyAdmin {
             alias /usr/share/phpMyAdmin/;
             try_files $uri $uri/ /index.php;
             allow 12.345.67.89; #クライアントのIPアドレス
             deny all;

             location ~ ^/phpMyAdmin/(.+\.php)$ {                            
                 alias /usr/share/phpMyAdmin;                                
                 fastcgi_pass unix:/var/run/php-fpm.sock;
                 fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin/$1;
                 include fastcgi_params;
                 fastcgi_intercept_errors on;
                 #allow 12.345.67.89;
                 #deny  all;
             }
       }
   }


}


# systemctl restart nginx.service
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

# systemctl status nginx.service      
                                                                                     
● nginx.service - nginx - high performance web server
  Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
  Active: failed (Result: exit-code) since 土 2018-03-17 19:22:47 JST; 29s ago
    Docs: http://nginx.org/en/docs/
 Process: 30626 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS)
 Process: 30238 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
 Process: 30629 ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf (code=exited, status=1/FAILURE)
Main PID: 30240 (code=exited, status=0/SUCCESS)

3月 17 19:22:47 □□.vs.sakura.ne.jp systemd[1]: Starting nginx - high performance web server...
3月 17 19:22:47 □□.vs.sakura.ne.jp nginx[30629]: nginx: [emerg] location "/phpMyAdmin" is outside location "\.php$" in /etc/nginx/conf...conf:56
3月 17 19:22:47 □□.vs.sakura.ne.jp nginx[30629]: nginx: configuration file /etc/nginx/nginx.conf test failed
3月 17 19:22:47 □□.vs.sakura.ne.jp systemd[1]: nginx.service: control process exited, code=exited status=1
3月 17 19:22:47 □□.vs.sakura.ne.jp systemd[1]: Failed to start nginx - high performance web server.
3月 17 19:22:47 □□.vs.sakura.ne.jp systemd[1]: Unit nginx.service entered failed state.
3月 17 19:22:47 □□.vs.sakura.ne.jp systemd[1]: nginx.service failed.
Hint: Some lines were ellipsized, use -l to show in full.


locationの入れ子関係がおかしいみたいだが、どう修正すれば良いか分からない
・下記3つの入れ子関係を理解できていない
・location ~ \.php$ {
・location /phpMyAdmin {
・location ~ ^/phpMyAdmin/(.+\.php)$ {




・モノは試しで、入れ子ではなく、locationを並列表示してみたがやはりダメ
$ sudo vi /etc/nginx/conf.d/default.conf
                                                                                       
server {
   listen       80 default_server;
   server_name  localhost;
   root   /usr/share/nginx/html;
   index index.php index.html index.htm;

   #charset koi8-r;
   #access_log  /var/log/nginx/host.access.log  main;

   location / {
       #root   /usr/share/nginx/html;
       #index  index.html index.htm;
       try_files $uri $uri/ /index.php?$query_string;
   }

   #error_page  404              /404.html;

   # redirect server error pages to the static page /50x.html
   #
   error_page   500 502 503 504  /50x.html;
   location = /50x.html {
       root   /usr/share/nginx/html;
   }

   # proxy the PHP scripts to Apache listening on 127.0.0.1:80
   #
   #location ~ \.php$ {
   #    proxy_pass   http://127.0.0.1;
   #}

   # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
   #
   #location ~ \.php$ {
   #    root           html;
   #    fastcgi_pass   127.0.0.1:9000;
   #    fastcgi_index  index.php;
   #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
   #    include        fastcgi_params;
   #}

   # deny access to .htaccess files, if Apache's document root
   # concurs with nginx's one
   #
   #location ~ /\.ht {
   #    deny  all;
   #}

   location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include fastcgi_params;
   }
        location /phpMyAdmin {
             alias /usr/share/phpMyAdmin/;
             try_files $uri $uri/ /index.php;
             allow 12.345.67.89; #クライアントのIPアドレス
             deny all;

             location ~ ^/phpMyAdmin/(.+\.php)$ {                            
                 alias /usr/share/phpMyAdmin;                                
                 fastcgi_pass unix:/var/run/php-fpm.sock;
                 fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin/$1;
                 include fastcgi_params;
                 fastcgi_intercept_errors on;
                 #allow 12.345.67.89;
                 #deny  all;
             }
       }



}


locationディレクティブ見たらイケそうだけど、うまくいかず
・基本を理解していないため、ここら辺りが限界かも

・結局、元に戻すことにする
$ sudo vi /etc/nginx/conf.d/default.conf

NginxでphpMyAdminを「http://IPアドレス/hoge/」で表示したい

2.phpMyAdminログイン画面表示。セッションエラー対応

 閲覧数:168 投稿日:2018-03-17 更新日:2018-03-23 

phpMyAdmin - Error


phpMyAdmin - Error / Error during session start  / session_start(): Failed to read session data: files (path: /var/lib/php/session)
・セッションデータの読み込みに失敗しました:ファイル(パス:/var/lib/php/session)
phpMyAdmin - Error
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

session_start(): open(SESSION_FILE, O_RDWR) failed: Permission denied (13)

session_start(): Failed to read session data: files (path: /var/lib/php/session)



/var/lib/php/sessionへの権限が無い
・Nginxを動作させるために用意している専用ユーザー「nginx」が、PHPのセッションを管理するファイルへアクセスできない


# cat /etc/php.ini
; RPM note : session directory must be owned by process owner
; for mod_php, see /etc/httpd/conf.d/php.conf
; for php-fpm, see /etc/php-fpm.d/*conf
;session.save_path = "/tmp"


・よくよく確認してみたらsession.save_pathをコメントアウトしているので、下記確認は無意味
# ls -la /tmp          
                                                                                                     
合計 8
drwxrwxrwt. 12 root       root       4096  3月 17 22:05 .
dr-xr-xr-x. 17 root       root       4096 10月 31  2016 ..
drwxrwxrwt   2 root       root          6  3月  8 11:48 .ICE-unix
drwxrwxrwt   2 root       root          6  3月  8 11:48 .Test-unix
drwxrwxrwt   2 root       root          6  3月  8 11:48 .X11-unix
drwxrwxrwt   2 root       root          6  3月  8 11:48 .XIM-unix
drwxrwxrwt   2 root       root          6  3月  8 11:48 .font-unix
drwx------   2 ★★ ★★   24  3月 17 13:24 ssh-F0EXlbxKD2
drwx------   2 ★★ ★★   24  3月 17 12:03 ssh-Mb27lVUZ06
drwx------   2 ★★ ★★   24  3月 17 19:42 ssh-YDb2yRb3t0
drwx------   2 ★★ ★★   24  3月 17 14:01 ssh-fTliTJY20A
drwx------   3 root       root         16  3月 17 14:03 systemd-private-2ecbd4005fe447ae9b499d34d2f94cae-php-fpm.service-MSiXO5


# cat /etc/php-fpm.d/www.conf
php_value[session.save_path]    = /var/lib/php/session


sessionディレクトリの権限確認
・ユーザー:nginxは所有者:root グループ:apacheのどちらにも属していない
・権限が無い為ファイルが作成できない
# ls -la /var/lib/php/session/  
                                                                                             
合計 0
drwxrwx--- 2 root apache  6  3月  2 20:49 .
drwxr-xr-x 5 root root   50  3月 16 13:11


所有者をroot、グループをnginxへ変更
・今回は試していないが「所有者もグループもnginxへ変更」しても良いみたい。所有者rootとの違いは不明
# chown -R root:nginx /var/lib/php/session
# ls -la /var/lib/php/session        
                                                                                       
合計 0
drwxrwx--- 2 root nginx  6  3月  2 20:49 .
drwxr-xr-x 5 root root  50  3月 16 13:11 ..



ブラウザリロード後、「http://phpmyadmin.w4c.work/phpMyAdmin/」へアクセスすると?
ようやく下記メッセージとログイン画面が表示される
phpMyAdmin へようこそ


3.phpMyAdminへログイン

 閲覧数:137 投稿日:2018-03-17 更新日:2018-03-18 

MySQLのrootパスワードを使用してログイン


config.inc.php設定
・この時点ではまだ不要

勘違いしていた
・config.inc.php設定をしなければログイン出来ないのかと思っていた
・実際には、config.inc.php設定を何もしなくてもphpMyAdminへのログインは可能
・但し、設定を適切にしていないため、下記エラーが表示される


4.phpMyAdmin 用データベースの作成 / 5.「データベースを管理する権限を持つDBユーザpma」を作成(失敗している)

 閲覧数:152 投稿日:2018-03-18 更新日:2018-03-18 

「データベースを管理する権限を持つDBユーザpma」を作成する方法


全部で3種類
・1.SQLで作成
・2.create_tables.sqlのコメントアウトを外すことで作成
・3.phpMyAdminのGUI経由で作成

今回は?
・案2を採用

create_tables.sql確認


create_tables.sqlの場所を確認
$ sudo find / -name "create_tables.sql"
/usr/share/phpMyAdmin/sql/create_tables.sql


ファイル内容確認
$ cat /usr/share/phpMyAdmin/sql/create_tables.sql
-- --------------------------------------------------------
-- SQL Commands to set up the pmadb as described in the documentation.
--
-- This file is meant for use with MySQL 5 and above!
--
-- This script expects the user pma to already be existing. If we would put a
-- line here to create him too many users might just use this script and end
-- up with having the same password for the controluser.
--
-- This user "pma" must be defined in config.inc.php (controluser/controlpass)
--
-- Please don't forget to set up the tablenames in config.inc.php
--

-- --------------------------------------------------------

--
-- Database : `phpmyadmin`
--
CREATE DATABASE IF NOT EXISTS `phpmyadmin`
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
USE phpmyadmin;

-- --------------------------------------------------------

--
-- Privileges
--
-- (activate this statement if necessary)
-- GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO
--    'pma'@localhost;

-- --------------------------------------------------------

--
-- Table structure for table `pma__bookmark`
--

CREATE TABLE IF NOT EXISTS `pma__bookmark` (
 `id` int(10) unsigned NOT NULL auto_increment,
 `dbase` varchar(255) NOT NULL default '',
 `user` varchar(255) NOT NULL default '',
 `label` varchar(255) COLLATE utf8_general_ci NOT NULL default '',
 `query` text NOT NULL,
 PRIMARY KEY  (`id`)
)
 COMMENT='Bookmarks'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__column_info`
--

CREATE TABLE IF NOT EXISTS `pma__column_info` (
 `id` int(5) unsigned NOT NULL auto_increment,
 `db_name` varchar(64) NOT NULL default '',
 `table_name` varchar(64) NOT NULL default '',
 `column_name` varchar(64) NOT NULL default '',
 `comment` varchar(255) COLLATE utf8_general_ci NOT NULL default '',
 `mimetype` varchar(255) COLLATE utf8_general_ci NOT NULL default '',
 `transformation` varchar(255) NOT NULL default '',
 `transformation_options` varchar(255) NOT NULL default '',
 `input_transformation` varchar(255) NOT NULL default '',
 `input_transformation_options` varchar(255) NOT NULL default '',
 PRIMARY KEY  (`id`),
 UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
)
 COMMENT='Column information for phpMyAdmin'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__history`
--

CREATE TABLE IF NOT EXISTS `pma__history` (
 `id` bigint(20) unsigned NOT NULL auto_increment,
 `username` varchar(64) NOT NULL default '',
 `db` varchar(64) NOT NULL default '',
 `table` varchar(64) NOT NULL default '',
 `timevalue` timestamp NOT NULL default CURRENT_TIMESTAMP,
 `sqlquery` text NOT NULL,
 PRIMARY KEY  (`id`),
 KEY `username` (`username`,`db`,`table`,`timevalue`)
)
 COMMENT='SQL history for phpMyAdmin'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__pdf_pages`
--

CREATE TABLE IF NOT EXISTS `pma__pdf_pages` (
 `db_name` varchar(64) NOT NULL default '',
 `page_nr` int(10) unsigned NOT NULL auto_increment,
 `page_descr` varchar(50) COLLATE utf8_general_ci NOT NULL default '',
 PRIMARY KEY  (`page_nr`),
 KEY `db_name` (`db_name`)
)
 COMMENT='PDF relation pages for phpMyAdmin'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__recent`
--

CREATE TABLE IF NOT EXISTS `pma__recent` (
 `username` varchar(64) NOT NULL,
 `tables` text NOT NULL,
 PRIMARY KEY (`username`)
)
 COMMENT='Recently accessed tables'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__favorite`
--

CREATE TABLE IF NOT EXISTS `pma__favorite` (
 `username` varchar(64) NOT NULL,
 `tables` text NOT NULL,
 PRIMARY KEY (`username`)
)
 COMMENT='Favorite tables'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__table_uiprefs`
--

CREATE TABLE IF NOT EXISTS `pma__table_uiprefs` (
 `username` varchar(64) NOT NULL,
 `db_name` varchar(64) NOT NULL,
 `table_name` varchar(64) NOT NULL,
 `prefs` text NOT NULL,
 `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (`username`,`db_name`,`table_name`)
)
 COMMENT='Tables'' UI preferences'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__relation`
--

CREATE TABLE IF NOT EXISTS `pma__relation` (
 `master_db` varchar(64) NOT NULL default '',
 `master_table` varchar(64) NOT NULL default '',
 `master_field` varchar(64) NOT NULL default '',
 `foreign_db` varchar(64) NOT NULL default '',
 `foreign_table` varchar(64) NOT NULL default '',
 `foreign_field` varchar(64) NOT NULL default '',
 PRIMARY KEY  (`master_db`,`master_table`,`master_field`),
 KEY `foreign_field` (`foreign_db`,`foreign_table`)
)
 COMMENT='Relation table'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__table_coords`
--

CREATE TABLE IF NOT EXISTS `pma__table_coords` (
 `db_name` varchar(64) NOT NULL default '',
 `table_name` varchar(64) NOT NULL default '',
 `pdf_page_number` int(11) NOT NULL default '0',
 `x` float unsigned NOT NULL default '0',
 `y` float unsigned NOT NULL default '0',
 PRIMARY KEY  (`db_name`,`table_name`,`pdf_page_number`)
)
 COMMENT='Table coordinates for phpMyAdmin PDF output'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__table_info`
--

CREATE TABLE IF NOT EXISTS `pma__table_info` (
 `db_name` varchar(64) NOT NULL default '',
 `table_name` varchar(64) NOT NULL default '',
 `display_field` varchar(64) NOT NULL default '',
 PRIMARY KEY  (`db_name`,`table_name`)
)
 COMMENT='Table information for phpMyAdmin'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__tracking`
--

CREATE TABLE IF NOT EXISTS `pma__tracking` (
 `db_name` varchar(64) NOT NULL,
 `table_name` varchar(64) NOT NULL,
 `version` int(10) unsigned NOT NULL,
 `date_created` datetime NOT NULL,
 `date_updated` datetime NOT NULL,
 `schema_snapshot` text NOT NULL,
 `schema_sql` text,
 `data_sql` longtext,
 `tracking` set('UPDATE','REPLACE','INSERT','DELETE','TRUNCATE','CREATE DATABASE','ALTER DATABASE','DROP DATABASE','CREATE TABLE','ALTER TABLE','RENAME TABLE','DROP TABLE','CREATE INDEX','DROP INDEX','CREATE VIEW','ALTER VIEW','DROP VIEW') default NULL,
 `tracking_active` int(1) unsigned NOT NULL default '1',
 PRIMARY KEY  (`db_name`,`table_name`,`version`)
)
 COMMENT='Database changes tracking for phpMyAdmin'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__userconfig`
--

CREATE TABLE IF NOT EXISTS `pma__userconfig` (
 `username` varchar(64) NOT NULL,
 `timevalue` timestamp NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 `config_data` text NOT NULL,
 PRIMARY KEY  (`username`)
)
 COMMENT='User preferences storage for phpMyAdmin'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__users`
--

CREATE TABLE IF NOT EXISTS `pma__users` (
 `username` varchar(64) NOT NULL,
 `usergroup` varchar(64) NOT NULL,
 PRIMARY KEY (`username`,`usergroup`)
)
 COMMENT='Users and their assignments to user groups'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__usergroups`
--

CREATE TABLE IF NOT EXISTS `pma__usergroups` (
 `usergroup` varchar(64) NOT NULL,
 `tab` varchar(64) NOT NULL,
 `allowed` enum('Y','N') NOT NULL DEFAULT 'N',
 PRIMARY KEY (`usergroup`,`tab`,`allowed`)
)
 COMMENT='User groups with configured menu items'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__navigationhiding`
--

CREATE TABLE IF NOT EXISTS `pma__navigationhiding` (
 `username` varchar(64) NOT NULL,
 `item_name` varchar(64) NOT NULL,
 `item_type` varchar(64) NOT NULL,
 `db_name` varchar(64) NOT NULL,
 `table_name` varchar(64) NOT NULL,
 PRIMARY KEY (`username`,`item_name`,`item_type`,`db_name`,`table_name`)
)
 COMMENT='Hidden items of navigation tree'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__savedsearches`
--

CREATE TABLE IF NOT EXISTS `pma__savedsearches` (
 `id` int(5) unsigned NOT NULL auto_increment,
 `username` varchar(64) NOT NULL default '',
 `db_name` varchar(64) NOT NULL default '',
 `search_name` varchar(64) NOT NULL default '',
 `search_data` text NOT NULL,
 PRIMARY KEY  (`id`),
 UNIQUE KEY `u_savedsearches_username_dbname` (`username`,`db_name`,`search_name`)
)
 COMMENT='Saved searches'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__central_columns`
--

CREATE TABLE IF NOT EXISTS `pma__central_columns` (
 `db_name` varchar(64) NOT NULL,
 `col_name` varchar(64) NOT NULL,
 `col_type` varchar(64) NOT NULL,
 `col_length` text,
 `col_collation` varchar(64) NOT NULL,
 `col_isNull` boolean NOT NULL,
 `col_extra` varchar(255) default '',
 `col_default` text,
 PRIMARY KEY (`db_name`,`col_name`)
)
 COMMENT='Central list of columns'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__designer_settings`
--

CREATE TABLE IF NOT EXISTS `pma__designer_settings` (
 `username` varchar(64) NOT NULL,
 `settings_data` text NOT NULL,
 PRIMARY KEY (`username`)
)
 COMMENT='Settings related to Designer'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

-- --------------------------------------------------------

--
-- Table structure for table `pma__export_templates`
--

CREATE TABLE IF NOT EXISTS `pma__export_templates` (
 `id` int(5) unsigned NOT NULL AUTO_INCREMENT,
 `username` varchar(64) NOT NULL,
 `export_type` varchar(10) NOT NULL,
 `template_name` varchar(64) NOT NULL,
 `template_data` text NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `u_user_type_template` (`username`,`export_type`,`template_name`)
)
 COMMENT='Saved export templates'
 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;


「データベースを管理する権限を持つDBユーザpma」を「create_tables.sql」で作成するため、下記コメントアウトを外す
-- GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO
--    'pma'@localhost;


create_tables.sql修正(コメントアウトを外す)


$ sudo vi /usr/share/phpMyAdmin/sql/create_tables.sql
GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO
   'pma'@localhost;


create_tables.sql実行


MySQL起動
$ mysql -u  root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 29
Server version: 5.7.21 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

コマンド実行
mysql> source /usr/share/phpMyAdmin/sql/create_tables.sql
Query OK, 1 row affected (0.01 sec)

Database changed
ERROR 1133 (42000): Can't find any matching row in the user table
Query OK, 0 rows affected (0.04 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.05 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.09 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

Query OK, 0 rows affected (0.07 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.08 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.08 sec)

Query OK, 0 rows affected (0.01 sec)

mysql>


確認


phpmyadminデータベースが作成されたことを確認
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
| sys                |
+--------------------+
5 rows in set (0.00 sec)


権限に関するテーブルを再読込
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.18 sec)


ブラウザ経由でphpMyAdminへアクセスすると「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。 代わりにデータベースの操作タブを使って設定することもできます。」エラーが表示されなくなる
・ちょっと意外
・まだ、config.inc設定も変更していないのに
・まあでも、エラーが表示されなくなったのなら、表示されないに越したことはない
・残るエラー表示は下記2つ
設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。

 You are using an incomplete translation, please help to make it better by contributing.


念のためにpmaユーザの権限確認しようとしたら問題発生


> SHOW GRANTS for 'pma'@'%';    
                                                                                                                 
ERROR 1141 (42000): There is no such grant defined for user 'pma' on host '%'

mysql> SHOW GRANTS FOR pma                                                                                                                                  
   -> ;
ERROR 1141 (42000): There is no such grant defined for user 'pma' on host '%'
mysql> SELECT Host, User FROM mysql.user;
+-----------+---------------+
| Host      | User          |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
3 rows in set (0.00 sec)


mysql> SET PASSWORD FOR pma@localhost = PASSWORD('パスワード');
ERROR 1133 (42000): Can't find any matching row in the user table


"create_tables.sql"のコメントアウト外しがうまくいっていないのかと思い、SQLをphpMyAdminのGUIから直接打つも効果なし
GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost
MySQL のメッセージ: ドキュメント

#1133 - ユーザーテーブルに該当するレコードが見つかりません。


どうやらconfig.inc.php設定が必要みたい
・もしかして、config.inc.php設定後、"create_tables.sql"しなければいけなかったの?
・改めて確認してみると、"create_tables.sql"した際「ERROR 1133 (42000): Can't find any matching row in the user table」エラーが表示されている
・うきゃー

6.config.inc.php修正

 閲覧数:151 投稿日:2018-03-18 更新日:2018-03-18 
config.sample.inc.phpが見つからない
# ls -la /usr/share/phpMyAdmin/
合計 600
drwxr-xr-x   11 root root  4096  3月 17 12:11 .
drwxr-xr-x. 111 root root  4096  3月 17 12:11 ..
-rw-r--r--    1 root root   913  3月  6 00:37 ajax.php
-rw-r--r--    1 root root  1523  3月  6 00:37 browse_foreigners.php
-rw-r--r--    1 root root  5109  3月  6 00:37 changelog.php
-rw-r--r--    1 root root   772  3月  6 00:37 chk_rel.php
-rw-r--r--    1 root root  5370  3月  6 00:37 db_central_columns.php
-rw-r--r--    1 root root  5825  3月  6 00:37 db_datadict.php
-rw-r--r--    1 root root  5862  3月  6 00:37 db_designer.php
-rw-r--r--    1 root root   356  3月  6 00:37 db_events.php
-rw-r--r--    1 root root  4993  3月  6 00:37 db_export.php
-rw-r--r--    1 root root  1047  3月  6 00:37 db_import.php
-rw-r--r--    1 root root 10619  3月  6 00:37 db_operations.php
-rw-r--r--    1 root root  4422  3月  6 00:37 db_qbe.php
-rw-r--r--    1 root root   416  3月  6 00:37 db_routines.php
-rw-r--r--    1 root root  2069  3月  6 00:37 db_search.php
-rw-r--r--    1 root root  1107  3月  6 00:37 db_sql.php
-rw-r--r--    1 root root   749  3月  6 00:37 db_sql_autocomplete.php
-rw-r--r--    1 root root   488  3月  6 00:37 db_sql_format.php
-rw-r--r--    1 root root  1075  3月  6 00:37 db_structure.php
-rw-r--r--    1 root root  4442  3月  6 00:37 db_tracking.php
-rw-r--r--    1 root root   360  3月  6 00:37 db_triggers.php
drwxr-xr-x    2 root root    17  3月 17 12:11 doc
-rw-r--r--    1 root root  4541  3月  6 00:37 error_report.php
-rw-r--r--    1 root root 15637  3月  6 00:37 export.php
-rw-r--r--    1 root root 22486  3月  6 00:37 favicon.ico
-rw-r--r--    1 root root 15852  3月  6 00:37 gis_data_editor.php
-rw-r--r--    1 root root 23851  3月  6 00:37 import.php
-rw-r--r--    1 root root  3396  3月  6 00:37 import_status.php
-rw-r--r--    1 root root 19757  3月  6 00:37 index.php
drwxr-xr-x    9 root root  4096  3月 17 12:11 js
drwxr-xr-x   12 root root  8192  3月 17 12:11 libraries
-rw-r--r--    1 root root   897  3月  6 00:37 license.php
-rw-r--r--    1 root root  1412  3月  6 00:37 lint.php
drwxr-xr-x   44 root root  4096  3月 17 12:11 locale
-rw-r--r--    1 root root   287  3月  6 00:37 logout.php
-rw-r--r--    1 root root  2193  3月  6 00:37 navigation.php
-rw-r--r--    1 root root  4032  3月  6 00:37 normalization.php
-rw-r--r--    1 root root   510  3月  6 00:37 phpinfo.php
-rw-r--r--    1 root root   746  3月  6 00:37 phpmyadmin.css.php
-rw-r--r--    1 root root  2762  3月  6 00:37 prefs_forms.php
-rw-r--r--    1 root root 15245  3月  6 00:37 prefs_manage.php
-rw-r--r--    1 root root  1213  3月  6 00:37 print.css
-rw-r--r--    1 root root  1675  3月  6 00:37 schema_export.php
-rw-r--r--    1 root root   804  3月  6 00:37 server_binlog.php
-rw-r--r--    1 root root   837  3月  6 00:37 server_collations.php
-rw-r--r--    1 root root   817  3月  6 00:37 server_databases.php
-rw-r--r--    1 root root   803  3月  6 00:37 server_engines.php
-rw-r--r--    1 root root  1233  3月  6 00:37 server_export.php
-rw-r--r--    1 root root   779  3月  6 00:37 server_import.php
-rw-r--r--    1 root root   808  3月  6 00:37 server_plugins.php
-rw-r--r--    1 root root 13883  3月  6 00:37 server_privileges.php
-rw-r--r--    1 root root  2236  3月  6 00:37 server_replication.php
-rw-r--r--    1 root root   847  3月  6 00:37 server_sql.php
-rw-r--r--    1 root root   995  3月  6 00:37 server_status.php
-rw-r--r--    1 root root   954  3月  6 00:37 server_status_advisor.php
-rw-r--r--    1 root root  2954  3月  6 00:37 server_status_monitor.php
-rw-r--r--    1 root root  1950  3月  6 00:37 server_status_processes.php
-rw-r--r--    1 root root  1397  3月  6 00:37 server_status_queries.php
-rw-r--r--    1 root root  1630  3月  6 00:37 server_status_variables.php
-rw-r--r--    1 root root  1847  3月  6 00:37 server_user_groups.php
-rw-r--r--    1 root root   817  3月  6 00:37 server_variables.php
drwxr-xr-x    4 root root   129  3月 17 12:11 setup
-rw-r--r--    1 root root  1040  3月  6 00:37 show_config_errors.php
drwxr-xr-x    2 root root   137  3月 17 12:11 sql
-rw-r--r--    1 root root  6319  3月  6 00:37 sql.php
-rw-r--r--    1 root root  3911  3月  6 00:37 tbl_addfield.php
-rw-r--r--    1 root root  6531  3月  6 00:37 tbl_change.php
-rw-r--r--    1 root root   990  3月  6 00:37 tbl_chart.php
-rw-r--r--    1 root root  3194  3月  6 00:37 tbl_create.php
-rw-r--r--    1 root root  4482  3月  6 00:37 tbl_export.php
-rw-r--r--    1 root root  1048  3月  6 00:37 tbl_find_replace.php
-rw-r--r--    1 root root  1421  3月  6 00:37 tbl_get_field.php
-rw-r--r--    1 root root  1255  3月  6 00:37 tbl_gis_visualization.php
-rw-r--r--    1 root root   873  3月  6 00:37 tbl_import.php
-rw-r--r--    1 root root  1437  3月  6 00:37 tbl_indexes.php
-rw-r--r--    1 root root 13627  3月  6 00:37 tbl_operations.php
-rw-r--r--    1 root root   455  3月  6 00:37 tbl_recent_favorite.php
-rw-r--r--    1 root root  2368  3月  6 00:37 tbl_relation.php
-rw-r--r--    1 root root 16512  3月  6 00:37 tbl_replace.php
-rw-r--r--    1 root root  5054  3月  6 00:37 tbl_row_action.php
-rw-r--r--    1 root root  1179  3月  6 00:37 tbl_select.php
-rw-r--r--    1 root root  1284  3月  6 00:37 tbl_sql.php
-rw-r--r--    1 root root  1666  3月  6 00:37 tbl_structure.php
-rw-r--r--    1 root root  5896  3月  6 00:37 tbl_tracking.php
-rw-r--r--    1 root root   141  3月  6 00:37 tbl_triggers.php
-rw-r--r--    1 root root  1098  3月  6 00:37 tbl_zoom_select.php
drwxr-xr-x   15 root root  4096  3月 17 12:11 templates
drwxr-xr-x    4 root root    73  3月 17 12:11 themes
-rw-r--r--    1 root root   938  3月  6 00:37 themes.php
-rw-r--r--    1 root root  1920  3月  6 00:37 transformation_overview.php
-rw-r--r--    1 root root  4499  3月  6 00:37 transformation_wrapper.php
-rw-r--r--    1 root root  1294  3月  6 00:37 url.php
-rw-r--r--    1 root root  9243  3月  6 00:37 user_password.php
drwxr-xr-x    2 root root    25  3月 17 12:11 vendor
-rw-r--r--    1 root root  1091  3月  6 00:37 version_check.php
-rw-r--r--    1 root root  9563  3月  6 00:37 view_create.php
-rw-r--r--    1 root root  4008  3月  6 00:37 view_operations.php


過去のエントリーを参考に探す
・以前は、「/usr/share/phpMyAdmin/config.sample.inc.php」を「/etc/phpMyAdmin/」へコピーして使用していた
・現在は、「/usr/share/phpMyAdmin/config.sample.inc.php」がなく、「/etc/phpMyAdmin/」は最初から用意されている
# ls -la /etc/phpMyAdmin/  
                                                                                                 
合計 20
drwxr-x---   2 root apache   27  3月 17 12:11 .
drwxr-xr-x. 98 root root   8192  3月 17 12:11 ..
-rw-r-----   1 root apache 4598  3月 17 12:11 config.inc.php


$ sudo -s
# cd /etc/phpMyAdmin
                                                                                                       
# pwd
/etc/phpMyAdmin

# ls -la  
                                                                                                                   
合計 20
drwxr-x---   2 root apache   27  3月 17 12:11 .
drwxr-xr-x. 98 root root   8192  3月 17 12:11 ..
-rw-r-----   1 root apache 4598  3月 17 12:11 config.inc.php

# cp -p config.inc.php config.inc.php.20180318    
                                                                           
# ls -la            
                                                                                               
合計 28
drwxr-x---   2 root apache   57  3月 18 22:00 .
drwxr-xr-x. 98 root root   8192  3月 17 12:11 ..
-rw-r-----   1 root apache 4598  3月 17 12:11 config.inc.php
-rw-r-----   1 root apache 4598  3月 17 12:11 config.inc.php.20180318



気になる点
・config.inc.phpはapacheグループに所属しているけれども、nginxでなくてもOKなの?

現状確認
# cat /etc/phpMyAdmin/config.inc.php
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* phpMyAdmin sample configuration, you can use it as base for
* manual configuration. For easier setup you can use setup/
*
* All directives are explained in documentation in the doc/ folder
* or at <https://docs.phpmyadmin.net/>.
*
* @package PhpMyAdmin
*/

/**
* This is needed for cookie based authentication to encrypt password in
* cookie. Needs to be 32 chars long.
*/
$cfg['blowfish_secret'] = '1c5533e24180777c23e8768871b210fc'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

/**
* Servers configuration
*/
$i = 0;

/**
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;

/**
* phpMyAdmin configuration storage settings.
*/

/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';

/* 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]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $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';

/**
* End of servers configuration
*/

/**
* Directories for saving/loading files from server
*/
$cfg['UploadDir'] = '/var/lib/phpMyAdmin/upload';
$cfg['SaveDir'] = '/var/lib/phpMyAdmin/save';

/**
* Whether to display icons or text or both icons and text in table row
* action segment. Value can be either of 'icons', 'text' or 'both'.
* default = 'both'
*/
//$cfg['RowActionType'] = 'icons';

/**
* Defines whether a user should be displayed a "show all (records)"
* button in browse mode or not.
* default = false
*/
//$cfg['ShowAll'] = true;

/**
* Number of rows displayed when browsing a result set. If the result
* set contains more rows, "Previous" and "Next".


コメントアウトを外す
・パスワードを変更
※今にして思えば、ユーザ名もpmaから変更した方が良かったかもしれない
# vi /etc/phpMyAdmin/config.inc.php

/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = '';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'パスワード';

/* 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]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$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';


config.inc.php修正したが、反映方法が不明 / 迷走開始

 閲覧数:193 投稿日:2018-03-18 更新日:2018-03-20 

config.inc.php修正したが、反映方法が不明


下記を試す
・何も変化なし
mysql> FLUSH PRIVILEGES;

考えられる選択肢は2つ
・"create_tables.sql"を再度実行
・”GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost”

GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost
MySQL のメッセージ: ドキュメント

#1133 - ユーザーテーブルに該当するレコードが見つかりません。


下記を試すも変化なし
mysql> FLUSH PRIVILEGES;

再度実行するも、同じ箇所でエラー発生
mysql> source /usr/share/phpMyAdmin/sql/create_tables.sql
Query OK, 1 row affected, 1 warning (0.00 sec)

Database changed
ERROR 1133 (42000): Can't find any matching row in the user table
Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.01 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)


グループをapacheからnginxへ変更
・この処理必要かどうか不明
→ 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」エラー対策として必要。但し、権限変更対象は「config.inc.php」そのものではなく、「config.inc.phpを格納しているphpMyAdminディレクトリ」
# chown -R root:nginx /etc/phpMyAdmin/config.inc.php
# ls -la /etc/phpMyAdmin/config.inc.php
-rw-r----- 1 root nginx 4554  3月 18 22:08 /etc/phpMyAdmin/config.inc.php

# ls -la /etc/phpMyAdmin          
                                                                                         
合計 28
drwxr-x---   2 root apache   57  3月 18 22:08 .
drwxr-xr-x. 98 root root   8192  3月 17 12:11 ..
-rw-r-----   1 root nginx  4554  3月 18 22:08 config.inc.php
-rw-r-----   1 root apache 4598  3月 17 12:11 config.inc.php.20180318


迷走開始


メモを取る余裕がなかったため、以下が時系列かどうか確信は持てない
mysql> FLUSH PRIVILEGES;          
                                                                                                                         
Query OK, 0 rows affected (0.00 sec)


mysql> GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost
   -> ;
                                                                                                                                                   
ERROR 1133 (42000): Can't find any matching row in the user table

mysql> GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost by 'パスワード';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by 'パスワード'' at line 1

mysql> USE phpmyadmin;
Database changed

mysql> GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost;
ERROR 1133 (42000): Can't find any matching row in the user table

mysql> GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost by 'パスワード';
                                                 
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by 'パスワード'' at line 1


SQL成功


mysql> GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost IDENTIFIED BY "パスワード";
Query OK, 0 rows affected, 1 warning (0.01 sec)


Can't find any matching row in the user table


確かにユーザテーブルにはpmaユーザは存在しない
・だから作成しようとしているのに!
mysqlでのgrantの実行

パスワードをちゃんと入力すれば良い
・気付くか! そんなもん

現在も理解できていない点 / いややっぱり分かったかも

 閲覧数:128 投稿日:2018-03-18 更新日:2018-03-19 

現在も理解できていない点


create_tables.sql
・デフォルトではコメントアウト
GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost;

参考にしたサイト
GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost;
SET PASSWORD FOR pma@localhost = PASSWORD('⦅pmaのパスワード⦆');

最終的にうまくいったSQL
mysql> GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO 'pma'@localhost IDENTIFIED BY "パスワード";

推測


実行順序に左右される
・「IDENTIFIED BY "パスワード"」が必要かどうかは、恐らく実行順序に影響される
・どの手順が正しいかは分からない

いややっぱり分かったかも


案A.「データベースを管理する権限を持つDBユーザpma」を、create_tables.sqlのコメントアウトを外すことで作成
・1."create_tables.sql"で`phpmyadmin`データベース作成
・2."create_tables.sql"で`pma`DBユーザ作成
・3.SQLで`pma`DBユーザのパスワード設定
例1.
例2.パスワード設定していない?

案B.「データベースを管理する権限を持つDBユーザpma」を、後からSQLで作成
・1."create_tables.sql"で`phpmyadmin`データベース作成
・2.SQL(IDENTIFIED BY 'パスワード')で`pma`DBユーザ作成
例1
例2
例3


案B2.順番は「案B」と同じだが、SQLをphpMyAdminのGUI経由で実行している点が異なる
例1
例2

「rootに代わるDBユーザ」の「権限」と「DBユーザ名」等の検討

 閲覧数:133 投稿日:2018-03-18 更新日:2018-03-20 

pmaでログインしてみる


成功

pma → 新ユーザ名


rootに代わるユーザ名として、考えなしにpmaを選択したが、変更することにする
・pmaでphpMyAdminへログイン後、GUIから変更しようとしたが、出来ないことに気が付く
・CRUDに限定して権限発行しているため
・ユーザタブ自体が表示されていない
・「pma DBユーザ」にCRUD権限しか付与されていないのだから、phpMyAdminで、ユーザに関するSQLコマンドを直打ちしてもダメ(なハズ。試してないけど)

rootログイン禁止
・phpMyAdminで「rootログイン禁止」したら、誰かに全権限付与しなければユーザ操作等が出来なくなくなる。どうして「pma DBユーザ」に対してCRUDに限定して権限発行しているのだろう? と疑問に思ったが分かったよ
・レイヤーが異なる話だから
・phpMyAdminの「rootログイン禁止」は、rootユーザが、phpMyAdminへログイン出来なくなる処理
・「pma DBユーザ」へCRUD権限のみ付与している場合、「root DBユーザ」がCRUD以外の処理をためには、phpMyAdmin経由ではなくMySQLへ直接ログインして操作すれば良いだけ

今後の方針
・CRUD以外の処理をphpMyAdminで行う機会は多いため、rootユーザ以外に対する全権限発行を行う
・pmaユーザ名は変更
・phpMyAdminへの「rootログインは禁止」する

「pmaに代わるDBユーザ名」の検討
・最強セキュリティにしようと思っていたが、頻繁に利用するため、あまり複雑過ぎるのも困る
・user情報を格納している「mysql database」をdumpする際、ユーザ名が重複していたらどうなるか分からない

困っている点
・rootに代わる全権限を発行するユーザを一人に限定したいが、既存DBで乱発しているんだよね。分かっていなかったので
・セキュリティ強化した全権限ユーザを新たに一人作成しても、既存の緩い全権限DBユーザの脆弱性を突かれたら終わり
・既存の緩い全権限DBユーザの権限剥奪することが最も理にかなっているが、動かないアプリとかありそう
・どうしよう?
・いや、「既存の緩い全権限DBユーザの権限」をCRUDへ変更すれば、動かないアプリは出ないはず
・しかし、変更の仕方が分からない
・それ以前に、「既存の緩い全権限DBユーザ」が何人いるか分からない
・多分、かなりの数に上る気がする

「pmaに代わるDBユーザ名」の決定
・頻繁に使用するため、既存と同じ「DBユーザ名」を継続使用
・パスワードを若干強化しようかと思ったが、パスワード変更すると動作しなくなるアプリが出てくるため、継続使用
・今にして思えば、「rootに代わる全権限DBユーザ」はアプリで使用せず、この業務に特化させた方が良かったわ

「pmaに代わるDBユーザ名」の最終決定
・再度方針変更
・「rootに代わる全権限DBユーザ」を新規作成
・セキュリティ対策を施した名前にしようと思ったが、頻繁に使用するため、簡易な名前を採用(セキュリティはパスワードで)
・パスワードを若干強化(小文字、大文字、記号、文字数)
・「既存の緩い全権限DBユーザの権限」については、(将来的に気が向いたら)時間がある時にCRUDへ変更できるか挑戦


phpMyAdminで、pmaユーザには全ての特権を付与したほうが良い?

pma → □□

 閲覧数:142 投稿日:2018-03-19 更新日:2018-03-19 
$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 297
Server version: 5.7.21 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


mysql> SELECT Host, User FROM mysql.user;
+-----------+---------------+
| Host      | User          |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | pma           |
| localhost | root          |
+-----------+---------------+
4 rows in set (0.00 sec)


mysql> show grants for 'pma'@'localhost';
+------------------------------------------------------------------------------------+
| Grants for pma@localhost                                                           |
+------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'pma'@'localhost'                                            |
| GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON `phpmyadmin`.* TO 'pma'@'localhost' |
+------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)



rootでphpMyAdminへログイン
・GUIで、'pma'DBユーザ削除
・SQL文を確認したかったが、ナゼか出来なかった

mysql> SELECT Host, User FROM mysql.user;    
                                                                                                             
+-----------+---------------+
| Host      | User          |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
3 rows in set (0.00 sec)


mysql> show grants for 'pma'@'localhost';
ERROR 1141 (42000): There is no such grant defined for user 'pma' on host 'localhost'


pmaでphpMyAdminへログイン
・出来るわけがない
・これでOK
mysqli_real_connect(): (HY000/1045): Access denied for user 'pma'@'localhost' (using password: YES)


mysql> GRANT ALL PRIVILEGES ON phpmyadmin.* TO □□@localhost IDENTIFIED BY 'パスワード';
Query OK, 0 rows affected, 1 warning (0.00 sec)


mysql> SELECT Host, User FROM mysql.user;      
                                                                                                             
+-----------+---------------+
| Host      | User          |
+-----------+---------------+
| localhost | □□           |
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
4 rows in set (0.00 sec)


mysql> show grants for '□□'@'localhost';  
                                                                                                             
+-------------------------------------------------------------+
| Grants for □□@localhost                                    |
+-------------------------------------------------------------+
| GRANT USAGE ON *.* TO '□□'@'localhost'                     |
| GRANT ALL PRIVILEGES ON `phpmyadmin`.* TO '□□'@'localhost' |
+-------------------------------------------------------------+
2 rows in set (0.00 sec)


下記必要かどうか不明
mysql> FLUSH PRIVILEGES;  
Query OK, 0 rows affected (0.00 sec)


□□でphpMyAdminへログイン
・出来ない
・config.inc.phpを変更していないからね
mysqli_real_connect(): (HY000/1045): Access denied for user '□□'@'localhost' (using password: YES)


念のため、MySQLでもログイン確認
$ mysql -u □□ -p
Enter password: 
ERROR 1045 (28000): Access denied for user '□□'@'localhost' (using password: YES)

・なんでやねん!
・phpmyadminデータベースに限定して、権限発行しているから??

$ sudo vi /etc/phpMyAdmin/config.inc.php
$cfg['Servers'][$i]['controluser'] = '□□'; 


□□でphpMyAdminへログイン
・なんでやねん!!!
mysqli_real_connect(): (HY000/1045): Access denied for user '□□'@'localhost' (using password: YES)


原因と思われることを発見
・「GRANT ALL PRIVILEGES ON phpmyadmin.* TO □□@localhost IDENTIFIED BY 'パスワード';」した際のパスワードを間違えていた
・これってどうやって修正するの?

パスワードを変更する
mysql> SET PASSWORD FOR □□@localhost=password('パスワード');
Query OK, 0 rows affected, 1 warning (0.00 sec)


□□でphpMyAdminへログイン
・出来た!

ログイン出来るやん!
$ mysql -u □□ -p  
                                                                                                             
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 415
Server version: 5.7.21 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


新たな疑問発生

 閲覧数:128 投稿日:2018-03-19 更新日:2018-03-19 

疑問


□□でphpMyAdminへログインすると、「User accounts」タブが表示されない

phpmyadmiデータベースだけにアクセス出来るよう作成している
mysql> GRANT ALL PRIVILEGES ON phpmyadmin.* TO □□@localhost IDENTIFIED BY 'パスワード';

権限付与。相違点


1.データベースを管理する権限を持つユーザーを作成
・phpMyAdminへログインすると、「User accounts」タブが表示されない
mysql> GRANT ALL PRIVILEGES ON phpmyadmin.* TO ユーザー名@localhost IDENTIFIED BY 'パスワード';

2.root の代わりに全ての実行権を持つユーザーを作成
・phpMyAdminへログインすると、「User accounts」タブが表示される
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザー名@localhost IDENTIFIED BY 'パスワード'

1.を実行したが、2へ変更したい
・変更方法が不明
・2を実行してみる。上書きできることを期待して

方針


マジか、と思ったが、最新結果を反映していないコンソールだった
mysql> GRANT ALL PRIVILEGES ON *.* TO □□@localhost IDENTIFIED BY 'パスワード';
ERROR 1045 (28000): Access denied for user '□□'@'localhost' (using password: YES)


直近作業中のコンソールへ切り替え
mysql> GRANT ALL PRIVILEGES ON *.* TO □□@localhost IDENTIFIED BY 'パスワード';  
Query OK, 0 rows affected, 1 warning (0.01 sec)


上書きではなく、追加されていく仕様みたい
mysql> show grants for '□□'@'localhost';
+-------------------------------------------------------------+
| Grants for □□@localhost                                    |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO '□□'@'localhost'            |
| GRANT ALL PRIVILEGES ON `phpmyadmin`.* TO '□□'@'localhost' |
+-------------------------------------------------------------+
2 rows in set (0.00 sec)


mysql> FLUSH PRIVILEGES;    
                                                                                                                               
Query OK, 0 rows affected (0.00 sec)


mysql> show grants for '□□'@'localhost';      
                                                                                                             
+-------------------------------------------------------------+
| Grants for □□@localhost                                    |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO '□□'@'localhost'            |
| GRANT ALL PRIVILEGES ON `phpmyadmin`.* TO '□□'@'localhost' |
+-------------------------------------------------------------+
2 rows in set (0.00 sec)



権限の削除



REVOKE ALL PRIVILEGES ON データベース名.テーブル名 FROM ユーザ名@ホスト名;

mysql> REVOKE ALL PRIVILEGES ON `phpmyadmin` FROM □□@localhost;
ERROR 1046 (3D000): No database selected

mysql> REVOKE ALL PRIVILEGES ON `phpmyadmin`.* FROM □□@localhost;
Query OK, 0 rows affected (0.00 sec)


mysql> show grants for '□□'@'localhost';    
                                                                                                               
+--------------------------------------------------+
| Grants for □□@localhost                         |
+--------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO '□□'@'localhost' |
+--------------------------------------------------+
1 row in set (0.00 sec)


□□でphpMyAdminへログインすると、「User accounts」タブが表示される


感想
・あーしんど
・全然前へ進まない!!!!!!

「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応

 閲覧数:1,262 投稿日:2018-03-19 更新日:2018-03-19 

変更箇所は一箇所


config.inc.phpを格納しているディレクトリ「phpMyAdmin」のグループ権限を、apacheからnginxへ変更するだけ
$ sudo chown -R root:nginx /etc/phpMyAdmin

$cfg['blowfish_secret']
・デフォルトで32文字列が格納されている
・デフォルト文字列ではダメなのかと思い変更するも、関係なし
・config.inc.phpを格納しているディレクトリの権限が適切ではないと、いくら$cfg['blowfish_secret']を入力しても、エラーメッセージは出続ける

今回は試していない
パスワード自動生成 (Automated Password Generator)
・デフォルトの文字列がランダムで生成されるのであればそのまま使用すれば良いと思う
・本当にランダムで生成される、かどうかは未確認

以下、迷走履歴


$cfg['blowfish_secret']を、デフォルトから変更
→ エラーメッセージは消えない
$ sudo vi /etc/phpMyAdmin/config.inc.php


$ sudo ls -la /etc/phpMyAdmin/
[sudo] password for ★★: 
合計 28
drwxr-x---   2 root apache   57  3月 19 21:51 .
drwxr-xr-x. 98 root root   8192  3月 17 12:11 ..
-rw-r-----   1 root nginx  4629  3月 19 21:51 config.inc.php
-rw-r-----   1 root apache 4598  3月 17 12:11 config.inc.php.20180318

$ cd ../
$ sudo ls -la /etc            
//中略
drwxr-x---   2 root apache     57  3月 19 21:51 phpMyAdmin
//中略


$ sudo chown -R root:nginx /etc/phpMyAdmin
$ sudo ls -la /etc
 
//中略
drwxr-x---   2 root nginx      57  3月 19 21:51 phpMyAdmin
//中略


$ sudo ls -la /etc/phpMyAdmin/    
                                                                                           
合計 28
drwxr-x---   2 root nginx   57  3月 19 21:51 .
drwxr-xr-x. 98 root root  8192  3月 17 12:11 ..
-rw-r-----   1 root nginx 4629  3月 19 21:51 config.inc.php
-rw-r-----   1 root nginx 4598  3月 17 12:11 config.inc.php.20180318


・エラー消える
・残るエラーは一つ


「You are using an incomplete translation, please help to make it better by contributing.」対応

 閲覧数:767 投稿日:2018-03-19 更新日:2018-03-20 

エラーではない


このメッセージは「翻訳が不完全なので協力して下さい」というもの
・無視してOK
・文字コード設定していないから、警告を受けているものとばかり思っていたよ

その他の設定変更


$ sudo vi /etc/phpMyAdmin/config.inc.php  
//中略
/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = 'localhost';
$cfg['Servers'][$i]['controlport'] = '';

//中略

//$cfg['DefaultLang'] = 'en';
//$cfg['DefaultLang'] = 'de';
$cfg['DefaultLang'] = 'ja-utf-8'; //デフォルトの言語を日本語に設定

//中略

//root アクセスの禁止。ファイル末尾に下記行を追加
$cfg['Servers'][$i]['AllowRoot'] = false;


rootでphpMyAdminへログイン
・出来ないことを確認
アクセスが拒否されました!


下記エラーがたまに表示されることがあるので、32文字を「英語と小文字と数字へ限定して変更」
・因果関係は不明
Warning in ./libraries/plugins/auth/AuthenticationCookie.php#465
hash_equals(): Expected user_string to be a string, boolean given

Backtrace

./libraries/common.inc.php#640: PMA\libraries\plugins\auth\AuthenticationCookie->authSetUser()
./index.php#20: require_once(./libraries/common.inc.php)
Warning in ./libraries/plugins/auth/AuthenticationCookie.php#471
hash_equals(): Expected user_string to be a string, boolean given



推測されにくいURLへ変更。IP制限を外す

 閲覧数:144 投稿日:2018-03-20 更新日:2018-03-23 

「推測されにくいURL/◇◇◇◇◇◇◇◇」へ変更


「随時変更されるIP」を使用しているため制限を外す
$ sudo vim /etc/nginx/conf.d/phpmyadmin.conf
server {
   listen       80;
   server_name hoge.example.com;
   root   html;
   index  index.php index.html index.htm;
   location /◇◇◇◇◇◇◇◇ {
       alias /usr/share/phpMyAdmin/;
       try_files $uri $uri/ /index.php;
       #allow IPアドレス;
       #deny all;

       location ~ ^/◇◇◇◇◇◇◇◇/(.+\.php)$ {
           alias /usr/share/phpMyAdmin;
           fastcgi_pass unix:/var/run/php-fpm.sock;
           fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin/$1;
           include fastcgi_params;
           fastcgi_intercept_errors on;
           #allow IPアドレス;
           #deny  all;
       }
   }

}

$ sudo systemctl restart php-fpm
$ sudo systemctl restart nginx.service

動作確認
・ブラウザより、「hoge.example.com/◇◇◇◇◇◇◇◇」へアクセス

注意点


推測されにくいURLの最強強度は難しい

理由
・正規表現を使用しているため

URLを最強に推測されにくくするためには?
・記号を入れる必要がある
・しかし、「.conf」の「lodation」で正規表現を使用しているため、記号を入れると正常動作しなくなる

最終的に行ったこと
・「数字」「小文字」「大文字」「32文字」指定して、ランダムな文字列を自動生成
・適当な箇所に「-」を挿入
・適当な箇所に「_」を挿入
※「-」「_」は正規表現中で使用可。URLとしても使用可

やはりIP制限しておいた方が良いかも


開発者チームによれば、「phpMyAdmin 4.7.x」において「クロスサイトリクエストフォージェリ(CSRF)」の脆弱性「CVE-2017-1000499」が存在するという。重要度は「クリティカル(critical)」
・「4.7」って最新やんけ!
phpMyAdminのセキュリティについて
データベース管理ツール「phpMyAdmin」に深刻な脆弱性
JVNDB-2017-011921 - JVN iPedia - 脆弱性対策情報データベース
phpMyAdmin - Security - PMASA-2017-9
CVE-2017-1000499


Link


最大アップロードファイルサイズを指定
CentOS7にNginxを入れる
さくらのVPSでサーバー構築

セキュリティ
phpMyAdminの接続許可するIPをすべてに設定するのは良くないでしょうか?
BASIC認証のセキュリティ面等の欠点を教えてください。
phpMyAdminのセキュリティについて


8回目-15.PHP7の再設定

8回目-17.MySQLデータ移行



週間人気ページランキング / 9-19 → 9-25
順位 ページタイトル抜粋 アクセス数
1 Nginx設定。エラーログレベル | Nginx(Webサーバ) 16
2 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 15
3 PHPのmb_send_mail関数でメール送信できない | メール処理システム 11
4 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 10
5 tar: これは tar アーカイブではないようです 8
5 ImageMagick と imagick の違い | ImageMagick(ソフトウェアスイート) 8
5 さくらVPS0 8
6 manページ日本語表示 | CentOS 7 (CentOS) 7
6 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 7
7 ABRT により 問題が検出されました | CentOS 7 (CentOS) 6
7 Reached target Shutdown メッセージが表示されたあと、シャットダウンまたは再起動プロセスがハングアップする | CentOS 7 (CentOS) 6
7 PHPファイルでchmodエラー | PHP(プログラミング言語) 6
7 echo と cat の違い 6
8 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 5
8 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 5
8 「CentOS6」から「CentOS7」への移行 | CentOS 7 (CentOS) 5
8 「さくらVPS」で、「CentOS6」を「CentOS7」へ変更するためには? | CentOS 7 2週間無料のお試し期間 Link(さくらVPS) 5
9 6回目-10.Nginxでバーチャルホスト設定確認 | CentOS 7 2週間無料のお試し期間 6回目(さくらVPS) 4
9 cronで定期実行しているphpファイルを、コマンドライン経由で即時実行する | cron(Linuxコマンド) 4
9 MySQL 5.5 から 5.6 へのアップグレード | MySQL(データベース) 4
2021/9/26 1:01 更新