如何使用 Nginx 设置 phpMyAdmin?

如何使用 Nginx 设置 phpMyAdmin?

我在 virtuals.conf 中为 phpMyAdmin 创建了一个条目,并重新启动了 Nginx,但我无法让它真正地运行 phpMyAdmin。PHP 已安装并配置了 Nginx 以实现 fast-cgi,virtuals.conf 条目语法检查无误,mysql 服务器正在运行。

另外,FWIW,centos 是我正在运行的 CentOS VM 的主机名。

我的参赛作品如下:

    server {
    listen 80;
    server_name mysql.centos;

    location / {
        root /usr/share/phpMyAdmin;
        index index.php;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$fastcgi_script_name;
        include fastcgi_params;
    }
}

答案1

查看我的设置示例:

server {
    listen 80;
    server_name domain.com;
    # Server root
    root /home/user/domain.com/public_html;
    index index.html index.php;

    location /MySQLAdmin {
        auth_basic "Restricted Access";
        auth_basic_user_file htpasswd_file;

        alias /usr/share/phpMyAdmin/;
        try_files $uri $uri/ @fastcgi;
    }
    location ~ .+\.php$ {
        # Return '400 Bad Request' for malformed URLs
        location ~ \..*/.*\.php$ {
            return 400;
        }
        # Map 418 error code (no bady uses) to fastcgi
        error_page 418 = @fastcgi;
        return 418;
    }
    location @fastcgi {
        fastcgi_pass 127.0.0.1:9000;
        ...
    }
    location / {
        try_files $uri $uri/ @fastcgi;
    }
}

对“MySQLAdmin”的请求将由别名为 phpMyAdmin 文件夹的位置处理。Nginx 将直接返回静态文件并将 PHP 发送到 @fastcgi。对“.php”的请求将发送到 @fastcgi。

Nginx 尝试为其他文件提供服务,并将未找到的文件发送到 @fastcgi。基本上,静态文件将由 Nginx 提供服务。未明确写出的 Index.php 请求将不会被找到并传递给 @fastcgi。

相关内容