Nginx 服务器阻止端口 8081 到根文件夹的路径

Nginx 服务器阻止端口 8081 到根文件夹的路径

我正在尝试用密码保护 Nginx 服务器上的所有端口 8081。此端口的唯一用途是 PhpMyAdmin。当我导航到https://www.example.com:8081,我成功获取了默认的 Nginx 欢迎页面。但是,当我尝试导航到 PhpMyAdmin 目录时,https://www.example.com:8081/phpmyadmin,我收到“404 Not Found”页面。

我的 htpasswd 文件的权限设置为 644。

这是我的服务器块的代码:

server {
listen 8081;
server_name example.com www.example.com;
root /usr/share/phpmyadmin;
auth_basic            "Restricted Area";
auth_basic_user_file  htpasswd;
}

我也尝试过完全注释掉#root /usr/share/phpmyadmin;但是,没有任何区别。

我的问题是否仅限于使用错误的根路径?如果是这样,我如何找到 PhpMyAdmin 的根路径?

如果有任何区别,我正在使用带有 Nginx 1.4.6 和 ISPConfig 3.0.5.4p3 的 Ubuntu 14.04.1 LTS。

答案1

此服务器未启用 SSL。请尝试http://www.example.com:8081/

要使 SSL 正常工作,您需要以下内容:

listen 8081 ssl;
ssl_certificate /path/to/your.crt;
ssl_certificate_key /path/to/your.key;
error_page 497 https://$host:$server_port$request_uri;

错误页面行将重定向 http://... 到 https://...

编辑:这是一个适合我的完整服务器块——在看到包含 PHP 块的答案之前,我开始测试它:)

server {
    listen 8081 ssl;
    ssl_certificate /etc/nginx/server.crt;
    ssl_certificate_key /etc/nginx/server.key;
    error_page 497 https://$host:$server_port$request_uri;

    server_name example.com www.example.com;
    root /usr/share/phpmyadmin;

    location / {
        auth_basic "Restricted Area";
        auth_basic_user_file htpasswd;

        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
    }
}

答案2

谢谢马塞加洛对于以下解决方案:

解决方案是添加 php-fpm 部分,如下所示:

server {
listen 8081;
server_name example.com www.example.com;
root /usr/share/phpmyadmin;

location / {
auth_basic            "Restricted Area";
auth_basic_user_file  htpasswd;

include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/lib/php5-fpm/web11.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
}
}

相关内容