使用php部署器在服务器上取消设置环境变量

使用php部署器在服务器上取消设置环境变量,php,deployment,environment-variables,Php,Deployment,Environment Variables,在我的本地机器上,我使用docker为我的php提供服务,我在docker-compose.yml文件中包含了.env文件,它工作正常,我可以使用getenv()查看变量,问题是我无法让它们在我的在线服务器上工作 码头工人(在当地工作) 部署器配置(不在服务器上工作) 我使用deployer将我的网站部署到我的主机(运行nginx和php-fpm),使用以下deployer脚本 host('staging') ->hostname('app.host.be') ->p

在我的本地机器上,我使用docker为我的php提供服务,我在docker-compose.yml文件中包含了.env文件,它工作正常,我可以使用
getenv()
查看变量,问题是我无法让它们在我的在线服务器上工作

码头工人(在当地工作) 部署器配置(不在服务器上工作) 我使用deployer将我的网站部署到我的主机(运行nginx和php-fpm),使用以下deployer脚本

host('staging')
    ->hostname('app.host.be')
    ->port(22)
    ->stage('staging')
    ->set('deploy_path', '/var/www/')
    ->set('branch', 'master')
    ->identityFile('~/.ssh/id_rsa')
    ->user('admin')
    ->set('env', [
        'MY_ENV' => 'test'
    ]);
我还尝试将环境设置为主机定义之外的环境

set('env', [
    'MY_ENV' => 'test'
]);

host('staging')
   ->hostname('app.host.be');

但是运行
getenv()
只会在我的live server上返回以下结果


array(2){[“USER”]=>string(8)“www-data”[“HOME”]=>string(8)”/var/www“}

我会留下评论,但我的声誉还不够好

请看一下这个问题

PHP中的环境变量有点不同,它们不是真正的系统级变量,docker就是这样设置的

因此,您使用deployer设置的变量在运行期间可供PHP使用

根据您的主机,您可能有足够的权限修改VM上的环境变量,因此您应该研究一种方法来修改这些变量。最好通过连续部署管道

编辑:还请查看PHP中的Dotenv,并查看基于此的推荐流

set('env', [
    'MY_ENV' => 'test'
]);

host('staging')
   ->hostname('app.host.be');