我正在寻找解决我的问题的方法,但是我仍然无法解决它。
我在云虚拟机上有一个防火墙(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