周梦康 发表于 2018-02-09 881 次浏览

免费领取阿里云优惠券 我的直播 - 《PHP 进阶之路》

总是有人一部小心,就把账号密码提交到 github 了,所以代码应该是脱敏的。下面这样就是一种简单的选择方案。

server {
    listen      80;
    server_name mengkang.net;
    access_log  logs/mengkang.net-access.log  main;

    root        /var/www/mengkang.net/public;
    index       index.html index.htm index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files      $uri =404;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
        fastcgi_param  GLOBAL_CONFIG_FILE /var/www/mengkang.net-global.config.php;
    }
}
$ cat mengkang.net-global.config.php
<?php

return [
    'environment' => 'beta',
    'database' => [
        'global.master' => [
            'dsn'     => '',
            'user'    => '',
            'pass'    => '',
            'options' => []
        ],
        'global.slaver' => [
            'dsn'     => '',
            'user'    => '',
            'pass'    => '',
            'options' => []
        ],
    ],
];
include getenv('GLOBAL_CONFIG_FILE');

顺便说一句,代码也应该是无状态的,自己 YY 的定义。也就是说不要在代码里面去定义当前代码环境这是日常、预发、还是线上。而应该是服务器自身去定义。

怎么理解呢?就是说当前环境的变量应该是从代码以外的环境来读取的,举个例子:
比如上面的/var/www/mengkang.net-global.config.php是放在服务器上的,是脱离于代码目录/var/www/mengkang.net/的,在其中第一行,我们就看到其定义了变量 'environment' => 'beta'

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表