親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。育児のイロハという育児サイト(https://ikujip.jp)の開発も行っているため、その開発で使用されている技術についても掲載しています。

NginxのサブディレクトリでphpMyAdminを起動

NginxのサブディレクトリでphpMyAdminにつなげたい

Nginxで、「ドメイン名/phpMyAdmin」でphpMyAdminにつなげるようにした時の設定です。
ドメインを入力すれば普通にアプリケーションに接続され、サブディクトリを指定すればphpMyAdminに接続できるようにする方法です。

yumphpMyAdminのインストール

まずはphpMyAdminのインストールです。

yum --enablerepo=epel install -y phpMyAdmin

環境によってはPHPの他のパッケージのバージョンと衝突し、以下のようなエラーが出ることがあります。

エラー: php56-common conflicts with php-common-5.3.29-1.8.amzn1.x86_64
エラー: php56-process conflicts with php-process-5.3.29-1.8.amzn1.x86_64
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest

PHP5.6の場合は、/etc/yum.confに以下を記述し、

yum.conf

exclude=php-common php-bcmath php-cli php-process php-tidy

再度インストールすればできるようになりました。
参考(https://teratail.com/questions/78904)

nginx側の設定

次にdefault.confファイル(人によってファイルはかわりますがconfファイルです)の編集です。

cd /etc/nginx/conf.d
vim default.conf
server {
    listen       80;
    server_name  ドメイン名;
 
    #charset koi8-r;
    access_log  /var/log/nginx/log/host.access.log  main;
 
    location / {
        root   /var/www/html;
        index  index.php;
        location ~ .php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
 
    location /phpMyAdmin {
        root /usr/share;
        index index.php;
        location ~ .php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
 ・
 ・
 ・
 略
}

一部略してますが、こんな感じで記載して最後に再起動をすれば大丈夫です。

service nginx restart