config apache2 for phpmyadmin behind HAproxy



我正在寻找解决我的问题的方法,但是我仍然无法解决它。

我在云虚拟机上有一个防火墙(pfsense),我有一个反向代理(HAproxy),用于在2个后端服务器上平衡和卸载https。这两个服务器是经典的LAMP (Ubuntu Apache2 2.4.53, PHP 7.4, MySQL)我在不同的端口上使用phpmyadmin(假设是1234),并且我在反向代理上使用相同的域(example.com),该代理平衡到lamp1或lamp2取决于哪个地址:

  • example.com: 1234/phpmyadmin1 =比;LAMP1
  • example.com: 1234/phpmyadmin2 =比;LAMP2

所有这些都很好,但由于我仍在学习,我犯了几个月后我意识到的错误。我可以用php-fpm代替php-mod,我想用php8.1和php7.4和大错误我的Ubuntu版本是21.04(是的,我愚蠢地错误与LTS…)因此,为了完成所有这些工作,我最终决定在新VM上重新安装:LAMP3

我有我的新LAMP3与phpmyadmin,我跟随DigitalOcean教程PHP-FPM,用简单的网页测试,我可以切换到php8.1或php7.4。一切听起来都很好。

现在我想在反向代理中集成LAMP3,以便将example.com:1234/phpmyadmin3重定向到我的phpmyadmin

当我在VPN上,我可以尝试http://10.0.0.3:1234/phpmyadmin3,它的工作。但是当我尝试从互联网https://example.com:1234/phpmyadmin3,我有一个错误404未找到。

这个错误404意味着我在服务器上,而不是在反向代理上。所以我被重定向到正确的地方。

我更改了使用原始别名(/phpmyadmin)的配置,并在反向代理上更新了它。你猜怎么着,它起作用了!我确信它是LAMP3,因为我有php8.1的phpmyadmin(我没有在其他两个LAMP)

我尝试在虚拟主机中包含默认的phpmyadmin,但我更喜欢在一个地方,所以我做了一个虚拟主机phpmyadmin.conf与所有信息(见下文)我禁用phpmyadmin在apache conf (a2disconf phpmyadmin)我在这个虚拟主机中尝试了很多不同的东西,现在我迷路了

我再次重复,但是当我将别名从/phpmyadmin3更改为/phpmyadmin时,一切都正常工作。

为什么,怎么解决呢?我的别名怎么了?

phpmyadmin.conf

<VirtualHost *:17380>
ServerName localhost
Alias /phpmyadmin3 /usr/share/phpmyadmin
DocumentRoot /usr/share/phpmyadmin
DirectoryIndex index.php
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<FilesMatch .php$>
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/phpmyadmin.error.log
CustomLog ${APACHE_LOG_DIR}/phpmyadmin.access.log combined
</VirtualHost>
VirtualHost *:17380>
ServerName example.com
Alias /phpmyadmin3 /usr/share/phpmyadmin
DocumentRoot /usr/share/phpmyadmin
DirectoryIndex index.php
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
Require all granted
</Directory>
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<FilesMatch .php$>
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/phpmyadmin.error.log
CustomLog ${APACHE_LOG_DIR}/phpmyadmin.access.log combined
</VirtualHost>

Ubuntu 22.04
apache 2.4.53
mysql 5.7.38
php-fpm7.4
php-fpm8.1

我希望这能解决我的问题…

我没有使用别名/phpmyadmin3,而是使用别名/pma3和/test

如此如此……我猜是服务器上有缓存的东西吧?我在不同的电脑上用不同的浏览器在私人模式下尝试过。

Solve I guess

最新更新