Nginx 反向代理到 LAMP 服务器:无法登录 phpmyadmin

Nginx 反向代理到 LAMP 服务器:无法登录 phpmyadmin

我对 apache 还不熟悉,对反向代理更是一窍不通,但我最终安装了一台带有 nginx(作为反向代理)和 apache 的服务器,以管理使用不同技术的网站。php 网站(下面称为 php_site)由 apache 处理,ruby on rails 网站由 nginx 处理。以后应该会添加更多网站。除了 phpmyadmin 之外,一切都运行良好。

我的问题:我可以进入 phpmyadmin 登录页面(通过www.php_site.org/phpmyadmin/xx.xx.xx.xxx:8080/phpmyadmin/,xx 是我的服务器外部 IP),但我无法登录。我很确定我有良好的凭证,但是当我提交表单时,phpmyadmin 登录页面只是重新加载,而不显示错误。

我的信心:

  • Ubuntu 16.04
  • php 5.6(因为旧项目需要它)
  • phpmyadmin 4.5.4.1
  • mysql 5.7.17
  • 阿帕奇/2.4.18

phpmyadmin 安装在/usr/share/phpmyadmin/

Nginx 配置(php_site):

# /opt/nginx/conf/conf.d/php_site.conf 
server {
  listen 80;
  server_name www.php_site.org;

  location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }

  location /phpmyadmin {
    proxy_pass http://127.0.0.1:8080/phpmyadmin;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }

 client_max_body_size 15M;

}

server {
    listen 80;
    server_name php_site.org;
    rewrite ^ http://www.php_site.org$request_uri? permanent;
}

Apache 配置(php_site):

# /etc/apache2/sites-available/php_site.conf
NameVirtualHost  *:8080

<VirtualHost *:8080>

  ServerName www.php_site.org
  ServerAdmin [email protected]
  DocumentRoot /var/www/php_site.com/htdocs


  <Directory /var/www/php_site.com/htdocs >
    AllowOverride All
    DirectoryIndex index.php
  </Directory>

  ErrorLog /var/log/apache2/php_site-error.log

  LogLevel warn

  CustomLog /var/log/apache2/php_site.log combined

</VirtualHost>

<VirtualHost *:8080>
    ServerName php_site.org
    Redirect permanent / http://www.php_site.org/
</VirtualHost>

问题 :

如果需要的话,请随时询问更多信息。

答案1

好吧,这是我的经典而又荒谬的谜团。

该问题实际上源于配置文件的旧更改。

我是怎么到那里的:亚历克斯建议,我更仔细地检查了我的日志/var/log/apache2/php_site-error.log,并在尝试连接时看到以下错误:

PHP Warning: Unknown: POST Content-Length of 122 bytes exceeds the limit of 20 bytes in Unknown on line 0.

这让我想起/etc/php/5.6/apache2/php.ini几天前我曾做过一个修改,更新了上传文件大小。从那天起似乎没有出现任何错误,所以我没有怀疑这个修改。

在 中php.ini,我注意到:post_max_size = 15。缺少“M”。一旦我更改为post_max_size = 15M并重新启动 apache,登录问题就解决了。

相关内容