【发布时间】:2015-04-13 19:33:05
【问题描述】:
在 Ubuntu Server 14 LTS 上安装了 apache、mysql 和 php。另外:
- CakePhp 安装在 /srv/appName 中
- Phpmyadmin 安装在 /usr/share/phpmyadmin 中(推荐)
- 虚拟主页位于默认位置 /var/www/html/ 下
我希望提供这样的网站(链接被破坏以超出发布规则):
- httx://10.x.x.x/ -- 主页
- httx://10.x.x.x/appName -- cakePhp 安装
- httx://10.x.x.x/phpmyadmin --- PhpMyAdmin 站点
有一段时间我让 Phpmyadmin 在上述 URL 上使用密码验证(通过 html 表单)工作,并显示主页,但无法显示 cakePhp 主页。
终于在 httx://10.xxx/ 上获得了 cakePhp 主页,但只能通过在 /etc/apache2/ 中将“DocumentRoot”值从 /var/www/html 更改为 /srv/appName/webroot站点可用/000-default.conf .
通过这种方式访问,cakePhp 主页显示正确,目录权限、数据库访问和其他设置带有绿色复选标记——但当然主页不再可用。同样在这个时候,Phpmyadmin 开始期待 http-authentication 并在拒绝以前通过 HTML 表单工作的所有用户名 + 密码组合后给出 401(虽然我没有更改 Phpmyadmin 的任何配置)。
当前主页出现,但路径 /appName 的 url 得到 403,而 /phpmyadmin 的 url 得到 http-auth 弹出窗口。
/etc/phpmyadmin/apache.conf 与安装完全一致,没有任何更改,因为可以访问 Phpmyadmin。它包含:
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
...
我还在 /etc/phpmyadmin/apache.conf 的模型上创建了 /etc/appName/apache.conf ,包括以下几行:
Alias /appName /srv/appName
<Directory /srv/appName>
...
/etc/apache2/apache2.conf 的相关 (?) 部分:
Include /etc/phpmyadmin/apache.conf
Include /etc/appName/apache.conf
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
# changed "AllowOverride None" to "AllowOverride All"
<Directory /usr/share>
AllowOverride All
Require all granted
</Directory>
# changed "AllowOverride None" to "AllowOverride All"
<Directory /var/www>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# added this and changed "AllowOverride None" to "AllowOverride All"
<Directory /srv/appName>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
...
IncludeOptional conf-enabled/*.conf
我阅读了许多论坛帖子,并尝试了上述所有项目的许多不同变体。我怎样才能在 httx://10.xxx/ 上提供默认主页,在 httx://10.xxx/appName 上提供 cakePhp,在 httx://10.xxx/phpmyadmin 上提供 PhpMyadmin?
【问题讨论】:
标签: apache cakephp phpmyadmin ubuntu-14.04 http-status-code-403