2

我无法使用 ZEND 启动和运行虚拟服务器。我已经按照安装程序在我的 C:/ 驱动器中设置了一个项目。但是,浏览器不会选择该站点。

我更改了 appache 配置文件以取消注释以下行。

# 虚拟主机

 Include conf/extra/httpd-vhosts.conf

我根据 zend 网站上包含的快速入门信息,使用以下代码更改了 vhosts.conf 文件。项目文件夹位于 C:\zendProject\quickstart\public

<VirtualHost *:8080>
    ServerName local
    DocumentRoot /zendProject/quickstart/public

    SetEnv APPLICATION_ENV "development"

    <Directory /zendProject/quickstart/public>
       DirectoryIndex index.php
       AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>

    </VirtualHost>

然后,我将主机文件更改为使用以下几行进行读取。

127.0.0.1 本地主机

127.0.0.1 本地

::1 本地主机

然后我使用 vista 服务管理器重新启动了 appache 服务器。我检查了 ZEND 控制面板的基本网页,这是正常的,因此服务器肯定可以运行,但我收到一条消息,说浏览器无法连接到本地。

有谁知道我做错了什么?

我刚刚查看了错误日志并发现了以下条目 - 不确定这是否有帮助 [Sun Aug 19 12:05:38 2012] [warn] NameVirtualHost *:8080 has no VirtualHosts

4

3 回答 3

1

您几乎可以将所需的任何端口与 vhost 一起使用,只需确保您有如下一行: NameVirtualHost *:80vhost 文档中的某处。此行指定 apache 用于路由的端口。大多数预构建的服务器(WAMP、Xampp、Zend Server)都会附带一个httpd-vhosts.conf通常包含此行的模板。有时它仍然被注释,无论哪种方式确保它在那里并且未注释并反映您要使用的端口。

此外,如果您在虚拟主机中使用 Zend Framework MVC 项目,您希望FollowSymlinks

这是一个工作 httpd-vhosts.conf 的完整示例:

#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>
    DocumentRoot "C:\Zend\Apache2/htdocs"
    ServerName localhost
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "E:\www\home-local\public"
    ServerName home.local
    ErrorLog "E:\www\home-local\logs\error.log"
    <Directory "E:\www\home-local" >
        Options Indexes FollowSymLinks
        AllowOverride all
        Order deny,allow
        Allow from all
    </Directory>   
</VirtualHost>

这是为我的开发环境修改的 Zend Server CE 提供的 httpd-vhosts.conf。

还有一些笔记。

  • 如果您希望使用 localhost,请确保将其添加到您的 vhosts 文件并使其成为第一个vhost
  • 如果您有多个托管站点的目录,您可以将目录定义放在您的虚拟主机中,事实上,对顶级目录应用严格的访问权限并只放松您在虚拟主机中需要的内容是有帮助的
  • 与往常一样,请确保您记得确保未注释 mod_rewrite:
    LoadModule rewrite_module modules/mod_rewrite.so
  • 对httpd.confhttp-vhosts.conf进行任何更改后,始终重新启动 Apache
于 2012-08-21T10:37:39.453 回答
0

首先,您已将端口设置为 8080 ,将其更改为 *.80

您的配置应如下所示:

<VirtualHost *:80>
    ServerName local
    DocumentRoot C:\zendProject\quickstart\public
    SetEnv APPLICATION_ENV "development"
</VirtualHost>

在 Windows 中,路径以C:\而不是开头/

也看看这个启动教程

于 2012-08-20T07:51:53.237 回答
0

如果您的服务器上除 Apache 之外的任何其他设备都没有使用端口 80,请切换<VirtualHost *:8080><VirtualHost *:80>并重新启动 Apache。

然后,您应该能够通过导航到访问您的虚拟主机http://local

除非您已经在端口 80 上运行某些东西,否则无需使用端口。如果是这种情况,那么当您在浏览器中访问您的站点时,您8080别无选择,只能在主机名后面包含。:8080

于 2012-08-19T21:14:00.627 回答