WAMP Virtualhost无法与Laravel实例一起使用 [英] WAMP Virtualhost not working with Laravel instance

查看:73
本文介绍了WAMP Virtualhost无法与Laravel实例一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用WAMP 3.1.0在本地处理Laravel项目,直到今天进行Windows更新之前,一切都可以正常工作.

当我进入项目时,我得到一个错误页面

我关注了这篇帖子 WAMP虚拟主机不起作用,但是没有解决我的问题.
我已经在管理模式下编辑了C:\ Windows \ System32 \ drivers \ etc \ hosts文件,如下所示:

127.0.0.1 localhost
::1 localhost

127.0.0.1 test.dev
::1 test.dev

127.0.0.1 shoppingcart.dev
::1 shoppingcart.dev

127.0.0.1 gitproject.dev
::1 gitproject.dev

我还编辑了C:\ wamp64 \ bin \ apache \ apache2.4.27 \ conf \ extra \ httpd-vhosts.conf文件,如下所示:

# Virtual Hosts
#
<VirtualHost *:80>
  ServerName localhost
  DocumentRoot "${INSTALL_DIR}/www"
</VirtualHost>

<VirtualHost *:80>
  ServerName test.dev
  #ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www/test/public"
  ErrorLog "logs/localhost-error.log"
  CustomLog "logs/localhost-access.log" common
  <Directory "${INSTALL_DIR}/www/test/public">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName shoppingcart.dev
  #ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www/shoppingcart/public"
  #<Directory "${INSTALL_DIR}/www/">
  #  Options +Indexes +Includes +FollowSymLinks +MultiViews
  #  AllowOverride All
  #  Require local
  #</Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName gitproject.dev
  #ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www/git_project/public"
  #<Directory "${INSTALL_DIR}/www/">
  #  Options +Indexes +Includes +FollowSymLinks +MultiViews
  #  AllowOverride All
  #  Require local
  #</Directory>
</VirtualHost>

当我这样访问我的页面时 http://localhost/test/public/order/23456 我的页面已加载,但是当我尝试 http://test.dev/order/23456 时,它没有.

我正在使用Apache 2.4.27

谁能告诉我发生了什么事?

这也是我的C:\ wamp64 \ bin \ apache \ apache2.4.27 \ conf \ httpd.conf文件:

ServerSignature On
ServerTokens Full
Define APACHE24 Apache2.4
Define VERSION_APACHE 2.4.27
Define INSTALL_DIR c:/wamp64
Define APACHE_DIR ${INSTALL_DIR}/bin/apache/apache${VERSION_APACHE}
ServerRoot "${APACHE_DIR}"
Listen 0.0.0.0:80
Listen [::0]:80
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule php5_module "${INSTALL_DIR}/bin/php/php5.6.31/php5apache2_4.dll"
<IfModule unixd_module>
User daemon
Group daemon
</IfModule>
ServerAdmin wampserver@wampserver.invalid
ServerName localhost:80
<Directory />
    AllowOverride none
    Require all denied
</Directory>
HostnameLookups Off
DocumentRoot "${INSTALL_DIR}/www"
<Directory "${INSTALL_DIR}/www/">
    Options +Indexes +FollowSymLinks +Multiviews
    AllowOverride all
    Require local
</Directory>
<IfModule dir_module>
    DirectoryIndex index.php index.php3 index.html index.htm
</IfModule>
<Files ".ht*">
    Require all denied
</Files>
ErrorLog "${INSTALL_DIR}/logs/apache_error.log"
LogLevel warn
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "${INSTALL_DIR}/logs/access.log" common
</IfModule>
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "${INSTALL_DIR}/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "${INSTALL_DIR}/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>
<IfModule headers_module>
    RequestHeader unset Proxy early
</IfModule>
<IfModule mime_module>
    TypesConfig conf/mime.types
    AddEncoding x-compress .Z
    AddEncoding x-gzip .gz .tgz
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
</IfModule>
EnableSendfile off
AcceptFilter http none
AcceptFilter https none
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-vhosts.conf
<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
Include "${INSTALL_DIR}/alias/*"

解决方案

您应该知道的第一件事是.dev tLD现在是真实的tLD,已被Google收购.因此,从Chrome 63(自2017年12月起)开始,Chrome本身将强制所有以.dev(和.foo)结尾的域通过预加载的HTTP严格传输安全(HSTS)标头重定向到HTTPS.

所以我们都应该停止使用.dev并使用其他功能,建议使用.localhost.test.

对此的一个简单测试是尝试使用FireFox或IE(而不是Chrome)访问您当前配置的网站.如果它在其他浏览器中运行,则您的某些问题与Chrome更改有关,这些更改会自动重定向.dev域.

第二,您的虚拟主机定义不好.在WAMPServer中有一段时间了,WAMPServer中提供了一个工具,可帮助您轻松,正确地创建虚拟主机.在工具菜单下的WAMPSever主页中找到名为添加虚拟主机的链接(见下文).

您需要做的是首先,然后运行添加虚拟主机"工具.

我建议您将httpd-vhosts.conf文件恢复到其初始状态,该状态仅包含localhost的定义

#
# Virtual Hosts
#

<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName localhost
    DocumentRoot "${INSTALL_DIR}/www"
    <Directory "${INSTALL_DIR}/www/">
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

