Nginx Server Block Port 8081 Путь к корневой папке [закрыто]

Я пытаюсь защитить паролем весь порт 8081 на моем сервере Nginx.Единственное, для чего используется этот порт, - это 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?

Если это имеет значение, я использую Ubuntu 14.04.1 LTS с Nginx 1.4.6 и ISPConfig 3.0.5.4p3.

0
задан 8 March 2015 в 20:35
2 ответа

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://.....

EDIT: вот полный блок сервера, который работает на меня -- я начал тестировать его до того, как увидел ваш ответ, который включает блок 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;
    }
}
1
ответ дан 4 December 2019 в 17:13

Благодаря masegaloeh для следующего решения:

Решение заключается в добавлении секции 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;
}
}
0
ответ дан 4 December 2019 в 17:13

Теги

Похожие вопросы