Symfony 3 - 不允许访问 app_dev.php
Symfony 3 - Not allowed to access app_dev.php
我刚买了一些共享主机(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 :当我尝试进入生产环境 (app.php) 时,出现错误 500,但 var/logs/prod.log 文件包含有关 [=46= 的行] 错误...所以我想这没问题。
阅读代码你就知道问题出在哪里了:) 或者至少,它可能是以下两个原因之一:
- 您的请求包含
Client-IP
或 X-Forwarded-For
header,这可能是由安装在您网站之前的反向代理(如 Varnish)设置的。
- 您没有配置正确的 IP 地址。
无论实际原因如何,建议不要在生产服务器上打开 app_dev.php 前端控制器。开发应该在您的本地机器上完成。篡改此检查可能会意外地向外界开放开发环境。
我刚买了一些共享主机(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 :当我尝试进入生产环境 (app.php) 时,出现错误 500,但 var/logs/prod.log 文件包含有关 [=46= 的行] 错误...所以我想这没问题。
阅读代码你就知道问题出在哪里了:) 或者至少,它可能是以下两个原因之一:
- 您的请求包含
Client-IP
或X-Forwarded-For
header,这可能是由安装在您网站之前的反向代理(如 Varnish)设置的。 - 您没有配置正确的 IP 地址。
无论实际原因如何,建议不要在生产服务器上打开 app_dev.php 前端控制器。开发应该在您的本地机器上完成。篡改此检查可能会意外地向外界开放开发环境。