“PHP Warning: move_uploaded_file“ tipikus webszerver hiba nginx és akkor jelenik meg, ha fájlt szeretnénk feltölteni a szerverre. Legtöbbször akkor, amikor tanúsítványokat vagy egyéb olyan fájlokat kell feltöltenünk, amelyekhez nem tartoznak “Media”, nem látjuk a hibát a felületén adminCMS regisztráció.
Konkrétabb formában a hiba “PHP Warning: move_uploaded_file” benne találjuk error.log
mint:
FastCGI sent in stderr: "PHP message: PHP Warning: move_uploaded_file(/srv/www/domain.test/public/file.file): failed to open stream: Permission denied in /srv/www/domain.test/public/script.php on line 748 PHP message: PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpqAVtWy'
Miért fordul elő a hiba “PHP Warning: move_uploaded_file“ és hogyan oldjuk meg
Mint fentebb említettem, a hiba akkor jelentkezik, amikor megpróbálunk fájlokat feltölteni a webszerverre.
"FastCGI sent in stderr
"Jellemző azokra a szerverekre, amelyek rendelkeznek PHP-FPM ill nginx webszoftverként. Tehát a probléma valahol a szkript kapcsolatában van, amelyen keresztül a fájlok feltöltődnek.
"move_uploaded_file(): Unable to move
"Nagyon világosan elmondja nekünk, hogy ezeket a fájlokat a műveletet végrehajtó szkript nem töltheti fel és nem helyezheti át a webszerver másik mappájába.
Oldja meg ezt a hibát PHP nagyon egyszerűen megoldható, beállítva a megfelelő jogosultságokat a szerveren, mind a végrehajtási szkripthez, amelyhez a legvalószínűbb felhasználó: nginx nem férhetett hozzá, mind a célmappához.
Ha a weboldal fájljai nem egy felhasználóhoz tartoznak, mint a cPanel, VestaCP vagy más tárhelykezelő platformokon, akkor szinte biztosan az a megoldás, hogy az nginx felhasználónak hozzáférést adunk a feltöltési mappához és a szkripthez.
A fenti kódpéldához a következő parancsot fogjuk végrehajtani SSH-ban:
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w file.file
Folytatjuk a feltöltést, és mindennek hiba nélkül kell működnie “move_uploaded_file(): Unable to move“.
Ha továbbra is problémái vannak, ezt az oktatóanyag megjegyzéseiben meg lehet oldani.