phpMyAdminをインストールする(MariaDB)
※₁ Exmnetでの接続テストを実施しました。
※₂ Ubuntuのversionは24 lts版です。
※₃ 後でSSLとドメイン設定をするので問題がでたら更新します。
Ubuntuを更新する
メモ
sudo apt -y update
sudo apt -y upgrade
ポートを開放する(必要がある場合)
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 3306
sudo ufw reload
MariaDBのインストール
sudo apt -y install mariadb-server mariadb-client
MariaDBの自動起動
sudo systemctl enable mariadb --now
MariaDBのバージョン確認
2025年6月
mysql Ver 15.1 Distrib 10.11.13-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapperと表示されました。
mysql --version
初期設定(rootパスワード設定、リモートアクセス許可など)
sudo mysql_secure_installation
質問1.Enter current password for root (enter for none):
初回はパスワードを設定していないため Enterキーでスキップ
質問2.Switch to unix_socket authentication [Y/n]
Yにしておけばrootユーザーでログインしている場合のみ、MySQLのrootとして自動ログインできるようになります。
sudo mysqlやsudo mysql -u rootでパスワードなしでMySQLに入れるようになります。
これは使い分けですかね?
まぁ皆rootでも・・・
サーバー管理者が一人だけならYでいいです。
他の人にもrootアクセスをパスワードで許可したい場合はnです。
質問3.Change the root password?
今回rootは使わないのでnでいいです。
質問4.Remove anonymous users? [Y/n]
Y推奨です。
匿名ユーザー(ユーザー名がないMySQLアカウント)を削除しますか?という意味です。
匿名ユーザーはセキュリティリスクになるため、通常は削除します。
質問5.Disallow root login remotely? [Y/n]
MySQLのrootユーザーでリモートからのログインを禁止しますか?
基本的には「Y」です。
リモートからは一般ユーザーで接続するのが安全です。
質問6.Remove test database and access to it? [Y/n]
基本はYでいいです。
testデータベースとそのアクセス権を削除しますか?という意味です。いらないです
質問7.Reload privilege tables now? [Y/n]
基本はYです。
今すぐ権限テーブルを再読み込みしますか?という意味です。
外部からアクセスできるようにする
vi /etc/mysql/mariadb.conf.d/50-server.cnf
以下の設定を探す
bind-address = 127.0.0.1
以下のように変更する
bind-address = 0.0.0.0
MariaDBを再起動する
sudo systemctl restart mariadb
データベースの外部接続を許可する
sudo mysql -u root
phpMyAdminにログインできるユーザーを作成する
※phpMyAdminへログインする場合は今回の場合は'@'localhost'が必要となります。
dbサーバーとphpMyAdminのサーバーを分ける場合等は設定を変更してください。
ユーザー名[user1]とパスワード[your_strong_password]は自由に変更してください。
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'your_strong_password';
FLUSH PRIVILEGES;
これでuser1としてphpMyAdminにログインできるようになっています。
次にやり方は色々ありますが今回は以下とします。
ユーザーを作成してDBへ接続可能なIPを限定する
※Exmentからの接続をテストしました。
※一応、必要な権限だけを与えることを推奨。(ALL PRIVILEGESではなく、必要な権限 SELECT, INSERT等)
特定のIPアドレス(サーバー)等からdatabase1というデータベースへの接続を許可する設定です。
接続元IPとyour_strong_passwordを置き換えてください。
今回の場合はphpMyAdminにログインするように作成したuser1'@'localhostと'user1'@'接続元IP'は別ユーザー扱いとなります。
パスワードは別々に保存してください。
CREATE USER 'user1'@'接続元IP' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON database1.* TO 'user1'@'接続元IP';
FLUSH PRIVILEGES;
php8.3とphpMyAdminをインストールする
sudo apt install -y php8.3 php8.3-fpm php8.3-mysql php8.3-xml php8.3-mbstring php8.3-curl php8.3-zip
sudo systemctl enable php8.3-fpm --now
sudo apt -y install phpmyadmin
mkdir /var/www
sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
sudo chmod 775 -R /usr/share/phpmyadmin
sudo chown www-data:www-data -R /usr/share/phpmyadmin
Nginxの最新版をインストールする
最新のNginx取得に必要なものをインストール
sudo apt -y install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
nginx の署名鍵をインポート
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
署名確認(面倒なら不要)
gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
最新の安定板を取得する
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
インストール
sudo apt update
sudo apt -y install nginx
nginx のバージョン確認
2025年6月
nginx version: nginx/1.28.0と表示されました。
nginx -v
Nginx の自動起動設定
以下のコマンドで再起動しても自動起動と初回起動がされます。
systemctl enable nginx --now
Nginxでphpmyadminにアクセスできるようにする
nginxの権限をwww-dataへ変更する
cd /etc/nginx
vi nginx.conf
user nginx;を以下に user www-data;
cd /etc/nginx/conf.d
今回はデフォルトファイルをいじります。
vi default.conf
server {
listen 80;
server_name localhost;
root /var/www/phpmyadmin;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}
location ~ /\.ht {
deny all;
}
}
nginxをリロードする
sudo systemctl reload nginx
URLへ接続する
http://あなたのIPアドレス に接続することでphpmyadminが表示されるはずです。
その他
pypMyAdmin用のrootパスワードを設定する(不要)
テスト用に使用していました。(テスト環境用)
sudo mysql -u root
your_root_passwordを置き換えてください。
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('your_root_password');
FLUSH PRIVILEGES;
EXIT;