使用 Apache 虚拟主机在 ubuntu 13.10 上设置 zf2
Posted
技术标签:
【中文标题】使用 Apache 虚拟主机在 ubuntu 13.10 上设置 zf2【英文标题】:zf2 setup on ubuntu 13.10 with Apache virtual host 【发布时间】:2014-03-21 05:26:01 【问题描述】:我在 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
);它给出了以下错误:
未找到 在此服务器上找不到请求的 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 文件 没有代码,很难诊断...
可能是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以上是关于使用 Apache 虚拟主机在 ubuntu 13.10 上设置 zf2的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Apache 2.4/ubuntu 13.10 及更高版本设置虚拟主机?
ubuntu 13.10 和 apache 2.4.6 上的虚拟主机
升级到 Ubuntu 13.10 后 Apache 不使用 DocumentRoot(使用显示“它可以工作!”的默认页面)