如何在 nginx 中的虚拟服务器上启用 phpmyadmin?

如何在 nginx 中的虚拟服务器上启用 phpmyadmin?

我可以访问 localhost/phpmyadmin,但无法访问 www.project.com/phpmyadmin。'www.project.com' 是我的虚拟服务器。尝试访问 www.project.com/phpmyadmin 时,出现 404 错误。我在虚拟服务器的根目录中创建了 phpmyadmin 文件夹的符号链接。

我已经提到了 /etc/nginx/sites-available/project.com 上 /phpmyadmin 的位置。'project.com' 是 nginx 用于添加虚拟服务器的配置文件。

这是 project.com 的代码

server {

    listen *:80;
    listen [::]:80;



    root /home/dell/Projects/site/project;
    index index.php index.html index.htm;

    server_name www.project.*;

    access_log /home/dell/Projects/site/project/logs/access.log;
    error_log /home/dell/Projects/site/project/logs/error.log;

    location /phpmyadmin {     
        index index.php index.html index.htm;

        location ~ ^/phpmyadmin/(.+\.php)$ {
            try_files $uri =404;

            root /usr/share/;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
        }


        location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
            root /usr/share/;
        }
    }
    location /phpMyAdmin {
        rewrite ^/* /phpmyadmin last;
    }

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html{}

    location ~ \.php$ {
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

这是 /etc/hosts 文件的配置

127.0.0.1   localhost
127.0.1.1   dell-Inspiron-5423
127.0.1.1   www.project.com


# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

我用的是ubuntu14.04版本。

我需要配置 config.inc.php 吗?我也查看了其他类似的帖子,但没有帮助。

答案1

如果您使用位置内的位置,则不需要完整的 URL。有关此内容的更多信息这里

下面的配置可能不是最优的(您是否需要因为某种原因只允许列出的扩展?),但它应该可以工作。

请注意,您的 phpmyadmin 必须位于usr/share/phpmyadmin文件夹中,php 才能工作(因为如果您使用,则$document_root引用root /usr/share;和不会自动工作alias

location /phpmyadmin {     
    index index.php index.html index.htm;
    root /usr/share/;

    location ~ \.php$ {
        try_files $uri =404;

        root /usr/share/;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

相关内容