Не удалось найти ключ "csrf" в дереве в проекте Zend Expressive
Я получил приложение Zend Expressive, работающее с Docker. Обычно этот проект выполняется, но когда я добавил его в репозиторий bitbucket, а затем git клонировал его, собрал с помощью docker, а затем перешел на localhost:8000, он дал мне эту ошибку:
[! [введите описание изображения здесь][1]][1]
Странная часть в том, что у меня есть точная копия локально, которая работает, но ЕСЛИ она загружена в репозиторий, то git клонируется, и попытка запустить ее выдает эту ошибку. Я не уверен, какая часть вызывает это, также нет никакой информации онлайн об этой ошибке.
Я собираюсь показать некоторые файлы конфигурации, так как я даже не уверен, что я должен показывать:
Докер:
version: '3'
services:
php:
build: ./docker/php
depends_on:
- postgres
- redis
volumes:
- .:/var/www/html
nginx:
image: nginx:1.11
depends_on:
- php
ports:
- '8000:80'
volumes:
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
- .:/var/www/html
postgres:
image: postgres:9.6
ports:
- '5438:5432'
volumes:
- 'postgres-data:/var/lib/postgresql/data'
redis:
image: redis:3.2
build:
build: ./docker/build
volumes:
- .:/var/www/html
volumes:
application-data:
postgres-data:
Композитор:
{
"name": "project/project",
"type": "project",
"require": {
"php": "^7.1",
"psr/http-message": "^1.0",
"zendframework/zend-servicemanager": "^3.1",
"zendframework/zend-config": "^2.6",
"zendframework/zend-expressive": "^2.0",
"zendframework/zend-expressive-fastroute": "^2.0",
"zendframework/zend-expressive-platesrenderer": "^1.3",
"zendframework/zend-config-aggregator": "^0.2.0",
"psr/log": "^1.0",
"zendframework/zend-log": "^2.9",
"zendframework/zend-progressbar": "^2.5",
"psr/simple-cache": "^1.0",
"cache/redis-adapter": "^1.0",
},
"autoload": {
"psr-4": {
"Project\\": "src/"
}
}
}
1 ответ
Глядя на ошибку, я думаю, что ваша конфигурация неверна. Может быть, вы установили свой локальный ключ CSRF в ./config/autoload/local.php
файл? Локальные конфигурационные файлы по умолчанию игнорируются git.
Похоже, вам не хватает чего-то вроде этого:
<?php
return [
'csrf_guard' => [
'csrf' => [
'lifetime' => 3600,
],
],
];
Вы можете проверить пример конфигурации здесь: https://github.com/DASPRiD/CSRF-Guard/blob/master/doc/example-config.php