Назад | Перейти на главную страницу

Невозможно получить доступ к phpmyadmin с помощью nginx под debian «Не указан входной файл».

Я установил Nginx, php-fpm, mysql и phpmyadmin ..

Когда я набираю myserver.com, я вижу «Добро пожаловать в nginx!».

Но когда я набираю myserver.com/phpmyadmin, я получаю: «Входной файл не указан». Я знаю, что это, вероятно, проблема с путем, но я не могу найти где ...: S

Файл конфигурации:

/ и т.д. / nginx / сайты-доступные / по умолчанию

server {
        listen   80; ## listen for ipv4; this line is default and implied
        listen   [::]:80 default_server ipv6only=on; ## listen for ipv6

        root /usr/share/nginx/www;
        index index.php  index.html index.htm;

        # Make site accessible from http://localhost/
        server_name _;

        location / {

                try_files $uri $uri/ /index.html;

        }

        location /doc/ {
                alias /usr/share/doc/;
                autoindex on;
                allow 127.0.0.1;
                allow ::1;
                deny all;
        }


        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;

                #fastcgi_pass 127.0.0.1:9000;

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

}

/etc/nginx/sites-availables/www.myserver.com.vhost

server {
       listen 80;
       server_name www.server.com server.com;
       root /usr/share/nginx/www.akdom.net;
       if ($http_host != "www.akdom.net") {
                 rewrite ^ http://www.akdom.net$request_uri permanent;
       }
       index index.php index.html;
       location = /favicon.ico {
                log_not_found off;
                access_log off;
       }
       location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
       }
       # Make sure files with the following extensions do not get loaded by nginx because nginx would display the s$
        location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..$
                deny all;
        }
       # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
       location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
       }
       location ~*  \.(jpg|jpeg|png|gif|css|js|ico)$ {
                expires max;
                log_not_found off;
       }
       location ~ \.php$ {
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }
        location /phpmyadmin {
               root /usr/share/;
               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;
        }
}

В / usr / share / У меня есть phpmyadmin /, nginx / www / и nginx / www.exemple.com /

Как исправить эту ошибку? Что вызывает это?

Спасибо за ваше время.

В файле /etc/nginx/sites-availables/www.myserver.com.vhost

Измените строку root /usr/share/; внутри местоположения / phpmyadmin в: root /usr/share/phpmyadmin/;

Здесь вы стали жертвой правил выбора местоположения.

Чтобы это работало, вам нужно сделать ваше местоположение / phpmyadmin более предпочтительным, чем местоположение ~ .php $. Для этого мы должны учитывать, что документация говорит о местонахождении.

По сути, единственные местоположения, более конкретные, чем местоположение регулярного выражения, - это точное совпадение = и отрицательное местоположение регулярного выражения ^ ~

Точное соответствие здесь не лучший вариант, поэтому нам нужно использовать отрицательное расположение регулярного выражения.

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

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

                   fastcgi_pass 127.0.0.1:9000;

                   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                   include /etc/nginx/fastcgi_params;
           }

           location ~* \.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
                   root /usr/share; # If you're only setting root then this is not needed.
           }

           location ~ /\. { # We need to duplicate this so that we don't serve htaccess/passwd files for this subdir.
                   deny all;
                   access_log off;
                   log_not_found off;
           }
    }