Php 项目链接在Wamp服务器上不起作用

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

我正在另一台计算机上安装Wamp服务器,以运行中型数据库和UI。我成功地阻止了IIS并将服务器路由到本地主机:8080。但每当我试图从本地主机主页访问www文件中的项目时;我被重定向到未找到的页面错误

当我将鼠标悬停在链接上方时,目录总是出现“http://ProjectFolderNameHere/”。当它应该是“http://LocalHost:8080/ProjectFolderNameHere/”时。我该怎么做才能使链接正常工作

我的机器在Windows 7 Home Edition 64位上运行,我已经禁用了Microsoft的IIS。

如何在WampServer中创建虚拟主机
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菜单中执行此操作,如下所示
    右键单击wampmanager->工具->重新启动DNS
    。DNS缓存将重新启动,然后Apache也将停止并重新启动。当wampmanager图标再次变为绿色时,所有操作都已完成

  • 现在,您必须创建一个简单的
    index.php
    文件,或者将您的站点安装到上面创建的文件夹中

  • 假设您的VH名为
    project.dev
    ,您应该在WAMPServer主页的您的虚拟主机部分中看到该名称

  • 您可以从此菜单启动站点,或者只使用地址栏中的新域名,例如
    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.conf中包含虚拟主机定义文件的行的注释
  • 步骤1,创建虚拟主机定义

    编辑WampServer所在的名为
    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>