RackhubのphpMyAdminの警告を黙らせてみた

やぁ。鳥のようなものだ。

今回は以前作ったRackhubのphpMyAdminのワーニングを黙らせてみるよ〜。

もくじ

  1. mysqliワーニング、mcryptワーニングを黙らせる
  2. phpMyAdmin 環境保管領域ナンタラ警告を黙らせる

 

mysqliワーニング、mcryptワーニングを黙らせる

今回はコマンドだけザーっと書いていくよん。

これらのエラーを解決するには、どっちもPHPの再コンパイルっていうめんどーくっさい作業が必要だ。
ついでなので、PHP自体のアップデートも行っちゃうよ。

まず、mcrypt導入に必要なライブラリ、"libmcrypt"をゲットしてくる。
URLはmcrypt - Browse /Libmcrypt at SourceForge.netからゲットしてくる。

以下コマンドで、ダウンロード→解凍→コンパイルまでやっちゃうよ。
コンパイルの際に、"--disable-posix-threads"オプションを指定して./configureしている点に注意。
PHP: Mcrypt: インストール手順 - Manual

$ cd ~
$ wget http://downloads.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmcrypt%2Ffiles%2FLibmcrypt%2F2.5.8%2F&ts=1347858671&use_mirror=jaist
$ mv libmcrypt-2.5.8.tar.gz?r=http:%2F%2Fsourceforge.net%2Fprojects%2Fmcrypt%2Ffiles%2FLibmcrypt%2F2.5.8%2F libmcrypt.tar.gz
$ tar xvzf libmcrypt.tar.gz
$ cd ./libmcrypt-2.5.8
$ sudo ./configure --disable-posix-threads
$ sudo make
$ sudo make install

次に、最新のPHPをゲット、解凍して配置。この時の最新バージョンは5.4.7。
PHPのダウンロードURLは、PHP: Downloadsからゲットしてね〜。

$ cd ~
$ wget http://jp2.php.net/get/php-5.4.7.tar.gz/from/jp.php.net/mirror
--2012-09-16 06:59:25-- http://jp2.php.net/get/php-5.4.7.tar.gz/from/jp.php.net/mirror
:
$ tar xvzf mirror
$ sudo mv ~/php-5.4.7 /usr/local/php-5.4.7
$ cd /usr/local/php-5.4.7

で、次に./configure。こっからすごーーーく時間かかるから覚悟してね。

$ sudo ./configure --prefix=/usr/local/php-5.4.7 --with-apxs2=/usr/bin/apxs --enable-mbstring --with-mysql --with-pdo-mysql --with-unixODBC=/usr --with-gd --with-openssl --with-zlib --enable-phar --with-mysqli --with-mcrypt

ほとんどは元からあったオプションのコピー。
今回追加したのは、以下の2つだよ。

  • --with-mysqli:mysqliを導入するためのオプション
  • --with-mcryptmcryptを導入するためのオプション(要libmcrypt)

その後、いつもどおりmake、make installする。
場合によるかもだけど、トータルで1時間程度。

$ sudo make
$ sudo make install

PHPへのシンボリックリンクがそこここにあるので、全部更新。

$ sudo ln -sf ../local/php-5.4.7/bin/php /usr/bin/php
$ sudo ln -sf ../local/php-5.4.7/include/php /usr/include/php
$ sudo ln -sf ../local/php-5.4.7/lib/php /usr/lib/php
$ sudo ln -sf php-5.4.7 /usr/local/php
$ sudo ln -sf local/php-5.4.7/php /usr/php
$ sudo ln -sf ../local/php-5.4.7/bin/php-cgi /usr/bin/php-cgi
$ sudo ln -sf ../local/php-5.4.7/bin/php-config /usr/bin/php-config
$ sudo ln -sf ../local/php-5.4.7/bin/phpize /usr/bin/phpize
$ sudo ln -sf ../local/php-5.4.7/bin/pear /usr/bin/pear

で、バージョンアップされたことと、拡張が無事に導入されたことを確認しませう!

$ php -v
PHP 5.4.7 (cli) (built: Sep 17 2012 05:45:30)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
$ php -m
:
mcrypt
:
mysqli
:

今のところ要らないかもだけど、初期はphp.iniが居ないので、コピーして作っておくよ。
今回は開発用のをコピる。

$ sudo cp /usr/local/php-5.4.7/php.ini-development /usr/local/php-5.4.7/lib
$ sudo mv /usr/local/php-5.4.7/lib/php.ini-development /usr/local/php-5.4.7/lib/php.ini

これだけだと、「設定ファイルが無い」と怒られるので、
違うディレクトリにある設定ファイルへのショートカット(シンボリックリンク)をディレクトリ内に作る。

$ cd /usr/local/httpd/htdocs/phpmyadmin
$ ln -s /etc/phpmyadmin/config.inc.php config.inc.php

で、Apacheを再起動。

$ sudo apachectl restart

phpMyAdminの画面から"mysqli"、"mcrypt"のメッセージが消えていれば成功だ!
※config.inc.phpの$cfg['Servers'][$i]['extension']の設定を"mysql"から"mysqli"に戻すのを忘れずに!

 

phpMyAdmin 環境保管領域ナンタラ警告を黙らせる

こっちはとてもカンタン。

まず、phpMyAdminにログインして、"phpmyadmin"というユーザーと、同名の空のDBを作る。

次に、"examples/create_tables.sql"にあるクエリを実行する。

で、config.inc.phpを編集し、
「User used to manipulate with storage」「Storage database and tables」セクションの
コメントアウトを全部取る。
"controluser"と"controlpass"の設定は適宜。

一旦phpMyAdminからログアウトし、再度ログイン。
するとエラーは消えてるはずだよん。

以上!
でわでわ。