nginx に phpmyadmin

(2026-01-14)

nginx に phpmyadmin を設定します。

chatGPT に相談しても、同じエラーを繰り返して迷路に入ってしまい、解決するのに 3 時間程かかりました。

nginx がインストールされて laravel プロジェクトと繋がっている前提です。

phpmyadmin のインストール

cd /usr/share
sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip
sudo unzip phpMyAdmin-latest-all-languages.zip
sudo mv phpMyAdmin-*-all-languages phpmyadmin
sudo rm phpMyAdmin-latest-all-languages.zip
sudo chown -R www-data:www-data phpmyadmin
sudo chmod -R 755 phpmyadmin
cd phpmyadmin
sudo cp config.sample.inc.php config.inc.php
sudo nano config.inc.php
# $cfg['blowfish_secret'] にランダム文字列を設定

パスワードを 23 文字以上のランダムな文字列設定。

<?php
/**
* This is needed for cookie based authentication to encrypt the cookie.
* Needs to be a 32-bytes long string of random bytes. See FAQ 2.10.
*/
$cfg['blowfish_secret'] = 'hO1!Z8MKNGoxiHvtf7Hj2YXV'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

ルートディレクトリの作成

sudo nano /etc/nginx/sites-available/family-album

以下のように編集。

server {
listen 80;
server_name _; # ローカル環境
# Laravel 用
root /home/moheno/family-album/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
}
# phpMyAdmin 用
location /phpmyadmin {
root /usr/share/;
index index.php;
try_files $uri $uri/ =404;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
}

パーミッション設定。

sudo chown -R www-data:www-data /home/moheno/family-album
sudo chmod -R 755 /home/moheno/family-album
sudo chown -R www-data:www-data /usr/share/phpmyadmin
sudo chmod -R 755 /usr/share/phpmyadmin

nginx の再起動。

sudo nginx -t
sudo systemctl reload nginx