我刚刚开始学习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
任何帮助将不胜感激!
答案 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)
确保文件/ htaccess / index或您要打开的目录中的任何内容,404可能来自;)
尝试使用下面的一个,最终替换你的端口:
<VirtualHost *:80>
DocumentRoot "C:/Microsoft/Workspace/myphpwebsite"
ServerName myphpwebsite.local
</VirtualHost>
问题是你的Apache在端口8088上运行/服务? 例如,我的xamp在80和443上运行......
xamp控制面板非常方便,它有很好的日志按钮,可以打开你的日志文件,向你显示php和apache错误等等。检查出来。
尝试使用默认端口,如果它正常工作,则意味着如果您真的想要使用端口,则需要使用端口。
只是一个快速的提示,.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)
确保所使用的端口未被其他服务使用。