Symfony 3 - 不允许访问app_dev.php

时间:2016-08-17 11:27:55

标签: php symfony shared-hosting symfony-3.1

我刚刚购买了一些共享主机(OVH.com - PHP 5.6.21)来托管Symfony 3项目(版本3.1.3)。

在服务器上传上Symfony的config.php文件时,它只显示2条推荐消息以提高网站速度,但没有任何可能阻止该网站工作的消息。因此,托管似乎足以正确运行此项目。

我发送了服务器上的所有文件和文件夹,但是当我尝试访问app_dev.php页面时,出现此错误消息:

You are not allowed to access this file. Check app_dev.php for more information.

我知道我必须将我的IP地址添加到app_dev.php文件中允许的IP数组中,所以这就是我所做的(XXX.XXX.XXX.XXX是我的IP地址):

if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !(in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', 'XXX.XXX.XXX.XXX', 'fe80::1', '::1']) || php_sapi_name() === 'cli-server')
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}

我尝试了不同的方法,看看问题可能来自哪里:

  • 从条件=>中删除!(in_array)部分错误500
  • 删除整个条件块=>我可以访问该网站(即使仍有一些与MySQL相关的错误)

var / logs / dev.log文件完全为空,即使权限为777。

如果您对问题的来源有任何疑问,如果您能帮助我,我会很高兴。

提前感谢您的帮助!

PS:当我尝试访问prod环境(app.php)时,我收到错误500,但var / logs / prod.log文件包含有关MySQL错误的行...所以我想这很好。

1 个答案:

答案 0 :(得分:7)

阅读您确切知道问题的代码:)或者至少,它可能是以下两个原因之一:

  • 您的请求包含Client-IPX-Forwarded-For标题,可以在您的网站之前安装反向代理(如Varnish)。
  • 您没有配置正确的IP地址。

无论实际原因如何,建议不要在生产服务器上打开app_dev.php前端控制器。应在您的本地计算机上进行开发。篡改此检查可能会意外地向外界开放开发环境。