默认情况下,Symfony需要配置以在Web服务器上而不是在应用程序中进行设置。就我而言,在服务器上设置这些变量非常复杂。因此,我要在应用程序(php或yaml)中设置这些变量,而没有DotEnv和Web服务器环境变量。
这些是我需要定义的环境变量:
APP_ENV
APP_SECRET
DATABASE_URL
MONGODB_URL
MAILER_URL
除了APP_ENV在任何地方都无法正常工作之外,这里是我发现的东西:
APP_ENV: ???
APP_SECRET: config/packages/framework.yaml
DATABASE_URL: config/packages/doctrine.yaml
MONGODB_URL: config/packages/doctrine_mongodb.yaml
MAILER_URL: config/packages/swiftmailer.yaml
在Symfony 4中我们在哪里定义APP_ENV
?
答案 0 :(得分:2)
您可以使用.env.local.php
返回一个数组。
此文件通常是通过运行composer dump-env [env]
生成的,但是没有什么可以阻止您手动创建它。
此文件在之前之前已加载。DotEnv
加载“ .env”文件,它是一个简单的数组,已与$_SERVER
和$_ENV
合并。如果该文件存在,则根本不使用DotEnv
组件。
例如您可以返回以下内容:
return [
'APP_ENV' => 'prod',
'APP_SECRET' => 'verysecretmuchobscure',
'CORS_ALLOW_ORIGIN' => '^https?://localhost(:[0-9]+)?$',
'DATABASE_URL' => 'mysql://db_user:db_password@127.0.0.1:3306/db_name',
'JWT_SECRET_KEY' => '%kernel.project_dir%/var/keys/private.pem',
'JWT_PUBLIC_KEY' => '%kernel.project_dir%/var/keys/public.pem',
'JWT_PASSPHRASE' => 'anotherthing',
];
如果您使用的是Symfony 4.1+,则所有这些都适用。在您的问题中,您说的是Symfony 4,但未指定您使用的是哪个次要版本。
如果您使用的是4.0,则需要按照here详细的步骤升级应用程序:
bootstrap.php
的匹配(如果您的index.php进行了修改)console
脚本(如果存在)相同。.env
文件。