然后使用添加虚拟主机"菜单,再次创建您的虚拟主机,但是这次使用paycafe.localhost.

I'm working on a Laravel project locally using WAMP 3.1.0 and everything was working correctly until there was a windows update today.

When I go to my project I get an error page

I followed this post WAMP Virtual Host not working but that didn't solve my problem.
I've edited my C:\Windows\System32\drivers\etc\hosts file in admin mode which looks like this:

127.0.0.1 localhost
::1 localhost

127.0.0.1 test.dev
::1 test.dev

127.0.0.1 shoppingcart.dev
::1 shoppingcart.dev

127.0.0.1 gitproject.dev
::1 gitproject.dev

I've also edited my C:\wamp64\bin\apache\apache2.4.27\conf\extra\httpd-vhosts.conf file which looks like this:

# Virtual Hosts
#
<VirtualHost *:80>
  ServerName localhost
  DocumentRoot "${INSTALL_DIR}/www"
</VirtualHost>

<VirtualHost *:80>
  ServerName test.dev
  #ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www/test/public"
  ErrorLog "logs/localhost-error.log"
  CustomLog "logs/localhost-access.log" common
  <Directory "${INSTALL_DIR}/www/test/public">
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require local
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName shoppingcart.dev
  #ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www/shoppingcart/public"
  #<Directory "${INSTALL_DIR}/www/">
  #  Options +Indexes +Includes +FollowSymLinks +MultiViews
  #  AllowOverride All
  #  Require local
  #</Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName gitproject.dev
  #ServerAlias localhost
  DocumentRoot "${INSTALL_DIR}/www/git_project/public"
  #<Directory "${INSTALL_DIR}/www/">
  #  Options +Indexes +Includes +FollowSymLinks +MultiViews
  #  AllowOverride All
  #  Require local
  #</Directory>
</VirtualHost>

When I visit my page like this http://localhost/test/public/order/23456 my page loads but when I try http://test.dev/order/23456 it doesn't.

I'm using apache 2.4.27

Can anyone tell me what's going on?

Also, this is my C:\wamp64\bin\apache\apache2.4.27\conf\httpd.conf file :

ServerSignature On
ServerTokens Full
Define APACHE24 Apache2.4
Define VERSION_APACHE 2.4.27
Define INSTALL_DIR c:/wamp64
Define APACHE_DIR ${INSTALL_DIR}/bin/apache/apache${VERSION_APACHE}
ServerRoot "${APACHE_DIR}"
Listen 0.0.0.0:80
Listen [::0]:80
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule php5_module "${INSTALL_DIR}/bin/php/php5.6.31/php5apache2_4.dll"
<IfModule unixd_module>
User daemon
Group daemon
</IfModule>
ServerAdmin wampserver@wampserver.invalid
ServerName localhost:80
<Directory />
    AllowOverride none
    Require all denied
</Directory>
HostnameLookups Off
DocumentRoot "${INSTALL_DIR}/www"
<Directory "${INSTALL_DIR}/www/">
    Options +Indexes +FollowSymLinks +Multiviews
    AllowOverride all
    Require local
</Directory>
<IfModule dir_module>
    DirectoryIndex index.php index.php3 index.html index.htm
</IfModule>
<Files ".ht*">
    Require all denied
</Files>
ErrorLog "${INSTALL_DIR}/logs/apache_error.log"
LogLevel warn
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "${INSTALL_DIR}/logs/access.log" common
</IfModule>
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "${INSTALL_DIR}/cgi-bin/"
</IfModule>
<IfModule cgid_module>
</IfModule>
<Directory "${INSTALL_DIR}/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>
<IfModule headers_module>
    RequestHeader unset Proxy early
</IfModule>
<IfModule mime_module>
    TypesConfig conf/mime.types
    AddEncoding x-compress .Z
    AddEncoding x-gzip .gz .tgz
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
</IfModule>
EnableSendfile off
AcceptFilter http none
AcceptFilter https none
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-vhosts.conf
<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
Include "${INSTALL_DIR}/alias/*"

解决方案

The first thing you should know is that the .dev tLD is now a real tLD and has been bought by Google. So as of Chrome 63 (out since December 2017), Chrome itself will force all domains ending on .dev (and .foo) to be redirected to HTTPS via a preloaded HTTP Strict Transport Security (HSTS) header.

So we should all stop using .dev and use something else, suggestions are to use .localhost or .test.

A simple test for this would be to try using FireFox or IE instead of Chrome to access your current configured site. If it runs in another browser, some of your problem is related to the Chrome changes that redirect .dev domains automatically.

Secondly, your Virtual Host definitions are not good. For some time now in WAMPServer there has been a tool provided within WAMPServer to help you create Virtual Hosts easily and correctly. Look at the WAMPSever homepage under the Tools menu for a link called Add Virtual Host (see below).

All you need to do is first create the folder that you want the site to live in before running the "Add Virtual Host" tool.

I suggest you revert your httpd-vhosts.conf file back to its initial state which contains only a definition for localhost

#
# Virtual Hosts
#

<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName localhost
    DocumentRoot "${INSTALL_DIR}/www"
    <Directory "${INSTALL_DIR}/www/">
        Options +Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
    </Directory>
</VirtualHost>

And then using the "Add Virtual Host" menu, create your Virtual Hosts again, but this time using paycafe.localhost for example.

这篇关于WAMP Virtualhost无法与Laravel实例一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