【问题标题】:nginx root points to wrong foldernginx根指向错误的文件夹
【发布时间】:2012-05-28 03:08:18
【问题描述】:

不认为这是一个复杂的问题,但我没有解决它。

我很乐意将 www.mydomain.com/phpMyAdmin/ 指向 /var/www/phpMyAdmin/htdocs/

我这样做了:

server {
    listen 80;
    server_name     localhost;

    location /phpMyAdmin {
            root    /var/www/phpMyAdmin/htdocs/;

            index   index.php;

            #access_log      /var/www/phpMyAdmin/logs/access.log;
            #error_log       /var/www/phpMyAdmin/logs/error.log;
    }

    location ~ \.php$ {
            include fastcgi_params;
            try_files $uri =404;
            fastcgi_pass unix:/var/www/sockets/www.socket;
    }
}

但是调用 www.mydomain.com/phpMyAdmin 时的结果是它试图调用

/var/www/phpMyAdmin/htdocs/phpMyAdmin/index.php

谁能帮帮我?

【问题讨论】:

  • 只是好奇,server_name 不应该是 www.mydomain.com 而不是 localhost
  • 不一定——它是 nginx 默认值——我仅将其用于测试目的。该服务器目前没有名称 - 将作为快速部署的主映像。
  • 感谢 Pascal,只是为了我的理解而澄清
  • 我认为您还需要将位置 /phpMyAdmin 更改为位置 /phpMyAdmin/

标签: nginx


【解决方案1】:

这很容易。

Nginx 将位置的$uri 附加到root 指令($document_root 变量)。
您可以改用alias 指令:

location /phpMyAdmin {
 index   index.php;
 alias    /var/www/phpMyAdmin/htdocs/;
 access_log      /var/www/phpMyAdmin/logs/access.log;
 error_log       /var/www/phpMyAdmin/logs/error.log;
}

但是,phpMyAdmin 将不起作用,因为它不是静态文件。
我相信,您需要在 /phpmyadmin 中指定 php 的位置:
location ~ /phpMyAdmin/\.php$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 2014-06-19
    • 2012-11-05
    • 2015-10-15
    • 2016-11-11
    • 2017-11-17
    • 1970-01-01
    相关资源
    最近更新 更多