【问题标题】:Accessing symfony's app_dev.php using homestead vagrant solution使用 homestead vagrant 解决方案访问 symfony 的 app_dev.php
【发布时间】:2018-12-23 09:31:06
【问题描述】:

我已将宅基地设置为documentation 状态并对Homestead.yaml 执行以下更改以处理我的项目:

ip: 192.168.10.10
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
    - ~/.ssh/id_rsa
folders:
    -
        map: /home/pcmagas/Kwdikas/php/apps/ellakcy_member_app/
        to: /home/vagrant/code
sites:
    -
        map: homestead.test
        to: /home/vagrant/code/web
        type: symfony

databases:
    - homestead
name: ellakcy-member-app
hostname: ellakcy-member-app

但是当我通过浏览器访问http://192.168.10.10/ 时,我收到以下错误:

您无权访问此文件。查看 app_dev.php 了解更多信息。

【问题讨论】:

    标签: php symfony vagrant homestead symfony-3.4


    【解决方案1】:

    当您查看 app_dev.php 时,有以下 sn-p 代码:

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

    这意味着app_dev.php 脚本无法识别正在访问的 ip,因此为了防止在开发过程中进行任何未经授权的访问,它会阻止加载 symfony。

    为了绕过这种保护,你应该找出你的客户端在 vagrant 虚拟网络上的 ip 快速而肮脏的方法是将上面的 sn-p 替换为以下 sn-p 代码:

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

    如您所见,它打印了玩具应放置在数组中的正确值:

    !(in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'/*, Found Ip goes there*/], true)
    

    在我的情况下,它是 192.168.10.1 之一,我想它也应该是在你的情况下的那个。

    【讨论】:

      猜你喜欢
      • 2017-04-16
      • 1970-01-01
      • 2011-08-11
      • 2019-11-22
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 2022-08-04
      相关资源
      最近更新 更多