Home > OS >  my_ip/phpmyadmin shows 404 Not Found on Nginx and after one tutorial instead loading my website it d
my_ip/phpmyadmin shows 404 Not Found on Nginx and after one tutorial instead loading my website it d

Time:10-16

Trying to install phpMyAdmin on Nginx. Following all tutorials carefully, but when head my website my_IP/phpmyadmin I get 404 Not Found anyway. And when I was loading my website by typing my IP address I got my website. But after following this tutorial instead of showing my website my browser downloads file "download". I deletted that code piece from tutorial, restarted Nginx, but browser still downloads a "download" file instead of heading my website. And when I type my_IP/phpmyadmin I still get 404 Not Found. How I can get my settings back and run phpMyAdmin on my Nginx server? Here is /etc/nginx/sites-available/default settings:

    server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # SSL configuration
    #
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server;
    #
    # Note: You should disable gzip for SSL traffic.
    # See: https://bugs.debian.org/773332
    #
    # Read up on ssl_ciphers to ensure a secure configuration.
    # See: https://bugs.debian.org/765782
    #
    # Self signed certs generated by the ssl-cert package
    # Don't use them in a production server!
    #
    # include snippets/snakeoil.conf;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
    }

    # pass PHP scripts to FastCGI server
    #
    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
    #
    #       # With php-fpm (or other unix sockets):
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    #       # With php-cgi (or other tcp sockets):
    #       fastcgi_pass 127.0.0.1:9000;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
            deny all;
    }
    location /phpmyadmin {
       root /usr/share/;
       index index.php index.html index.htm;
       location ~ ^/phpmyadmin/(. \.php)$ {
               try_files $uri =404;
               root /usr/share/;
               fastcgi_pass unix:/run/php/php8.1-fpm.sock;
               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/;
       }
    }

}

UPD: Updated my PHP8.1, uncommented some important code pieces and added location /phpmyadmin code piece from that tutorial. Looks like page is loading correctly, but my_IP/phpmyadmin still loads 404 Not Found.

CodePudding user response:

Finally figured it out myself. Actually in directory /etc/nginx/sites-available/ I already had two files, default and my_website.com. That piece of code I put into default. But now I moved this code to my_website.com file and it worked:

location /phpmyadmin {
   root /usr/share/;
   index index.php index.html index.htm;
   location ~ ^/phpmyadmin/(. \.php)$ {
           try_files $uri =404;
           root /usr/share/;
           fastcgi_pass unix:/run/php/php8.1-fpm.sock;
           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/;
   }
}

Thank you for attention!

  • Related