Saat menggunakan instalasi baru Drupal 7.10, saya telah menetapkan direktori untuk unggahan publik sites/uploads
.
Ketika saya kemudian menambahkan gambar ke instance konten, saya mendapatkan yang asli diunggah sites/example.org/files/imagename.png
seperti yang diharapkan. Namun, gambar lain (gambar kecil, sedang dan besar) tidak dapat dibuat di sites/example.org/styles/*
.
Direktori ini dapat dibaca dan ditulis oleh pengguna PHP5-FPM, dan karenanya tidak boleh ada masalah izin bijaksana.
Mengapa ini terjadi? Bagaimana saya bisa memperbaikinya?
Jawaban:
Benar, jawabannya sebenarnya sedikit lebih halus daripada yang saya sadari. Ternyata
imagecache
penggantian D7 membutuhkan perhatian di nginx vhost Anda. Tanpa 404 yang dikirim ke Drupal untuk file yang hilang, gambar tidak dibuat - sesuatu yang awalnya tidak saya sadari, karena saya berasumsi mereka dibuat saat diunggah.Itu perlu ditambahkan ke definisi server Anda, dan Anda harus siap untuk roll. Jelas, jalur mungkin perlu diubah untuk pengaturan Anda, tetapi untuk saya itu.
sumber
Pastikan untuk memeriksa jalur sistem file publik dan jalur sementara di admin / config / media / sistem file
Setelah saya mengatur kedua folder tersebut dengan izin yang benar, subfolder saya dibuat secara otomatis saat saya menyimpan file, gambar disimpan, dan pesan kesalahannya hilang :-)
sumber
Dalam kasus saya masalah ini disebabkan karena gambar diambil menggunakan https,
Saya menambahkan baris berikut pada pengaturan halaman aman untuk mengabaikan https pada jalur file.
*/files/*
Semoga ini bisa membantu seseorang. :)
sumber
Meskipun Anda mengatakan bahwa Anda telah memeriksa izin, di situlah saya akan mulai, karena saya sendiri sering mengalami masalah ini, dan itu hampir selalu menjadi masalah izin.
Saran umum: Pertama-tama, buka admin / config / media / sistem file, dan klik "Simpan konfigurasi". Ini akan menyebabkan Drupal mengevaluasi kembali izin direktori yang ditetapkan, dan akan memberi Anda pesan kesalahan jika menemukan masalah.
Kedua: Saya berasumsi bahwa Anda memiliki apache, atau www-data, atau pengguna lain, yang memiliki server web, yang bertentangan dengan pengguna php? Pada sistem Linux atau Mac, sudo ke pengguna itu. Mencoba menulis file sebagai pengguna yang tepat , adalah cara terbaik untuk benar-benar memastikan bahwa Anda memiliki izin yang tepat. Buka situs / domain.com / file /, dan panggil "echo data> new_file; cat new_file;" di terminal. Ini akan memverifikasi bahwa Anda benar-benar dapat menulis ke direktori tulis. Lakukan hal yang sama dengan dir tmp Anda. Semoga orang lain dapat menyarankan cara melakukan tindakan yang sama pada sistem seperti windows.
Ketiga: Untuk mengesampingkan izin direktori, terapkan 777 direktori file secara rekursif. Anda dapat mengembalikan lebih banyak izin yang waras setelahnya dengan
Keempat: Pastikan direktori tmp yang memiliki izin penuh.
Kelima: Anda mungkin perlu mulai men-debug kode jika Anda sudah menemukannya sekarang.
sumber
Untuk menyelesaikan jawaban Letharion, berikut adalah metode yang saya gunakan untuk mendapatkan thumbnail, sedang ... gaya gambar dibuat.
Saya tepat bahwa saya pertama kali memeriksa semua poin yang tercantum di atas, tanpa hasil.
Kemudian (pada OS Linux), saya mengedit /usr/local/etc/suphp.conf untuk mengubah umask di php , sehingga ia dapat membuat file DAN direktori dengan 755 izin maks (maksimum 744 maks).
Dan ini secara definitif memecahkan masalah. :)
sumber
Saya menggunakan Drupal 8.0.3.
Dalam kasus saya folder ini tidak dibuat pada instalasi.
Jadi saya menaruhnya dengan menyalin dari versi Drupal instalasi yang lebih lama.
Semua gambar termasuk gambar kecil, sedang dan besar sekarang muncul.
sumber
Periksa file .htaccess Anda di direktori root dan file. Ganti dengan file .htaccess baru jika diperlukan
sumber