Php 项目链接在Wamp服务器上不起作用
我正在另一台计算机上安装Wamp服务器,以运行中型数据库和UI。我成功地阻止了IIS并将服务器路由到本地主机:8080。但每当我试图从本地主机主页访问www文件中的项目时;我被重定向到未找到的页面错误 当我将鼠标悬停在链接上方时,目录总是出现“http://ProjectFolderNameHere/”。当它应该是“http://LocalHost:8080/ProjectFolderNameHere/”时。我该怎么做才能使链接正常工作 我的机器在Windows 7 Home Edition 64位上运行,我已经禁用了Microsoft的IIS。如何在WampServer中创建虚拟主机Php 项目链接在Wamp服务器上不起作用,php,mysql,apache,wamp,wampserver,Php,Mysql,Apache,Wamp,Wampserver,我正在另一台计算机上安装Wamp服务器,以运行中型数据库和UI。我成功地阻止了IIS并将服务器路由到本地主机:8080。但每当我试图从本地主机主页访问www文件中的项目时;我被重定向到未找到的页面错误 当我将鼠标悬停在链接上方时,目录总是出现“http://ProjectFolderNameHere/”。当它应该是“http://LocalHost:8080/ProjectFolderNameHere/”时。我该怎么做才能使链接正常工作 我的机器在Windows 7 Home Edition 6
WAMPServer3使这个过程变得更加简单! 您几乎可以从作为WAMPServer一部分提供的实用程序中执行所有操作
- 在其中创建文件夹以包含project.site。这可以在
目录下,也可以在一个完全独立的文件夹中,如C:\wamp\www\
C:\websites
- 在您选择的位置内创建一个文件夹,例如
或C:\websites\project1\www
C:\wamp\www\project1\www
- 现在打开localhost
并单击主页上工具部分下的链接wampmanager->localhost
添加虚拟主机
<VirtualHost *:80>
DocumentRoot "d:/websites/example.com/www"
ServerName example.dev
ServerAlias www.example.dev
<Directory "d:/websites/example.com/www">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
php_flag display_errors Off
php_flag log_errors On
php_value max_upload_size 40M
php_value max_execution_time 60
php_value error_log "d:/wamp/logs/example_com_phperror.log"
</VirtualHost>
- 按照每个字段上方的说明填写字段
- 将为您创建虚拟主机配置
- 现在必须重新启动DNS缓存。您可以从wampmanager菜单中执行此操作,如下所示
。DNS缓存将重新启动,然后Apache也将停止并重新启动。当wampmanager图标再次变为绿色时,所有操作都已完成右键单击wampmanager->工具->重新启动DNS
- 现在,您必须创建一个简单的
文件,或者将您的站点安装到上面创建的文件夹中index.php
- 假设您的VH名为
,您应该在WAMPServer主页的您的虚拟主机部分中看到该名称project.dev
- 您可以从此菜单启动站点,或者只使用地址栏中的新域名,例如
,然后站点就可以启动了project1.dev
旧的WAMPServer2.5机制,或者如果您想手动完成这一切 WAMPServer2.5及以上版本的概念发生了变化,这是一个很好的理由 在WampServer中,现在强烈建议您为每个项目创建一个虚拟主机,即使您将它们保存在
\wamp\www\subfolder
结构中
WampServer主页(\wamp\www\index.php
)现在希望您已经为所有项目创建了一个虚拟主机,因此只有这样才能正常工作
历史
为了让使用WampServer的初学者更轻松地学习PHP Apache和MySQL,建议您在\wamp\www\
文件夹下创建子文件夹
wamp
|-- www
|-- Chapter1
|-- Chapter2
|-- etc
然后,这些子文件夹将在WampServer主页的“您的项目”菜单下显示为链接,这些链接将包含指向localhost/subfoldername
的链接
仅适用于简单教程
这使完全初学者的生活变得简单,对于学习PHP编码的教程后面的人来说,这是完全可以接受的。
但是,当开发一个真正的网站时,您以后可能希望将其复制到您的实时托管服务器上时,它从未打算使用。
事实上,如果您确实使用了这种机制,它通常会导致问题,因为live sites配置与您的开发配置不匹配
真正的网站开发问题
原因当然是wamp的默认DocumentRoot设置为
DocumentRoot“c:/wamp/www/”
不管你的子文件夹被调用了什么。
这是一个经常使用PHP代码查询结构或站点的示例,在开发WampServer上运行时收到的信息与在实时托管服务器上运行时收到的信息不同,其中DocumentRoot配置指向网站文件层次结构顶部的文件夹。
这种代码存在于许多框架和CMS中,例如WordPress和Joomla等
例如
假设我们在wamp\www\project1
中有一个名为project1的项目,它作为localhost/project1/index.php
下面是一些有问题的PHP命令所报告的内容:
$_SERVER['HTTP_HOST'] = localhost
$_SERVER['SERVER_NAME'] = localhost
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www
现在,如果我们使用虚拟主机定义正确地定义了该站点,并以http://project1
WAMPServer开发站点上的结果将与在实时托管环境中收到的结果相匹配
$_SERVER['HTTP_HOST'] = project1
$_SERVER['SERVER_NAME'] = project1
$_SERVER['DOCUMENT_ROOT'] = c:/wamp/www/project1
现在,这种差异一开始似乎微不足道,但如果您使用WordPress之类的框架或Joomla之类的CMS框架,当您将站点移动到实时服务器时,这可能并且确实会导致问题
如何在WampServer中创建虚拟主机
实际上,这对于任何wndows Apache服务器来说基本上都是一样的,只是在您可以找到Apache配置文件的地方有所不同
在Apache中创建第一个虚拟主机有3个步骤,如果已经定义了虚拟主机,则只有2个步骤
httpd hosts.conf
的文件
\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf
(Apache版本号可能不同,请在继续之前与brain联系)
如果这是你第一次
<VirtualHost *:80>
DocumentRoot "c:/wamp/www"
ServerName localhost
ServerAlias localhost
<Directory "c:/wamp/www">
Options Indexes FollowSymLinks
AllowOverride All
Require local
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "c:/wamp/www/project1"
ServerName project1
<Directory "c:/wamp/www/project1">
Options Indexes FollowSymLinks
AllowOverride All
Require local
</Directory>
</VirtualHost>
Require local
127.0.0.1 localhost
127.0.0.1 project1
::1 localhost
::1 project1
net stop dnscache
net start dnscache
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
wampmanager.exe -> Apache -> Service -> Restart Service
cd \wamp\bin\apache\apache2.4.9\bin
httpd -t
Syntax OK
D:
MD websites
CD websites
MD example.com
CD example.com
MD www
<VirtualHost *:80>
DocumentRoot "d:/websites/example.com/www"
ServerName example.dev
ServerAlias www.example.dev
<Directory "d:/websites/example.com/www">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
php_flag display_errors Off
php_flag log_errors On
php_value max_upload_size 40M
php_value max_execution_time 60
php_value error_log "d:/wamp/logs/example_com_phperror.log"
</VirtualHost>
127.0.0.1 localhost
::1 localhost
127.0.0.1 project1
::1 project1
127.0.0.1 example.dev
::1 example.dev
$suppress_localhost = false;
$suppress_localhost = true;
$suppress_localhost = false;
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : '').$file.'">'.$file.'</a></li>';
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : 'http://localhost//').$file.'">'.$file.'</a></li>';
Parameters: "http://'.$projectContents[$i].'/"; Glyph: 5
Parameters: "http://localhost//'.$projectContents[$i].'/"; Glyph: 5
$suppress_localhost = false;
Alias /icons/ "c:/Apache24/icons/"
<Directory "c:/Apache24/icons">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
Alias /icons/ "c:/wamp/bin/apache/apache2.4.9/icons/"
<Directory "c:/wamp/bin/apache/apache2.4.9/icons">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
# Tells Apache to identify which site by name
NameVirtualHost *:80
# Tells Apache to serve the default WAMP Server page to "localhost"
<VirtualHost 127.0.0.1>
ServerName localhost
DocumentRoot "C:/wamp/www"
</VirtualHost>
# Tells Apache to serve Client 1's pages to "client1.localhost"
# Duplicate and modify this block to add another client
<VirtualHost 127.0.0.1>
# The name to respond to
ServerName client1.localhost
# Folder where the files live
DocumentRoot "C:/wamp64/www/sites/mysite"
# A few helpful settings...
<Directory "C:/wamp64/www/sites/mysite">
allow from all
order allow,deny
# Enables .htaccess files for this site
AllowOverride All
</Directory>
# Apache will look for these two files, in this order, if no file is specified in the URL
DirectoryIndex index.html index.php
</VirtualHost>