4

example.com/phpmyadmin を自分のサイトから別のディレクトリにルーティングして、すべてのサイトで 1 つのユニバーサル phpmyadmin インストールを使用できるようにしようとしています。私はこれを試しました:

server {
    listen      80;
    server_name example.com;

    location / {
        root    /home/web/example.com/public_html;
        index   index.html index.htm index.php;
    }

    location ~ \.php$ {
        root /home/web/example.com/public_html;
        if ($request_uri ~* /phpmyadmin) {
            root /home/web/phpmyadmin;
        }
        try_files $uri =404;
        fastcgi_pass   unix:/tmp/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

これはまったく機能していないようです。

そして、私もこれを試しました:

server {
    listen      80;
    server_name example.com;

    location / {
        root    /home/web/example.com/public_html;
        index   index.html index.htm index.php;
    }

    location /phpmyadmin {
        root    /home/web/phpmyadmin;
        index   index.html index.htm index.php;
    }

    location ~ \.php$ {
        root /home/web/example.com/public_html;
        try_files $uri =404;
        fastcgi_pass   unix:/tmp/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

このファイルでエラーログを確認すると、次のようになります。

2013/06/28 01:10:47 [error] 7068#0: *1 "/home/web/phpmyadmin/phpmyadmin/index.html" is not found (2: No such file or directory)

そのため、場所ブロックでルートを /home/web に変更し、余分な phpmyadmin が削除されると考えましたが、代わりに、エラーログに phpmyadmin について何も表示されません。正しい構成と、これが機能しない理由を理解できないようです。何か案は?

4

2 に答える 2

1

index2番目の構成の問題は内部/phpmyadminにあると思いますindex index.php

これが私のサーバーの phpmyadmin ですが、サブドメインとして構成されています。

server {
    client_header_timeout 0;
    server_name phpmyadmin.example.com;
    root /var/www/phpmyadmin/;
    #replace this with your phpmyadmin location
    #like /usr/share/phpmyadmin for example
    index           index.php;
    access_log /var/log/nginx/phpmyadmin_access_log;
    error_log /var/log/nginx/phpmyadmin_error_log;
    location ~* \.php$ {
        try_files $uri =404;
        fastcgi_index   index.php;
        fastcgi_pass    unix:/var/run/php5-fpm.sock;
        include         fastcgi_params;
        client_max_body_size 64m;
        client_body_buffer_size 128k;
    }
    location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
        access_log        off;
        log_not_found     off;
        expires           360d;
    }
    location ~ /\.  {
        access_log off;
        log_not_found off;
        deny all;
    }
}

これらの 3 つの設定は、大きなファイルをエクスポートおよびインポートするためのものです。エクスポートされたファイルが特定の量よりも大きい場合、またはサーバーがエクスポートされた sql ファイルを生成するのに時間がかかる場合、nginx は失敗します。

client_header_timeout 0;
client_max_body_size 64m; #change this if ur export is bigger than 64mb.
client_body_buffer_size 128k;
于 2013-06-28T09:08:12.233 に答える