Help us understand the problem. What is going on with this article?

HomebrewでphpMyAdminをインストールする。

More than 1 year has passed since last update.

現在PHPを学んでいるのだが、私が利用している本ではデータベースの作成にphpMyAdminがよく利用されている。

phpMyAdminとはデータベース作成のためのインターフェース。直感的にデータベースの作成ができる。今まではSQL文でデータベースを作成してきたのだが、少し使って見たくなった。(単に楽をしたい。)

MAMPやXAMPPならデフォルトで使えるんだけどな。今回はHomebrewでインストールすることにした。

インストール

Homebrewを使うのは久しぶりだったので、まずupdateから始まった。brew updateでも当然updateが行われるのだが、パッケージををインストールするときにも毎回実行されるらしい。

$ brew install phpmyadmin
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 4 taps (homebrew/core, homebrew/php, homebrew/services, caskroom/cask).
==> New Formulae

#以下略

そしたら途中でこんな一文が。

Warning: php@7.1 is outdated!
To avoid broken installations, as soon as possible please run:
  brew upgrade
Or, if you're OK with a less reliable fix:
  brew upgrade php@7.1

php@7.1が古いのでupgradeしろよ!とのこと。update作業で対応してくれてもいいじゃん!とも思ったが、updateとupgradeは違うのだ。

参考記事:
http://mzgkworks.hateblo.jp/entry/homebrew-update-flow

そしてupgrade作業を行う。

$ brew upgrade
==> Upgrading 17 outdated packages, with result:
libtiff 4.0.9_1 -> 4.0.9_2, php@7.1 7.1.13_24 -> 7.1.16, postgresql 10.1 -> 10.3, imagemagick@6 6.9.9-31 -> 6.9.9-40, nghttp2 1.29.0 -> 1.31.0, heroku 6.15.17 -> 6.16.8, icu4c 60.2 -> 61.1, ruby-build 20171226 -> 20180329, c-ares 1.13.0 -> 1.14.0, unixodbc 2.3.5_1 -> 2.3.6, httpd 2.4.29_1 -> 2.4.33, pcre 8.41 -> 8.42, node 9.4.0 -> 9.11.1, jpeg 9b -> 9c, openssl 1.0.2n -> 1.0.2o_1, imagemagick 7.0.7-21 -> 7.0.7-28, git 2.16.1 -> 2.17.0

#以下略

Apacheの設定

先ほどbrew install phpmyadminを行ったときにこんなメッセージが出ていた。

Webserver configuration example (add this at the end of
your /etc/apache2/httpd.conf for instance) :
  Alias /phpmyadmin /usr/local/share/phpmyadmin
  <Directory /usr/local/share/phpmyadmin/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    <IfModule mod_authz_core.c>
      Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
      Order allow,deny
      Allow from all
    </IfModule>
  </Directory>
Then, open http://localhost/phpmyadmin

この内容をhttpd.confに追記してからhttp://localhost/phpmyadminでphpMyAdminを起動してくださいね、とのこと。指示通り、上記のAlias〜</Directory>部分httpd.confにコピペする。

phpMyAdminの場所である/usr/local/share/phpmyadminも覚えておこう。

phpMyAdminの設定

最後にphpmyadmin.config.inc.phpを編集する。書き替え部分は以下の箇所だ。

後に、この作業は本来config.inc.phpで行うと気が付く・・・

$cfg['blowfish_secret'] = '適当な文字列';

#以下略

/* Server parameters */
$cfg['Servers'][$i]['host'] = '127.0.0.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]['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';

#以下略

参考記事:
https://soarcode.jp/posts/55

起動する

まずはApacheとMySQLを起動する。

$ sudo apachectl start
Password:
$ mysql.server start
Starting MySQL
 SUCCESS! 

そしたらブラウザを立ち上げhttp://localhost/phpmyadminへアクセスする。これで起動するはず・・・!

ログインについては、以前SQL文で設定したユーザーとパスワードがあったので、それを利用した。

ログインすると、今まで作成したデータベースが左側に表示されている。これからはphpMyAdminから操作が可能だ!

そう思ってたら・・・エラー発生

ログイン後、2つのエラーメッセージが出てしまう・・・

その1

phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています。理由についてはこちらをご覧ください。 
代わりにデータベースの操作タブを使って設定することもできます。

これは以下のコマンドを実行し、phpMyAdminの設定の保存場所を指定する必要がある。もちろんphpMyAdminから操作を行うことも可能だ。

$ mysql -u ユーザー名 -p < /usr/local/share/phpmyadmin/sql/create_tables.sql

参考記事:
https://soarcode.jp/posts/55
https://www.dbonline.jp/phpmyadmin/install/index3.html

その2

設定ファイルの中に記述されているパスフレーズ(blowfish_secret)が短すぎます。

これは、先ほど設定を変えたphpmyadmin.config.inc.php$cfg['blowfish_secret'] = '適当な文字列';の文字列を32文字以上に設定すると解決する。

参考記事:
https://www.dbonline.jp/phpmyadmin/install/index4.html

phpmyadmin.config.inc.phpとconfig.inc.php

phpmyadmin.config.inc.phpで行った作業は、本来はconfig.inc.phpで行うものらしい・・・しかし、phpmyadmin.config.inc.phpの内容がconfig.inc.phpへ反映されていた。

2画面で確認したのだが、どうやら/usr/local/share/phpmyadmin.config.inc.php/usr/local/share/phpmyadmin/config.inc.phpは片方を変更すると、即座にもう一方へ内容が反映されるらしい。

理由は正直よくわからない・・・

おまけ

phpMyAdminとSQL文の比較についてもいずれ書いてみる。

yukibe
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした