“PHP Warning: move_uploaded_file“ web sunucularının tipik bir hatasıdır Nginx ve sunucuya bir dosya yüklemek istediğimizde görünür. Çoğu zaman, ait olmayan sertifikaları veya diğer dosyaları yüklememiz gerektiğinde “Media”, CMS yönetim arayüzünde hatayı görmüyoruz.
Daha somut bir biçimde, hata “PHP Warning: move_uploaded_file” onu içinde buluyoruz error.log şu şekilde:
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şuyor “PHP Warning: move_uploaded_file“ ve bunu nasıl çözeceğiz
Yukarıda da söylediğim gibi bazı dosyaları web sunucusuna yüklemeye çalıştığımızda hata çıkıyor.
“FastCGI sent in stderr” PHP-FPM'ye sahip sunucular için tipiktir ve Nginx Web için yazılım olarak. Dolayısıyla sorun, dosyaların yüklendiği komut dosyasıyla ilgili bir yerdedir.
“move_uploaded_file(): Unable to move” işlemi gerçekleştiren script tarafından bu dosyaların web sunucusuna yüklenemeyeceğini ve başka bir klasöre taşınamayacağını bize çok net bir şekilde anlatıyor.
- NGINX Hatasını Düzeltme: SSL anlaşması sırasında SSL oturumu paylaşılan önbelleği “le_nginx_SSL”de yeni oturum ayrılamadı
- Düzeltme [HTTP Hatası] İstemci Çok büyük bir gövde göndermeyi amaçlayan [Media Yükle WordPress]
Bu hatayı çözme PHP hem büyük olasılıkla kullanıcı: nginx'in erişemediği yürütme komut dosyası hem de hedef klasör için sunucuda doğru izinlerin ayarlanmasıyla çok basit bir şekilde çözülür.
Web sitesi dosyaları cPanel, VestaCP veya diğer barındırma yönetimi platformlarında olduğu gibi bir kullanıcıya ait değilse, o zaman çözüm neredeyse kesinlikle nginx kullanıcısına yükleme klasörüne ve komut dosyasına erişim izni 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üklemeyi yeniden başlatıyorum ve her şey hatasız devam etmeli “move_uploaded_file(): Unable to move“.
Hala sorunlarla karşılaşıyorsanız, bu eğitimin yorumlarında sorunu çözebilirsiniz.
Bonjour,
Konuyla ilgili makalelerinizi okudum ve tekrar okudum [move_upload_file].
Görünüşe göre bu sorunla karşı karşıyayım ve aylardır bu sorundan başarılı olamadan kurtulmaya çalışıyorum.
Yalnızca kısmen çalışan bir Form.html sayfamın bulunduğu kişisel bir sitem var, yani: beslemeyi açmak vb. imkansız... ve elbette onu 'yüklemeler'e taşımak imkansız.
Grafik Sanatlar'dan emekli oldum, 13 yaşında tipograf, ardından ofset editör, bilgisayar grafik tasarımcısı, webmaster, kısacası 84 yaşında emekliyim ve hala mesleğime tutkuyla bağlıyım.
HTML ve JavaScript ile idare edersem bugün PHP ile mücadele ediyorum.
Cezayirli gaziler arkadaşlarımla küçük gezilere çıkıyorum ve “raporlar” İlgilenenlerin bilgisine sunmak üzere Kişisel siteme koyduğum; bu nedenle, noktalarımı açıklamak için her şeyi kendim yapamadığım için doküman almak istiyorum, dolayısıyla PHP Formu ve işleme fikri ortaya çıktı.
Sitemi, evde Synology "Ngnix" DMS v. sunucusunda barındırılan Mac sürümü olan "Dreamweaver CC2020" ile oluşturdum. 7.1 – PHP 8 (php 7.2, php 7.3, php 7.4 olasılığı). Varsayılan sertifika (No-Ip): TrustCor DV CA – G2 RSA
Form "metin" alanları için doğru çalışıyor ancak medya alanlarını reddediyor.
İsterseniz yukarıdaki URL’ye bağlanıp heykelciğe tıklayabilirsiniz ve “return” html’yi aktif etmediğim için sonucu PHP sayfasında görebileceksiniz. (Ben 10 Mb ve 20 Mb'ı medyaya ayırdım.)
Ve eğer haklıysam, sorun Nginx PHP-TPM sunucularının "FastCGI"sından kaynaklanıyor olabilir ki bu benim durumumdur, yani TPM bölmesinde işaretlenecek veya işaretini kaldıracak çok sayıda kutu var, ama hangileri?
SSH komutunu fark ettim:
chown -R nginx:nginx /srv/www/domain.test/public/
chmod g+w dosyası.dosya
Ama sunucuma uyacak mı?
Değerli tavsiyeleriniz için şimdiden teşekkür ederiz.