使用php部署器在服务器上取消设置环境变量
在我的本地机器上,我使用docker为我的php提供服务,我在docker-compose.yml文件中包含了.env文件,它工作正常,我可以使用使用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
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');