PHP5.5は、ビルトインでOPcacheをもっています。OPcacheはスクリプトが変更された場合には破棄されるはずですが、スクリプトがシンボリックリンクされたフォルダーでWEBサーバーから参照されている場合には問題があります。
基本的に、OPcacheは、/var/www/hello/current/public/index
を実在のスクリプトであると"認識"します。実際には /var/www/hello/releases/20140101011/public/index
であるのにです。
この問題を解決するには、デプロイの後に、以下のコマンドを追加します。
php -r "opcache_reset();"
注意: もし、PHP-FPMとnginxを使っている場合には、上記コマンドは、CLIのキャッシュのみ削除し、FPMのものは削除しません。
この場合、問題を修正するには以下の行をnginxサーバーの設定ファイルに加えます。
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
通常、このファイルは、/etc/nginx/fastcgi.conf
にあります。