使用Apache虚拟主机在ubuntu 13.10上设置zf2

时间:2014-02-20 10:27:14

标签: php apache ubuntu zend-framework2 virtualhost

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

  1. 将代码放在名为/var/www/
  2. 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. 中添加文件
    4. sudo a2enmod rewrite

    5. sudo a2ensite zfapp.conf

    6. sudo service apache2 restart

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

        

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

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

      这是项目目录结构:

      PROJECTDIR    javascriptMVC文件夹 - &gt;模型/控制器jsfiles    api文件夹 - &gt; Zend项目

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

      我认为它与Apache配置有关;或者我可能需要设置任何别名?

3 个答案:

答案 0 :(得分:10)

全心全意,

我找到了问题。

在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

答案 1 :(得分:2)

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

可能是网址重写的问题:

你启用了mod_rewrite吗?

您是否设置了AllowOverride All

答案 2 :(得分:0)

@Bilal可能意味着您的 ZF2 路由配置:http://framework.zend.com/manual/2.0/en/modules/zend.mvc.routing.html