我正在ubuntu 13.10中配置Zend应用程序(ZF2)。按照以下步骤操作:
/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>
在/etc/hosts
127.0.0.1 zfapp.com
在/etc/apache2/sites-available/zfapp.cof
sudo a2enmod rewrite
sudo a2ensite zfapp.conf
sudo service apache2 restart
然而,当我浏览网站时(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配置有关;或者我可能需要设置任何别名?
答案 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