it-swarm.asia

الفشل في إنشاء صور مصغرة ومتوسطة وكبيرة

عند استخدام تثبيت جديد لـ Drupal 7.10 ، لقد قمت بتعيين دليل التحميلات العامة إلى sites/uploads.

عندما أضيف بعد ذلك صورة إلى مثيل المحتوى ، أحمل الصورة الأصلية إلى sites/example.org/files/imagename.png كما هو متوقع. ومع ذلك ، لا يتم إنشاء الصور الأخرى (الصورة المصغرة والمتوسطة والكبيرة) عند sites/example.org/styles/*.

الدليل قابل للقراءة والكتابة من قبل مستخدم PHP5-FPM ، وبالتالي يجب ألا تكون هناك أذونات مشكلة.

لماذا يحدث هذا؟ كيف يمكنني إصلاح ذلك؟

10
jvc26

صحيح ، الإجابة هي في الواقع أكثر دقة مما أدركته. تبين أن استبدال D7 imagecache يحتاج إلى بعض الاهتمام في nginx vhost. بدون إرسال 404s إلى Drupal للملفات المفقودة ، لم يتم إنشاء الصور - وهو أمر لم أدركه في البداية ، كما افترضت أنه تم إنشاؤه عند التحميل.

location @rewrite {
    rewrite ^/(.*)$ /index.php?q=$1;
}

location ~ ^/sites/.*/files/styles/ {
    try_files $uri @rewrite;
}

يجب إضافته إلى تعريف الخادم الخاص بك ، ويجب أن تكون مستعدًا لبدء التنفيذ. من الواضح أن المسار قد يحتاج إلى تغيير الإعداد الخاص بك ، ولكن بالنسبة لي كان كذلك.

13
jvc26

تأكد من التحقق من كل من مسار نظام الملفات العام والمسار المؤقت في admin/config/media/file-system

بمجرد تعيين هذين المجلدين بالأذونات الصحيحة ، يتم إنشاء المجلدات الفرعية الخاصة بي تلقائيًا عندما أحفظ ملفًا ، ويتم حفظ الصورة ، وتختفي رسالة الخطأ :-)

2
sheldonkreger

في حالتي ، كانت المشكلة تسببت في جلب الصور باستخدام https ،

أضفت الأسطر التالية في إعدادات الصفحة الآمنة لتجاهل https على مسارات الملفات.

*/files/*

أمل أن هذا يساعد شخصاما. :)

2
shrish

لإكمال إجابة Letharion ، إليك الطريقة التي استخدمتها للحصول على أنماط صور مصغرة ومتوسطة ...

أحرص على التحقق أولاً من جميع النقاط المذكورة أعلاه ، دون نتيجة.

ثم (على نظام تشغيل Linux) ، قمت بتحرير /usr/local/etc/suphp.conf إلى تغيير umask على php ، بحيث يمكنه إنشاء ملفات ودلائل بأذونات 755 كحد أقصى (كان على 744 كحد أقصى).

وهذا حل المشكلة بشكل نهائي. :)

1
Kojo

بينما تقول أنك قد تحققت من الأذونات ، فلا يزال هذا هو المكان الذي سأبدأ فيه ، حيث كنت أواجه هذه المشكلة بنفسي ، بشكل متكرر ، ويكاد يكون دائمًا دائمًا كانت مشكلة أذونات.

نصيحة عامة: أولاً ، انتقل إلى 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 الذي يحتوي على تصاريح كاملة.

خامساً: قد تحتاج إلى البدء في تصحيح الكود إذا كنت قد اكتشفته الآن.

1
Letharion

أنا على Drupal 8.0.3.
في حالتي ، لم يتم إنشاء هذا المجلد على التثبيت.

sites/default/files/field/image

لذا أضعه عن طريق النسخ من الإصدار الأقدم من تثبيت Drupal.
تظهر الآن جميع الصور بما في ذلك الصور المصغرة والمتوسطة والكبيرة.

0
Chetabahana

GP Code library إنشاء صورة مصغرة بواسطة php عندما نقوم بتحميل صور كبيرة الحجم على الخادم. تستغرق الصور الكبيرة التي يتم تحميلها وقتًا أطول للتحميل على صفحة الويب ، لذلك نحتاج إلى عرض صور صغيرة الحجم على صفحة الويب الخاصة بنا. الصورة المصغرة للصورة هي حل لإنشاء الصورة المصغرة للصورة التي تم تحميلها لعرض الصور بالحجم المطلوب على موقعنا. http://codelibrary.googleplus.co.in/create-thumbnail-image-by-php/

0
user2275071