nginx根指向错误的文件夹

Posted

技术标签:

【中文标题】nginx根指向错误的文件夹【英文标题】:nginx root points to wrong folder 【发布时间】: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/ 【参考方案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$

【讨论】:

以上是关于nginx根指向错误的文件夹的主要内容,如果未能解决你的问题,请参考以下文章

nginx 编译参数详解(运维必看--转)

VirtualHost - 将所有域指向根文件夹,将一个域指向根文件夹中的子文件夹

XAMPP 指向根文件夹外的文件

nginx如何指向本地路径及500错误

nginx如何指向本地路径及500错误

nginx reload无效解决方法