2015-04-12 1 views
0

Когда я применил приложение Laravel 4.2.9 к серверу Ubuntu 14.04 с использованием Capistrano, похоже, что все мои php-файлы кэшируются PHP, Laravel или Nginx. Я должен вручную перезапустить сервер, чтобы перекрыть кеш и увидеть любые мои изменения.Кэш развертывания Laravel до перезапуска сервера

Capistrano создает новую директорию выпуска на сервере и запускает git checkout внутри, чтобы получить последнюю помеченную версию. Когда развертывание будет завершено, «текущая» символическая ссылка будет обновлена, чтобы указать на новую директорию выпуска. Единственными разделяемыми файлами являются мой каталог загрузок и файл настроек среды.

Что я пробовал:

  • php artisan cache:clear
  • composer dump-autoload

только ручной перезапуск сервера после развертывания будет бюст кэша, который поставляется с простоем (а также для других сайтов, размещенных на этом сервере) и дополнительные риски.

У кого-нибудь есть предложение, может ли это быть Nginx, PHP или Laravel?

ответ

2

У меня была аналогичная проблема при развертывании моего Laravel 5 приложения и, кажется, решили, добавив следующее в конце deploy.rb Capistrano в:

namespace :deploy do 
    desc "Build" 
    after :updated, :build do 
     on roles(:web) do 
      within release_path do 
       execute :composer, "install --no-dev --quiet" 
       execute :php, "artisan clear-compiled" 
       execute :php, "artisan cache:clear" 
       execute :php, "artisan view:clear" 
       execute :php, "artisan twig:clean" # For use with TwigBridge 
       execute :php, "artisan route:cache" 
       execute :php, "artisan config:cache" 
      end 
     end 
    end 
end 

(Если вы не используете TwigBridge , обязательно удалите twig:clean линию.)

Edited включить clear-compiled и view:clear линии, так как они, кажется, чтобы решить дополнительные проблемы, связанные с развертыванием приложений Laravel с использованием Capistrano.

Смежные вопросы