未找到Apache虚拟主机404

时间:2015-04-16 13:27:35

标签: php apache xampp virtualhost

我刚刚开始学习php,我正试图通过使用XAMPP在本地托管我自己的php网站。

我想用:

创建虚拟主机

网址:myphpwebsite.local

港口:8088

但是当我试图通过浏览器访问这个网站时,我得到了一个:

未找到 HTTP错误404.找不到请求的资源。

有谁知道问题是什么?

我的httpd-vhosts.conf

NameVirtualHost 127.0.0.1:8088
<VirtualHost 127.0.0.1:8088>
  DocumentRoot "C:/xampp/htdocs"
  ServerName localhost
</VirtualHost>

<VirtualHost myphpwebsite.local>
    DocumentRoot "C:/Microsoft/Workspace/myphpwebsite"
    ServerName myphpwebsite.local
    ErrorLog "C:/Microsoft/Workspace/myphpwebsite/logs/myphpwebsite.local.error.log"
    CustomLog "C:/Microsoft/Workspace/myphpwebsite/logs/myphpwebsite.local.custom.log" combined

   <Directory "C:/Microsoft/Workspace/myphpwebsite">
    Order allow,deny
    Allow from all
   </Directory>
</VirtualHost>

我的C:\ Windows \ System32 \ drivers \ etc \ hosts文件:

127.0.0.1       localhost
127.0.0.1 myphpwebsite.local

任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:1)

我不知道我是否有很多帮助,但使用WAMP,这是我的设置。我正在侦听端口80,我使用8080作为我的tomcat服务器。

托管文件

127.0.0.1  local.mysite.com

<强>的httpd-vhosts.conf

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80

....

<Directory "c:/wamp/www">
    Options Indexes MultiViews FollowSymLinks
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Directory>
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "c:/wamp/www"
</VirtualHost>

<Directory "c:/wamp/www/path/to/site/root">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
<VirtualHost *:80>
    ServerName local.mysite.com
    DocumentRoot "c:/wamp/www/path/to/site/root"

    ServerAdmin me@email.com

    ProxyPreserveHost Off
    RewriteEngine On
    AllowEncodedSlashes NoDecode
    #AllowEncodedSlashes On

    ErrorLog "c:/wamp/www/path/to/logs/error.log"
    CustomLog "c:/wamp/www/path/to/logs/access.log" common
</VirtualHost>

....

然后我可以访问我的本地网站:http://local.mysite.com

希望这会有所帮助......

答案 1 :(得分:1)

  1. 确保文件/ htaccess / index或您要打开的目录中的任何内容,404可能来自;)

  2. 尝试使用下面的一个,最终替换你的端口:

     <VirtualHost *:80>
         DocumentRoot "C:/Microsoft/Workspace/myphpwebsite"
         ServerName myphpwebsite.local
      </VirtualHost>
    
  3. 问题是你的Apache在端口8088上运行/服务? 例如,我的xamp在80和443上运行......

  4. xamp控制面板非常方便,它有很好的日志按钮,可以打开你的日志文件,向你显示php和apache错误等等。检查出来。

  5. 尝试使用默认端口,如果它正常工作,则意味着如果您真的想要使用端口,则需要使用端口。

    只是一个快速的提示,.com比.local短,如果你使用chrome并且它的工作方式与我的一样,那么大部分时间都是some.local会将你重定向到谷歌搜索(我喜欢我在那里搜索,你可以关掉它;))

答案 2 :(得分:0)

NameVirtualHost指令需要完全匹配VirtualHost的值,并且需要在每个实例中指定端口。如果你想为myphpwebsite.local使用端口8088,你需要这样做:

NameVirtualHost 127.0.0.1:8088
<VirtualHost 127.0.0.1:8088>
  DocumentRoot "C:/xampp/htdocs"
  ServerName localhost
</VirtualHost>

<VirtualHost 127.0.0.1:8088>
    DocumentRoot "C:/Microsoft/Workspace/myphpwebsite"
    ServerName myphpwebsite.local
    ErrorLog "C:/Microsoft/Workspace/myphpwebsite/logs/myphpwebsite.local.error.log"
    CustomLog "C:/Microsoft/Workspace/myphpwebsite/logs/myphpwebsite.local.custom.log" combined

   <Directory "C:/Microsoft/Workspace/myphpwebsite">
    Order allow,deny
    Allow from all
   </Directory>
</VirtualHost>

请注意VirtualHost开头标记是相同的;它是ServerName值实际告诉Apache这个特定指令适用于哪个域。进行更改后重新启动服务器。有关详细信息,请查看此页面:http://httpd.apache.org/docs/2.2/vhosts/name-based.html

希望这有帮助!

答案 3 :(得分:0)

确保所使用的端口未被其他服务使用。