Подтвердить что ты не робот

PHP opcache reset + развертывание в стиле символической ссылки

Я пытаюсь выполнить reset PHP opcache после развертывания в стиле символической ссылки. В моем проекте есть файл opcache_reset.php, который выполняется wget после замены символьной ссылки:

<?php
clearstatcache(true);
opcache_reset();

Несмотря на это, старые файлы все еще используются. Согласно результату opcache_get_status() число manual_restarts увеличивается, last_restart_time постоянно обновляется, но пути к файлу остаются устаревшими. Мне нужно вызвать opcache_reset.php вручную через минуту или около того после развертывания, чтобы все было в порядке.

PHP-версия - 5.5.6, ZendOpcache - 7.0.3-dev. Конфигурация Opcache:

opcache.blacklist_filename => no value
opcache.consistency_checks => 0
opcache.dups_fix => Off
opcache.enable => On
opcache.enable_cli => On
opcache.enable_file_override => Off
opcache.error_log => no value
opcache.fast_shutdown => 1
opcache.force_restart_timeout => 180
opcache.inherited_hack => On
opcache.interned_strings_buffer => 8
opcache.load_comments => 1
opcache.log_verbosity_level => 1
opcache.max_accelerated_files => 4000
opcache.max_file_size => 0
opcache.max_wasted_percentage => 5
opcache.memory_consumption => 128
opcache.optimization_level => 0xFFFFFFFF
opcache.preferred_memory_model => no value
opcache.protect_memory => 0
opcache.restrict_api => no value
opcache.revalidate_freq => 60
opcache.revalidate_path => Off
opcache.save_comments => 1
opcache.use_cwd => On
opcache.validate_timestamps => On
4b9b3361

Ответ 1

Причины и два возможных решения, описанные в проблеме ZendOptimizerPlus. Мы решили это, используя $realpath_root в конфигурации nginx:

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;