我正在尝试在我的EC2实例上安装phppgadmin,该实例具有ubuntu 16.04和apache。我遵循的步骤是:
- sudo apt-get -y install postgresql-contrib phppgadmin
- 编辑/etc/apache2/conf-available/phppgadmin.conf,并将"要求本地"行替换为"允许所有人"。 sudo ln -s/etc/apache2/conf-available/phppgadmin.conf/
- etc/apache2/sites-enabled/phppgadmin.conf
我已经在我的 000-default.conf 中创建了 vhost
。<VirtualHost *:80>
ServerName abc.domain.com
ServerAlias www.abc.domain.com
ServerAdmin webmaster@localhost
ProxyPreserveHost On
# setup the proxy
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
由于我的服务器上正在运行另一个应用程序,因此我为该应用程序创建了 vhost。但是每当我转到 http://myserverip/phppgadmin 时,它都会转到在端口 3000 上运行的应用程序。如何解决这个问题,我不知道我哪里做错了?
apache 只会对 HTTP 标头中的 ServerName 和 ServerAliases 做出反应,因此输入 http://myserverip/phppgadmin 将返回默认的 Vhost。
如果您输入 http://abc.domain.com/phppgadmin 应该导致您的申请 http://localhost:3000
编辑:apache 代理您的其他请求的原因是幽灵查找过程。Apache将遍历所有Vhosts以找到合适的,如果失败,它将按字母数字顺序选择第一个,在本例中为000-default.conf
。因此,每个不适合 phppgadmin 的请求都会代理到 localhost:3000
。
有关详细信息,请参阅 https://httpd.apache.org/docs/2.4/vhosts/details.html。