Ubuntu16.04使用lnmp软件包+thinkPHP5搭建开发环境无法读取项目目录下的env.txt环境信息

在Ubuntu系统下,项目目录下使用env.txt标记为dev或者test或者pro的环境,但是在public下的console.php无法读取到该文件:

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

// [ 应用入口文件 ]

// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');

// 检查环境变量,优先从 /etc/profile 取,不存在则从 $_SERVER 变量取,都没有则设为 production。
// 然后写入项目的 environment.txt 文件,下次直接读取该文件。
define('BASE_PATH',realpath(str_replace('public','',__DIR__)));
$envFile = BASE_PATH . '/env.txt';
$env = is_file($envFile) ? trim(file_get_contents($envFile)) : '';
if (empty($env)) {
    if (preg_match('/RUNTIME_ENVIROMENT=(.*)/', file_get_contents('/etc/profile'), $matches)) {
        $env = trim($matches[1], '" ');
    } elseif (!empty($_SERVER['RUNTIME_ENVIROMENT'])) {
        $env = $_SERVER['RUNTIME_ENVIROMENT'];
    } else {
        echo 'ENVIRONMENT undefined!';exit();
    }
    file_put_contents($envFile, $env);
}
unset($envFile);
define('ENVIRONMENT', $env);


// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';

设置因为lnmp设置了防跨目录更改文件,

如果不想用防跨目录或者修改.user.ini的防跨目录的目录还需要将 /usr/local/nginx/conf/fastcgi.conf 里面的fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 在该行行前添加 # 或删除改行,需要重启nginx。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值