Nginx找不到phpMyAdmin

您好,我已经安装了最新的稳定版本的Nginex(1.4.4),并希望安装phpMyAdmin,不幸的是,当我尝试通过http:// 192在我的浏览器中打开phpMyAdmin出现以下错误。 。 。 / phpMyAdmin的:

404 Not Found nginx/1.4.4 

究竟是什么原因,Nginx无法findphpMyAdmin文件?

这是我的/etc/nginx/nginx.conf文件的内容:

 user nginx; worker_processes 4; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; } 

许多问候

在你的文档根目录下创建一个符号并不是一个好主意,这只是要求在www中有一个phmyadmin快捷方式。

正确的方法是创建一个名为php的文件并添加到/ etc / nginx / sites-available。 您可以复制下面的文件,但将端口号更改为别的。

  server { listen 30425; # Don't want to log accesses. #access_log /dev/null main; access_log /var/log/nginx/php.acces_log main; error_log /var/log/nginx/php.error_log info; root /usr/share/phpmyadmin; index index.php index.html index.htm; error_page 401 403 404 /404.php; location ~ .*.php$ { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SERVER_NAME $http_host; fastcgi_ignore_client_abort on; } } 

现在,您需要对启用了网站的目录进行符号链接

ln -s / etc / nginx / sites-available / php // etc / nginx / sites-enabled

现在您需要将此代码添加到nginx.conf的Logging Settings部分

 log_format main '$remote_addr – $remote_user [$time_local] ' '”$request” $status $body_bytes_sent “$http_referer” ' '”$http_user_agent” “$http_x_forwarded_for”' ; 

现在您可以通过http://example.com:30425访问您的phpmyadmin

我按照https://www.digitalocean.com/community/articles/how-to-install-phpmyadmin-on-a-lemp-server上的指示操作,并通过以下命令链接了nginx和phpMyAdmin:

 sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html (the folder "www" was replaced in the newer versions of Nginx through "html") sudo service nginx restart 

如果我现在尝试通过“http:// 192。。。/ phpmyadmin”启动phpMyAdmin,那么在我的浏览器中会出现以下错误:

 403 Forbidden nginx/1.4.4 

如果我尝试通过“http:// 192 …。/ .phpmyadmin / index.php”来启动phpMyAdmin,index.php文件只能被下载。

许多问候

这里提供的答案没有帮助我,原因不明。 我怀疑我的conf文件的其他部分排除了进入phpmyadmin目录。

不想花费太长的时间修复它的工作,我只是将我的工作conf文件从www.example.com复制到phpmyadmin.example.com,并将目录设置为/ usr / share / phpmyadmin。 然后我做了nginx -s的重装,我很高兴没有遇到正确的403/502错误。 我也相信http://phpmyadmin.example.com比随机黑客尝试他们的脚本比http://www.example.com/phpmyadmin域更安全,但它确实需要为DNS的通配符设置正确您的域名,即,使地址解析到您的服务器。

希望这可以帮助任何人感到沮丧的简单任务,让phpmyadmin与Nginx的工作。

如user1941083解释。 您只需要在phpMyAdmin和您的网站目录之间建立一个符号链接。

 sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www 

之后,修改/ etc / nginx / sites-available中的nginx设置。 更改:

 index index.html index.html; 

至 :

 index index.html index.html index.php; 

只需尝试使用http://domain-name-or-ip-address/phpmyadmin/index.php

有时Nginx不会自动使用index.php,我们必须通过改变nginx.conf文件中的位置来告诉它,或者像上面那样手动添加index.php到url中。

我知道这是晚了,但我有一些在线教程和建议后,但没有成功,同样的问题。 我也尝试了@STH在这个页面上的答案,但仍然存在错误。

我不得不重新启动以下服务:

 sudo systemctl restart nginx.service sudo systemctl restart php-fpm 

这样做的技巧:将守护进程配置为在启动时启动,以确保所有LEMP程序在任何服务器重新启动后自动启动:

 sudo systemctl enable nginx mysqld php-fpm 

尝试创建phpmyadmin位置和nginx www之间的符号链接:

 sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html 

在这之后,你可以得到403 Forbidden,但是应该在index.html和其他的服务器标签里添加index.php:

 /etc/nginx/sites-available/default 

然后重新启动nginx