عند استخدام تثبيت جديد لـ Drupal 7.10 ، لقد قمت بتعيين دليل التحميلات العامة إلى sites/uploads
.
عندما أضيف بعد ذلك صورة إلى مثيل المحتوى ، أحمل الصورة الأصلية إلى sites/example.org/files/imagename.png
كما هو متوقع. ومع ذلك ، لا يتم إنشاء الصور الأخرى (الصورة المصغرة والمتوسطة والكبيرة) عند sites/example.org/styles/*
.
الدليل قابل للقراءة والكتابة من قبل مستخدم PHP5-FPM ، وبالتالي يجب ألا تكون هناك أذونات مشكلة.
لماذا يحدث هذا؟ كيف يمكنني إصلاح ذلك؟
صحيح ، الإجابة هي في الواقع أكثر دقة مما أدركته. تبين أن استبدال D7 imagecache
يحتاج إلى بعض الاهتمام في nginx vhost. بدون إرسال 404s إلى Drupal للملفات المفقودة ، لم يتم إنشاء الصور - وهو أمر لم أدركه في البداية ، كما افترضت أنه تم إنشاؤه عند التحميل.
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ ^/sites/.*/files/styles/ {
try_files $uri @rewrite;
}
يجب إضافته إلى تعريف الخادم الخاص بك ، ويجب أن تكون مستعدًا لبدء التنفيذ. من الواضح أن المسار قد يحتاج إلى تغيير الإعداد الخاص بك ، ولكن بالنسبة لي كان كذلك.
تأكد من التحقق من كل من مسار نظام الملفات العام والمسار المؤقت في admin/config/media/file-system
بمجرد تعيين هذين المجلدين بالأذونات الصحيحة ، يتم إنشاء المجلدات الفرعية الخاصة بي تلقائيًا عندما أحفظ ملفًا ، ويتم حفظ الصورة ، وتختفي رسالة الخطأ :-)
في حالتي ، كانت المشكلة تسببت في جلب الصور باستخدام https ،
أضفت الأسطر التالية في إعدادات الصفحة الآمنة لتجاهل https على مسارات الملفات.
*/files/*
أمل أن هذا يساعد شخصاما. :)
لإكمال إجابة Letharion ، إليك الطريقة التي استخدمتها للحصول على أنماط صور مصغرة ومتوسطة ...
أحرص على التحقق أولاً من جميع النقاط المذكورة أعلاه ، دون نتيجة.
ثم (على نظام تشغيل Linux) ، قمت بتحرير /usr/local/etc/suphp.conf إلى تغيير umask على php ، بحيث يمكنه إنشاء ملفات ودلائل بأذونات 755 كحد أقصى (كان على 744 كحد أقصى).
وهذا حل المشكلة بشكل نهائي. :)
بينما تقول أنك قد تحققت من الأذونات ، فلا يزال هذا هو المكان الذي سأبدأ فيه ، حيث كنت أواجه هذه المشكلة بنفسي ، بشكل متكرر ، ويكاد يكون دائمًا دائمًا كانت مشكلة أذونات.
نصيحة عامة: أولاً ، انتقل إلى admin/config/media/file-system وانقر على "حفظ التهيئة". سيؤدي هذا Drupal إلى إعادة تقييم أذونات الدلائل المعينة ، وسيعطيك رسائل خطأ إذا وجدت مشكلة.
ثانيًا: أفترض أن لديك Apache أو www-data أو مستخدمين آخرين يمتلكون خادم الويب ، على عكس مستخدم php؟ على نظام Linux أو Mac ، Sudo لهذا المستخدم. إن محاولة كتابة ملف باعتباره المستخدم الصحيح ، هي أفضل طريقة للتأكد من حصولك على الأذونات الصحيحة. انتقل إلى sites/domain.com/files/، واتصل بـ "echo data> new_file ؛ cat new_file ؛" في المحطة. سيؤدي ذلك إلى التحقق من أنه يمكنك بالفعل الكتابة إلى دليل الكتابة. افعل نفس الشيء مع دير tmp. نأمل أن يتمكن شخص آخر من اقتراح كيفية تنفيذ نفس الإجراءات على نظام مثل النوافذ.
ثالثًا: لاستبعاد أذونات الدليل ، قم بتطبيق دليل الملفات 777 بشكل متكرر. يمكنك استعادة المزيد من أذونات عاقل بعد ذلك
find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644
رابعاً: تأكد من أن الدليل tmp الذي يحتوي على تصاريح كاملة.
خامساً: قد تحتاج إلى البدء في تصحيح الكود إذا كنت قد اكتشفته الآن.
أنا على Drupal 8.0.3.
في حالتي ، لم يتم إنشاء هذا المجلد على التثبيت.
sites/default/files/field/image
لذا أضعه عن طريق النسخ من الإصدار الأقدم من تثبيت Drupal.
تظهر الآن جميع الصور بما في ذلك الصور المصغرة والمتوسطة والكبيرة.
GP Code library إنشاء صورة مصغرة بواسطة php عندما نقوم بتحميل صور كبيرة الحجم على الخادم. تستغرق الصور الكبيرة التي يتم تحميلها وقتًا أطول للتحميل على صفحة الويب ، لذلك نحتاج إلى عرض صور صغيرة الحجم على صفحة الويب الخاصة بنا. الصورة المصغرة للصورة هي حل لإنشاء الصورة المصغرة للصورة التي تم تحميلها لعرض الصور بالحجم المطلوب على موقعنا. http://codelibrary.googleplus.co.in/create-thumbnail-image-by-php/