我正在尝试为mampstack设置一个虚拟主机(不是MAMP)。这就是我到目前为止所做的:
在我的httpd.conf文件中,我已经检查了
Listen 8080
这是正确的(我正在听8080端口,而不是80)
然后我在我的Include conf/extra/httpd-vhosts.conf
文件中取消注释:httpd.conf
在我的hosts文件中,我添加了以下内容:127.0.0.1 mext-pst.local
。
在httpd-vhosts.conf
我添加了:
NameVirtualHost *:8080
<VirtualHost *:8080>
DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs"
ServerName 127.0.0.1
ServerAlias localhost
SetEnv APPLICATION_ENV development
SetEnv APPLICATION_DOMAIN localhost
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs/mext-pst-dashboard/web"
ServerName mext-pst.local
ServerAlias mext-pst.local
SetEnv APPLICATION_ENV development
SetEnv APPLICATION_DOMAIN mext-pst.local
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^ http://%{HTTP_HOST}:8080%{REQUEST_URI} [P]
</VirtualHost>
现在当我转到http://mext-pst.local/
时,我的浏览器出现错误,导致他无法与该页面连接...。
当我转到http://mext-pst.local:8080/
时,我收到以下错误:
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /index.php.
Reason: DNS lookup failure for: mext-pst.local:8080
当我去http://mext-pst.local:8080/index.php
时,它有效......
答案 0 :(得分:2)
将8080更改为默认值80。但如果您希望您的网站在8080上运行,那么您必须使用它。另一个解决方案可能是重写url,即当你的服务器获取url时,它会用端口号(8080)重写它。
首先将Listen 8080改为Listen 80,因为您希望只有http才能访问您的应用程序。 在你的http-vhost.conf文件中放入以下行(当然在删除以前的更改后)。在以下配置中,yourDefaultHttpFolder表示默认的http文件夹。你可能已经改变了它。因此,根据您的系统进行更正。
<VirtualHost *:80>
DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs/yourDefaultHttpFolder"
ServerName 127.0.0.1
ServerAlias localhost
SetEnv APPLICATION_ENV development
SetEnv APPLICATION_DOMAIN localhost
<Directory /Applications/mampstack-5.4.20-0/apache2/htdocs/yourDefaultHttpFolder>
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^ http://%{HTTP_HOST}:8080%{REQUEST_URI} [P]
</Directory>
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "/Applications/mampstack-5.4.20-0/apache2/htdocs/mext-pst-dashboard/web"
ServerName mext-pst.local
ServerAlias mext-pst.local
SetEnv APPLICATION_ENV development
SetEnv APPLICATION_DOMAIN mext-pst.local
</VirtualHost>
此配置在我的服务器上运行,当我尝试使用80访问时,它会重写我的8080端口的URL,我看到该文件夹的内容,而不是默认索引页。
答案 1 :(得分:2)
您必须将端口更改为*:80,如果您要使用其他名称,则服务器名称确保在httpd.conf中使用NameVirtualHost *:80。
答案 2 :(得分:0)
由于您没有侦听端口80
,因此在没有端口的情况下转到URL时出错似乎是正确的结果,对吧?
当您前往8080
端口时,您将获得Proxy Error
。您确定端口8080
上没有运行其他软件,或者您的浏览器没有输入代理? Apache
不会给Proxy Error
。我怀疑这个错误来自其他地方。
关于您的配置,我不确定您要尝试的是什么,但是,如果您在转到localhost:8080
时尝试获取一些文档,并且在您去的时候提供另一组文档至少mext-pst.local:8080
到NameVirtualHost *:8080
,{{1}}是正确的,需要在那里,删除重定向行,因为你不需要它们(除非我的假设是错误的)。