Debian10bustarへphpMyAdminをインストール

動作未確認で入手したShuttleのベアボーンPC XS-35V2にOSとしてDebianを導入したところです。

デスクトップPCとしては頼りないハードウェア仕様なので、動作テストの意味でMariaDBとphpMyAdminのインストールに挑戦してみました。

Debian10(buster)は32bitを入れています。また、phpMyAdminは当記事に記載したインストール方法では実用に不足している部分があり適しません。

PHPとMariaDBのインストール

WebサーバーはOSのインストール時に設定をしていましたので導入済み。ここではPHPとMariaDB(MySQL)のインストールから入ることにします。

$sudo apt update

最初にapt updateを実行しておきます。

PHP

$sudo apt install php php-dev php-fpm php-gd
$sudo apt install php-mysql php-mbstring
$sudo apt install libapache2-mod-php7.3

ここまで実行した段階でテスト用にphpinfo.php等の作成したテストファイルが表示可能。

$sudo a2enmod proxy_fcgi setenvif
$sudo a2enconf php7.3-fpm

ここの「7.3」はバージョンにより書き換えます。

$sudo systemctl restart apache2

ここまで終わったところでまとめて再起動。

データベース

$sudo apt install mariadb-server mariadb-client

MariaDBは以上の操作だけで済ませました。

phpMyAdminを手動でインストール

リポジトリを使わずに手動で/uer/share/へインストールしますが、他に/var/lib/や/etc/へもphpMyAdminに必要なディレクトリ(ファイル)を配置する方法をとりました。

$sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.tar.gz

phpMyAdminの公式サイトからtar.gz形式のファイルをダウンロードします。(2021年1月現在phpMyAdmin-5.0.4-all-languages.tar.gzのファイル名でダウンロード可能)

以降、phpMyAdmin-5.0.4-all-languagesはダウンロードされたファイル名に置き換えて適用します。

$sudo tar xvf phpMyAdmin-5.0.4-all-languages.tar.gz

ダウンロードしたファイルを解凍。

$sudo mv phpMyAdmin-5.0.4-all-languages /usr/share/phpmyadmin

解凍してできたディレクトリを/uer/share/へ移動してリネーム。

$sudo mkdir -p mkdir -p /var/lib/phpmyadmin/tmp

/var/lib/phpmyadmin/tmpディレクトリを作成。

$sudo chown -R www-data:www-data /var/lib/phpmyadmin

Apacheで/var/lib/phpmyadminを書き込み可にする。

$sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

サンプルを利用してconfig.inc.phpファイルを作成。

$sudo vi /usr/share/phpmyadmin/config.inc.php

次に該当する記述を編集します。

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

=の次のシングルクォーテーションの中に32桁のパスワードを記述。

例:$cfg['blowfish_secret'] = '123456789012345678901234567890ab';

次に/* User used to manipulate with storage */の見出しが付いた部分の編集が必要です。

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

下の2行のpmaとpmaのパスワードのコメントアウトを外して編集しますが、今回はテスト環境でログインできれば良いのでこの作業を省略しました。

config.inc.phpファイルの編集

そのまま下にスクロールして/* Storage database and tables */の見出しの下のコメントアウトを全て外す(20行ある)。

最後にファイルの一番下に次の記述を追加する

$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

$cfg['TempDir'] = '/tmp';だけの指定だと/usr/share/phpmyadmin/を参照しそうなので、このように記述しましたがエラーが出たら修正することにします。

$sudo mysql_secure_installation

mysql_secure_installationを実行。

mariadb.com

mysql_secure_installationは全部英語ですが、MariaDBのサイトに日本語の解説がありました。

最初に空でEnter、あとは全てyにしています。

$sudo vi /etc/phpmyadmin/apache.conf

/etc/にもphpmyadminディレクトリを作成しapache.confファイルを作成します。

apache.confファイルは新たに作成する必要ありますが、今回はphpMyAdminへのログインまでのテストをしたいため以下の通り簡易なもので済ませました。


# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <ifmodule mod_php5.c>
        <ifmodule mod_mime.c>
            AddType application/x-httpd-php .php
        </ifmodule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>
    </ifmodule>
</Directory>

※一部<>などを全角で表示しています。

Apacheのapache2.confに作成したapache.confを読み込む記述をします。

$sudo vi /etc/apache2/apache2.conf

最下行に次の一行を追加し保存します。

Include /etc/phpmyadmin/apache.conf
$sudo service apache2 restart

ここでApacheを再起動させ、ブラウザのアドレスバーに127.0.0.1/phpmyadminと入力するとphpMyAdminのログイン画面にアクセスでます。

phpMyAdminは手動でのインストール後にログインできないケースが多いため、次のように一例として新規にユーザーnew-userを作成しパスワード12345でログインを試みました。


$ sudo mariadb -u root
MariaDB [(none)]> CREATE USER 'new-user'@'localhost' identified by '12345';
MariaDB [(none)]> GRANT ALL ON *.* to 'new-user'@'localhost' WITH GRANT OPTION;
MariaDB [(none)]> exit;
$ sudo systemctl restart mariadb

ここで作成したnew-userでログインできれば、phpMyAdminでrootのパスワードを変更したり新しいユーザーを追加できます。

引き続きエラーが出てログインができない場合は、再度MariaDBのコマンドラインからrootのパスワードを削除するなどを試します。


$ sudo mariadb -u root
MariaDB [(none)]> set password for root@localhost=password(''); MariaDB [(none)]> exit;
$ sudo systemctl restart mariadb

正常にログインできることが確認できたらnew-userに与えた権限やrootのパスワードを適正に編集し直します。

また、簡易に済ませていたapache.confファイルを自分の環境に見合った内容に仕上げます。