UbuntuにApache2・MySQLを入れてデータベースをphpMyAdminから操作できるようにする手順です。
$ sudo apt update
$ sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
どのWebサーバーを使うかの設定です。こちらはapache2を選択します。
データーベースのセットアップに使うかどうか聞かれます。ここはYesにします。
phpMyAdminをMySQLで使うためのパスワード設定です。パスワードを入れてOKにします。
再度パスワードを聞かれるのでもう一度入力してOKにします。
エラーが発生したので対処します。
エラーが出たのでabortを選んでインストールを中断します。下記のようなメッセージが出ます。
Errors were encountered while processing:
phpmyadmin
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)
ここからはターミナルでエラーの対処をしていきます。
//ターミナルからmysqlに入る
$ sudo mysql
//passwordコンポーネントを使わないようにする
mysql > UNINSTALL COMPONENT "file://component_validate_password";
//プロンプトに戻る
mysql > exit
//ターミナルから再度MySQLをインストール
$ sudo apt install phpmyadmin
//パスワード認証を有効化(元に戻す)
mysql > INSTALL COMPONENT "file://component_validate_password";
//mbstringPHP拡張モジュールを有効化
$ sudo phpenmod mbstring
//apachの再起動
$ sudo systemctl restart apache2
$ sudo vi /etc/apache2/apache2.conf
// 下記を追記
Include /etc/phpmyadmin/apache.conf
//apacheの起動
$ sudo service apache2 restart
ローカルホストURL/phpmyadmin にアクセスしてみると白い画面に以下のソースが表示されて、phpMyAdminがうまく表示されません。
<?php
declare(strict_types=1);
use PhpMyAdmin\Routing;
if (! defined('ROOT_PATH')) {
// phpcs:disable PSR1.Files.SideEffects
define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR);
// phpcs:enable
}
global $route, $containerBuilder;
require_once ROOT_PATH . 'libraries/common.inc.php';
$dispatcher = Routing::getDispatcher();
Routing::callControllerForRoute($route, $dispatcher, $containerBuilder);
libapache2-mod-php モジュールが必要なのでインストールします。
$ sudo apt install libapache2-mod-php
$ sudo service apache2 restar
conf-avilableも設定します。
$ sudo vi /etc/apache2/conf-available/phpmyadmin.conf
//ファイルに以下を記載
Include /etc/phpmyadmin/apache.conf
<Directory /usr/share/phpmyadmin>
Order deny,allow
</Directory>
//保存後再起動
$ sudo service apache2 restar
これで無事 phpMyAdmin が表示され使えるようになりました。
ログイン時間を長くする
デフォルトだと1440秒で他のことをしているとあっという間にログアウトになってしまい、一日何回もログインすることになります。開発用サーバーでこれを簡単に解決するにはphp.iniを変更します。
//ubuntuの場合
$ sudo vi /etc/php/8.1/apache2/php.ini
php.iniを開いたら
「/session.gc_maxlifetime」で検索をかけます。
session.gc_maxlifetime = 1440
と表示されるので、ここの秒数を長くするとログイン保持時間が伸びます。