“PHP Warning: move_uploaded_file“ ile tipik bir web sunucusu hatasıdır nginx ve sunucuya bir dosya yüklemek istediğimizde belirir. Çoğu zaman, sertifikaları veya ait olmadığımız diğer dosyaları yüklememiz gerektiğinde “Media”, arayüzünde hatayı görmüyoruz adminCMS kaydı.
Daha somut bir biçimde, hata “PHP Warning: move_uploaded_file” içinde buluyoruz error.log
olarak:
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'
Hata neden oluşur? “PHP Warning: move_uploaded_file“ ve nasıl çözeriz
Yukarıda söylediğim gibi web sunucusuna dosya yüklemeye çalıştığımızda hata oluşuyor.
"FastCGI sent in stderr
”PHP-FPM'ye sahip sunucular için tipiktir ve nginx web yazılımı olarak Dolayısıyla sorun, dosyaların yüklendiği betiğin ilişkisinde bir yerdedir.
"move_uploaded_file(): Unable to move
”İşlemi gerçekleştiren script ile bu dosyaların web sunucusunda başka bir klasöre yüklenemeyeceğini ve taşınamayacağını bize çok net bir şekilde anlatıyor.
Bu hatayı çöz PHP hem en olası kullanıcının: nginx'in erişiminin olmadığı yürütme komut dosyası için hem de hedef klasör için sunucuda doğru izinleri ayarlayarak çok basit bir şekilde çözülür.
Web sitesi dosyaları cPanel, VestaCP veya diğer barındırma yönetim platformlarında olduğu gibi bir kullanıcıya ait değilse, o zaman kesinlikle çözüm, nginx kullanıcısına yükleme klasörüne ve komut dosyasına erişim vermektir.
Yukarıdaki kod örneği için SSH'de aşağıdaki komutu uygulayacağız:
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w file.file
Yüklemeye devam ediyoruz ve her şey hatasız çalışmalı “move_uploaded_file(): Unable to move“.
Hala sorun yaşıyorsanız, bu öğreticinin yorumlarında çözülebilir.