On 06/19/2015 08:43 AM, Sebastian Bergmann wrote:
>  Scenario: nginx + PHP-FPM / FastCGI.
> 
>  The final step of the deployment is updating a symlink to point to the
>  new version.
> 
>  For N <= realpath_cache_ttl seconds after the deployment, some
>  filesystem operations fail because of outdated realpath cache entries.
> 
>  Is there a way to signal the PHP-FPM / FastCGI processes to clear
>  the realpath cache? If not, I think this should be added :-)

I think this is a symptom of doing deploys incorrectly. If you are
flipping a symlink on a live server which can happen in the middle of a
request then your deploy mechanism is broken.

The web server should set the document_root to the target of the symlink
at the start of a request.

For nginx this is a built-in feature:

    fastcgi_param DOCUMENT_ROOT $realpath_root;

For Apache I wrote a module to do it: https://github.com/etsy/mod_realdoc

Then there is never a question of needing to clear any caches at the PHP
level.

See: https://codeascraft.com/2013/07/01/atomic-deploys-at-etsy/
for a more indepth explanation.

-Rasmus

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to