我有一个我继承的网站。它已被移动到新服务器,现在网站的管理部分不起作用。点击链接后,我得到403.
浏览器上的错误消息
Forbidden
You don't have permission to access /admin.php/main/index on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
似乎ErrorDocument是一个symfony函数,所以我认为这个错误与Apache无关。
在网络文件夹中,有一个admin.php和admin_dev.php。
admin.php的
<?php
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('admin', 'prod', false);
sfContext::createInstance($configuration)->dispatch();
admin_dev.php
<?php
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('admin', 'dev', true);
sfContext::createInstance($configuration)->dispatch();
如您所见,唯一的区别是环境名称(“prod”vs“dev”,最后一个值用于调试(根据http://www.symfony-project.org/api/1_1/sfProjectConfiguration#method_getapplicationconfiguration)。
我将admin_dev.php的内容复制到了admin.php。并且刷新了我的管理页面和403消失了,尽管顶部有开发工具栏。我将“dev”更改为“prod”并将调试保持打开然后再刷新我的页面,这次我获得了403.
我查看了settings.yml并将dev部分的内容复制到prod部分。
但这没有做任何事情。刷新页面后仍然获得403。
这是settings.yml的新内容(你可以看到我注释掉的prod之前的设置)。
settings.yml中
# You can find more information about this file on the symfony website:
# http://www.symfony-project.org/reference/1_4/en/04-Settings
# .settings:
# no_script_name: false
# logging_enabled: false
prod:
# .settings:
# no_script_name: false
# logging_enabled: false
.settings:
error_reporting: <?php echo (E_ALL | E_STRICT)."\n" ?>
web_debug: true
cache: false
no_script_name: false
etag: false
dev:
.settings:
error_reporting: <?php echo (E_ALL | E_STRICT)."\n" ?>
web_debug: true
cache: false
no_script_name: false
etag: false
test:
.settings:
error_reporting: <?php echo ((E_ALL | E_STRICT) ^ E_NOTICE)."\n" ?>
cache: false
web_debug: false
no_script_name: false
etag: false
all:
.settings:
# Enable sfGuard
enabled_modules: [default, sfGuardGroup, sfGuardUser, sfGuardPermission, sfGuardAuth]
# Form security secret (CSRF protection)
csrf_secret: 10fee9ab83d0083fb244e5e087afab5fe684cb64
login_module: sfGuardAuth
login_action: signin
secure_module: sfGuardAuth
secure_action: secure
# Output escaping settings
escaping_strategy: true
escaping_method: ESC_SPECIALCHARS
# Enable the database manager
use_database: true
每次我更改服务器上的文件时,都会通过symfony cc清除缓存。
任何想法可能出错?