【发布时间】:2017-05-20 21:32:48
【问题描述】:
我尝试在我的 TYPO3 项目中使用 helhum/dotenv-connector。
我做了以下事情:
我的composer.json:
{
"require": {
"typo3/cms": "^8.5",
"helhum/dotenv-connector": "1.0.0",
"helhum/typo3-console": "^4.1"
},
"extra": {
"helhum/typo3-console": {
"install-extension-dummy": false
},
"typo3/cms": {
"cms-package-dir": "{$vendor-dir}/typo3/cms",
"web-dir": "web"
},
"helhum/dotenv-connector": {
"env-dir": "",
"allow-overrides": true,
"cache-dir": "var/cache"
}
}
}
然后我跑了
composer install
之后我使用命令设置 TYPO3
php vendor/bin/typo3cms install:setup
这应该与以“正常”方式进行安装类似。
在那之后,我在我的composer.json 旁边放了一个.env
此.env 包含以下内容:
TYPO3_CONTEXT="Development"
TYPO3__DB__database="dotenvconnector"
TYPO3__DB__host="127.0.0.1"
TYPO3__DB__password="root"
TYPO3__DB__port="3306"
TYPO3__DB__username="root"
然后我使用typo3_console-command从web/typo3conf/LocalConfiguration.php删除了所有关于数据库的信息
php vendor/bin/typo3cms configuration:remove DB
然后我又跑了composer install 和composer update。
现在在浏览器中调用TYPO3时,它一直在告诉我
请求的名为“默认”的数据库连接尚未配置。
那么我错过了什么?显然我的.env 根本没有被解析或使用。
仅供参考:缓存文件写入 var/cache 中,内容如下:
<?php
putenv('TYPO3__DB__database=dotenvconnector');
$_ENV['TYPO3__DB__database'] = 'dotenvconnector';
$_SERVER['TYPO3__DB__database'] = 'dotenvconnector';
putenv('TYPO3__DB__host=localhost');
$_ENV['TYPO3__DB__host'] = 'localhost';
$_SERVER['TYPO3__DB__host'] = 'localhost';
putenv('TYPO3__DB__password=root');
$_ENV['TYPO3__DB__password'] = 'root';
$_SERVER['TYPO3__DB__password'] = 'root';
putenv('TYPO3__DB__port=3306');
$_ENV['TYPO3__DB__port'] = '3306';
$_SERVER['TYPO3__DB__port'] = '3306';
putenv('TYPO3__DB__username=root');
$_ENV['TYPO3__DB__username'] = 'root';
$_SERVER['TYPO3__DB__username'] = 'root';
【问题讨论】:
-
TYPO3 7.6 中也存在问题。*
标签: typo3 typo3-7.6.x typo3-8.x