0
奇妙なことに、このエラーは本番環境でのみ発生します。アパッチのerror_logにエラー:memcachedのsymfony 2.8プロダクション環境でのエラー
[Sat Dec 10 18:35:44.122028 2016] [proxy_fcgi:error] [pid 7916] [client 81.202.203.209:47076] AH01071: Got error 'PHP message: PHP Fatal error: Uncaught exception 'Symfony\\Component\\DependencyInjection\\Exception\\ServiceNotFoundException' with message 'The service "doctrine.orm.default_entity_manager" has a dependency on a non-existent service "doctrine.cache.memcached".' in /var/www/vhosts/xxxx.com/xxxx/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php:58\nStack trace:\n#0 /var/www/vhosts/xxxx.com/xxxx/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php(51): Symfony\\Component\\DependencyInjection\\Compiler\\CheckExceptionOnInvalidReferenceBehaviorPass->processReferences(Array)\n#1 /var/www/vhosts/xxxx.com/xxxx/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php(51): Symfony\\Component\\DependencyInjection\\Compiler\\CheckExceptionOnInvalidReferenceBehaviorPass->processReferences(...\n', referer: xxxx
memcachedの
services.ymlの構成データ:
parameters:
# parameter_name: value
services:
# service_name:
# class: AppBundle\Directory\ClassName
# arguments: ["@another_service_name", "plain_value", "%parameter_name%"]
kernel.listener.command_dispatch:
class: LoteriaBundle\EventListener\ConsoleExceptionListener
arguments: ['@logger']
tags:
- { name: kernel.event_listener, event: console.exception }
memcached:
class: Memcached
calls:
- [ addServers, [%memcache_hosts%] ]
doctrine.cache.memcached:
class: Doctrine\Common\Cache\MemcachedCache
calls:
- [ setMemcached, [ @memcached ] ]
config_prod.yml:
imports:
- { resource: config.yml }
doctrine:
orm:
entity_managers:
default:
metadata_cache_driver:
type: service
id: doctrine.cache.memcached
query_cache_driver:
type: service
id: doctrine.cache.memcached
result_cache_driver:
type: service
id: doctrine.cache.memcached
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
nested:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.log"
level: debug
console:
type: console
parameters.yml
memcache_hosts:
-
dsn: 127.0.0.1
port: 11211
パラメータ:
Código・デ・マイルconfig.yml
imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }
parameters:
locale: en
framework:
#esi: ~
#translator: { fallbacks: ["%locale%"] }
secret: "%secret%"
router:
resource: "%kernel.root_dir%/config/routing.yml"
strict_requirements: ~
form: ~
csrf_protection: ~
validation: { enable_annotations: true }
#serializer: { enable_annotations: true }
templating:
engines: ['twig']
default_locale: "%locale%"
trusted_hosts: ~
trusted_proxies: ~
session:
# handler_id set to null will use default session handler from php.ini
handler_id: ~
fragments: ~
http_method_override: true
twig:
debug: "%kernel.debug%"
strict_variables: "%kernel.debug%"
globals:
global:
url_logo: '/'
url_buscador: ''
assetic:
debug: '%kernel.debug%'
use_controller: '%kernel.debug%'
filters:
cssrewrite: ~
doctrine:
dbal:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
# if using pdo_sqlite as your database driver:
# 1. add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# 2. Uncomment database_path in parameters.yml.dist
# 3. Uncomment next line:
# path: "%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
swiftmailer:
transport: "%mailer_transport%"
host: "%mailer_host%"
username: "%mailer_user%"
password: "%mailer_password%"
port: "%mailer_port%"
encryption: "%mailer_enc%"
auth_mode: "%mailer_auth_mode%"
# spool: { type: memory }
私はそれは後でコメント
あなたは 'config_prod.yml'ファイル(それのすべて)の内容を投稿することができますか? – Federkun
services.ymlファイルに 'services:'キーがありますか?または上記の投稿されたコードでちょうど省略されていますか? 'php app/console debug:container doctrine.cache.memcached'はdev envのサービスの存在を示していますか? – Vamsi
services.ymlファイルは完全なオリジナルです。そして、そのコマンドを実行すると、dev環境のサービスが存在することがわかります – kusflo