17206


phpMyAdminのインストールは以下のようにしました。

[code]

    $ sudo yum install epel-release
    $ sudo yum install phpmyadmin
    
[/code]

データベースは作成済みです。

* * *

**環境**

CentOS 7.1.1503  
Nginx 1.8.0  
php 5.4.16  
MariaDB 10.1.7

## phpMyAdminにアクセスできない

独自ドメインは仮に`example.me`とします。

`/etc/nginx/conf.d/phpmyadmin.conf`に以下を追記しました。

[code]

    server {
           listen 80;
           server_name  phpmyadmin.example.me;
    
           location /phpMyAdmin {
                    root /usr/share;
                    index index.php;
                    }
    
            location ~ ^/phpMyAdmin.+\.php$ {
                    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                    fastcgi_index index.php;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
            }
    }
    
[/code]

一応以下のコマンドも入力しました。

[code]

    $ sudo chown nginx /var/lib/php/session
    
[/code]

この状態でMySQLとNginxを再起動し、`http://phpmyadmin.example.me/phpMyAdmin`にアクセスしてみましたが、「File
not found.」と返ってきます。

* * *

内容の変更を試してみました。

`/etc/nginx/conf.d/phpmyadmin.conf`の内容を以下に変更します。

（<http://oxynotes.com/?p=8457>の内容をほぼ丸コピさせて頂きました。ただ、nginx.confではなく、conf.d/phpmyadmin.confに書きました。）

[code]

    server {
            listen 80;
            server_name phpmyadmin.example.me;
    
            index  index.html index.htm index.php;
            root html;
    
            location /phpMyAdmin {
                alias /usr/share/phpMyAdmin/;
                try_files $uri $uri/ /index.php;
    
                location ~ ^/phpmyadmin(.+\.php)$ {
                    alias /usr/share/phpMyAdmin;
                    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
                    fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin;
                    include fastcgi_params;
                    fastcgi_intercept_errors on;
                    allow 160.16.74.43;
                    deny  all;
                }
            }
    
        }
    
[/code]

この状態でNginxを再起動し`http://phpmyadmin.example.me/phpMyAdmin`にアクセスしたところ、画像のようなメッセージが返ってきました。

<https://kie.nu/2KLH>

もとからファイル名も表示されていません。（加工したのはモザイク部分だけです）

* * *

なかなか情報が見つからず、苦戦している状況です。

初心者ですみませんが、お力を貸していただけると嬉しいです。

よろしくお願いします。


CC BY-SA 4.0
2015-10-02T16:46:49.607
17198
2020-10-10T11:30:20.937
2020-10-10T11:30:20.937
3060
12505
question
centos nginx phpmyadmin
NginxでphpMyAdminにアクセスしようとするとFile not foundと返される


2つ目の設定についてコメントします。

  * 「location ~ ^/phpmyadmin(.+.php)$」だと URL のパスが「/phpMyAdmin/」(大文字含む)にマッチしないので、FastCGI ではなく普通のファイルとみなされてしまいます。

  * 「fastcgi_param SCRIPT_FILENAME」には PHPファイル名を "$1" で渡す必要があります。

したがって、location 箇所を以下のようにすればいいと思います。

[code]

    location /phpMyAdmin {
        alias /usr/share/phpMyAdmin/;
        try_files $uri $uri/ /index.php;
    
        location ~ ^/phpMyAdmin/(.+\.php)$ {                            #変更
            alias /usr/share/phpMyAdmin;                                #必要なし？ 
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin/$1;     #変更
            include fastcgi_params;
            fastcgi_intercept_errors on;
            allow 160.16.74.43;
            deny  all;
        }
    }
    
[/code]


CC BY-SA 3.0
2015-10-03T03:12:07.313
17206
2015-10-03T03:12:07.313
4603
17198
answer