Egyik ügyfélnél egy minimál blue-green deployment technikát alkalmazok ami annyit tesz, hogy nem buildelek minden alkalommal új VPS-t, hanem egy szerverre megy az új kód a régivel és a docroot symlinkje változik:
prod => prod-{hash1}
prod-{hash1}
prod-{hash2}
Amikor kikerül az új kód akkor a symlinket átírjuk és 0 kieséssel már az új kód fut. Ez azért is hasznos mert így még offsite állapotban lehet symfony cache-t építeni. A php opcache path cache-t is végez, így symlink módosításkor “No input file specified” üzenetet dob a felhasználó képébe.
Erre a megoldás az, hogy a fastcgi paramétereknél a SCRIPT_FILENAME-t módosítani kell.
Régi érték:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Új érték:
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
Arra is figyelni kell, hogy ne írja felül se fastcgi.conf, se egyéb fpm specifikus config file (nálunk minden php főverzió saját fastcgi configot kap: php81.conf php82.conf stb).