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

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


// +----------------------------------------------------------------------

// [ 应用入口文件 ]

// 定义应用目录
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。

你可能感兴趣的:(Linux工具,Linux段位记)