【问题标题】:zf2 setup on ubuntu 13.10 with Apache virtual host使用 Apache 虚拟主机在 ubuntu 13.10 上设置 zf2
【发布时间】:2014-03-21 05:26:01
【问题描述】:

我在 ubuntu 13.10 中配置 Zend 应用程序 (ZF2)。请按照以下步骤操作:

  1. 将代码放入/var/www/,名称为zfapp

虚拟主机配置:

 <VirtualHost *:80> 
  ServerName zfapp.com DocumentRoot /var/www/zfapp/ 

  <Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
  </Directory> 

  ErrorLog /var/log/apache2/error.log 

   # Possible values include: debug, info, notice, warn, error, crit, 
   # alert, emerg. 
   LogLevel warn 
   CustomLog /var/log/apache2/access.log combined 

</VirtualHost>
  1. /etc/hosts为它创建虚拟主机

    127.0.0.1 zfapp.com

  2. /etc/apache2/sites-available/zfapp.cof中添加文件

  3. sudo a2enmod rewrite

  4. sudo a2ensite zfapp.conf

  5. sudo service apache2 restart

但是,当我浏览网站时 (zfapp.com/api/user/auth);它给出了以下错误:

未找到 在此服务器上找不到请求的 Url /api/user/auth

我有一个 javascript MVC 项目,我在其中使用 PHP 作为服务器端语言。

项目目录结构如下:

项目目录 javascriptMVC 文件夹-> 模型/控制器 jsfiles api 文件夹 -> Zend 项目

我创建了一个符号链接 api,它指向 javascriptMVC 目录内的api/public,我在 AJAX 调用 PHP 服务器时使用了它。喜欢/api/user/auth。相同的结构适用于旧的 Ubuntu 机器。

我认为这与 Apache 配置有关;还是我必须设置任何别名?

【问题讨论】:

  • 你能打zfapp.com吗?
  • 显示您的路线配置。
  • 溃败?你的意思是等/主机?
  • 我在 /etc/apache2/sites-available/zfapp.conf 中有 zfapp.conf 文件 ServerName zfapp.com DocumentRoot /var/www/zfapp/ 选项FollowSymLinks AllowOverride All ErrorLog /var/log/apache2/error.log # 可能的值包括:debug、info、notice、warn、error、crit、#alert、emerg。 LogLevel warn CustomLog /var/log/apache2/access.log 结合

标签: php apache ubuntu zend-framework2 virtualhost


【解决方案1】:

没有代码,很难诊断...

可能是url重写的问题:

你启用了 mod_rewrite 吗?

你设置AllowOverride All了吗?

【讨论】:

  • YES,使用 (sudo a2enmod rewrite) 启用它
  • 也许是新的 Apache:13.10 附带 apache 2.4。你需要Require all granted
  • "没有代码,很难诊断" 然后不要;这不是答案;而是两个应该是cmets的问题。
【解决方案2】:

@Bilal 可能表示你的 ZF2 路由配置:http://framework.zend.com/manual/2.0/en/modules/zend.mvc.routing.html

【讨论】:

    【解决方案3】:

    谢谢大家,

    我找到了问题。

    在 apache 2.4.6 和 ubuntu 13.10 中,我们需要更新 apache2.conf 改变

    <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>
    

    <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    

    并创建类似这样的虚拟主机文件,

    <VirtualHost zfapp.com:80>
        ServerName zfapp.com
    
        DocumentRoot /var/www/zfapp/index
    
        <Directory /var/www/zfapp/index>
                    Options Indexes FollowSymLinks
                    AllowOverride All
                    Require all granted
            </Directory>
    
        ErrorLog /var/log/apache2/error.log
        CustomLog /var/log/apache2/access.log combined
    </VirtualHost>
    

    我从以下位置找到了解决方案: https://askubuntu.com/questions/423514/how-to-enable-mod-rewrite-for-virtual-host

    顺便说一句,谢谢@Bilal,@jmleroux

    【讨论】:

    • 如果你仍然有这个配置的 500 错误,就像我一样,尝试启用模块重写:sudo a2enmod rewrite
    猜你喜欢
    • 2013-10-31
    • 2014-01-25
    • 1970-01-01
    • 2014-03-28
    • 2011-02-09
    • 1970-01-01
    • 2016-06-15
    • 2023-03-15
    • 2021-11-10
    相关资源
    最近更新 更多