在 wamp 2.5 上安装 zend framework 2 时出现问题

Trouble with installion of zend framework 2 on wamp 2.5

所以因为我不知道哪里出了问题,所以我会向您提供有关我之前所做的事情以及所有决定因素的完整信息。 (问题在底部说明)

  1. wamp 已经安装。我的本地主机路径是:

     F:\Program Files\wamp\www
    

    所以 Space 可能会导致某处失败。

  2. 从 GitHub 下载了 SendSkeletonApplication(因为 Tut. 告诉我这样做)并将其解压缩到我创建的文件夹 zf2。所以它的一切都在:

      F:\Program Files\wamp\www\zf2
    

    只有你现在我在这里提取它是 public 文件夹的路径:

       F:\Program Files\wamp\www\zf2\public
    
  3. 已从以下位置下载 Composer-Setup.exe:

       https://getcomposer.org/download/
    
  4. enable php_openssl.dll in php.ini 所以这是一行(没有分号):

      extension=php_openssl.dll
    
  5. 打开 Windows PowerShell 并执行以下操作:

    going to this directory:
    PS F:\Program Files\wamp\www\zf2> composer self-update
    PS F:\Program Files\wamp\www\zf2> composer install
    

    两者都有效,所以我检查了 php -v:

    PS F:\Program Files\wamp\www\zf2> php -v
    PHP 5.5.12 (cli) (built: Apr 30 2014 11:20:58) 
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
            with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
    
  6. 现在因为不同的Tuts而变得混乱。我做了以下事情:

    Open Windows System -> Advanced system settings -> Environmental Variables -> System variables -> Path -> Edit
    Edit the php5.5.15 and zf2 (Composer was already there):
    ;F:\Program Files\wamp\bin\php\php5.5.12;C:\ProgramData\ComposerSetup\bin;F:\Program Files\wamp\www\zf2
    
  7. 打开和编辑:

     F:\Program Files\wamp\bin\apache\apache2.4.9\conf\httpd.conf
     uncomment: Include conf/extra/httpd-vhosts.conf
     so the line now looks like (without #):
     Include conf/extra/httpd-vhosts.conf
    
  8. 好吧,我遵循了一个教程,但它没有用,所以我按照不正确的顺序进行了以下思考:

    Editing following things to 
    F:\Program Files\wamp\bin\apache\apache2.4.9\conf\httpd.conf
    and also to
    F:\Program Files\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf
    
    
    <VirtualHost *:80>
    ServerName dev.zf2.com
    DocumentRoot "F:\Program Files\wamp\www\zf2\public"
    SetEnv APPLICATION_ENV "development"
    <Directory "F:\Program Files\wamp\www\zf2\public">
    DirectoryIndex index.php
    AllowOverride All
    Order allow,deny
    Allow from all
    Order Allow,Deny
    Allow from all
    </IfModule>
    </Directory>
    </VirtualHost>
    
    <VirtualHost *:80>
    ServerName localhost
    DocumentRoot "F:\Program Files\wamp\www"
    SetEnv APPLICATION_ENV "development"
    <Directory "F:\Program Files\wamp\www">
    DirectoryIndex index.php
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
    </VirtualHost>
    
  9. 转到 C:\Windows\System32\drivers\etc\hosts 并添加此代码:

     127.0.0.1  dev.zf2.com
    

所以现在如果我要开发。zf2.com 我会访问 wamp 的本地主机,因此没有骨架应用程序。我试图打开 zf2 中的 public 文件夹,因为有一个 index.php:

 http://localhost/zf2/public

但它说:内部服务器错误。

所以怎么了?我安装对了吗?

还有,为什么zf2里面没有库?

开始使用 zend 的下一步是什么?

我从未使用过 wamp,但是,对于第 8 步,您的虚拟主机可能希望看起来更像这样:

<VirtualHost *:80>
    ServerName dev.zf2.com
    DocumentRoot "F:\Program Files\wamp\www\zf2\public"
    SetEnv APPLICATION_ENV "development"
    <Directory "F:\Program Files\wamp\www\zf2\public">
        DirectoryIndex index.php
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "F:\Program Files\wamp\www"
    <Directory "F:\Program Files\wamp\www">
        DirectoryIndex index.php
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

您不需要在 httpd.confhttpd-vhosts.conf 中使用它们(尽管这不太可能导致问题)。做一个或另一个以避免混淆。

您的示例中有一个随机 </IfModule>,并且 Order allow,deny 内容在 Apache 2.4 中发生了一些变化(您似乎正在使用它 - 您正在学习的教程可能是正确的对于当时的 Apache 版本)。这两件事可能是您收到内部服务器错误的原因。

您必须在更改配置后重新启动 Apache,否则它们不会有任何效果(根据 drew010 的评论)。

您想在浏览器中查看 http://dev.zf2.com,而不是本地主机。

如果之后还是不行:

  • 如果您仍然得到 'Internal Server Error',您需要弄清楚 Apache 错误日志在哪里,因为每个服务器错误都应该有一个相应的日志条目,这将为您提供一些线索来找出原因。
  • 您没有提到任何关于 mod_rewrite 的事情 - 我不知道这是否是 wamp 中默认启用的功能,但如果不是,那将是一个问题。如果错误日志有关于无法识别 'RewriteEngine' 的内容,那么启用 mod_rewrite 应该可以解决这个问题。