إنتقل إلى المحتوى الرئيسي

صلاحيات الملفات والتخزين

تُعدّ صلاحيات الملفات الصحيحة أمرًا بالغ الأهمية للأمان والوظائف معًا.


الصلاحيات المطلوبة

المسارالصلاحيةالمالكالغرض
جذر المشروع (/var/www/feedbackpulse-saas/)755www-dataملفات التطبيق
storage/775www-dataالسجلات، الذاكرة المؤقتة، الجلسات، الرفعات
storage/app/public/775www-dataالرفعات العامة (الشعارات، الصور)
storage/framework/cache/775www-dataذاكرة التطبيق المؤقتة
storage/framework/sessions/775www-dataجلسات المستخدمين
storage/framework/views/775www-dataعروض Blade المُصرَّفة
storage/logs/775www-dataسجلات التطبيق
bootstrap/cache/775www-dataذاكرة تشغيل الإطار المؤقتة
.env640www-dataالإعداد الحساس

ضبط الصلاحيات (Linux)

cd /var/www/feedbackpulse-saas

# ضبط الملكية
sudo chown -R www-data:www-data .

# الملفات: 644، المجلدات: 755
sudo find . -type f -exec chmod 644 {} \;
sudo find . -type d -exec chmod 755 {} \;

# المجلدات القابلة للكتابة
sudo chmod -R 775 storage bootstrap/cache

# حماية ملف .env
sudo chmod 640 .env

استبدل www-data بمستخدم خادم الويب الخاص بك:

  • Apache على Ubuntu: www-data
  • Nginx على Ubuntu: www-data
  • Apache على CentOS: apache
  • Nginx على CentOS: nginx
  • Laragon على Windows: لا حاجة لتغيير الصلاحيات

الرابط الرمزي للتخزين

يستخدم Laravel رابطًا رمزيًا لجعل الملفات في storage/app/public/ متاحة عبر الويب:

public/storage -> storage/app/public/

إنشاؤه

php artisan storage:link

التحقق منه

ls -la public/storage
# يجب أن يُظهر: public/storage -> /var/www/feedbackpulse-saas/storage/app/public

ما الذي يُخزّنه

المجلدالمحتوى
storage/app/public/logos/شعارات شركات المستأجرين
storage/app/public/products/صور المنتجات
storage/app/public/submissions/الصور المرفوعة من التعليقات
storage/app/public/avatars/صور ملفات تعريف المستخدمين
storage/app/public/landing/أصول صفحة الهبوط

إدارة مساحة القرص

مراقبة استخدام القرص

# التحقق من الاستخدام الكلي للقرص
df -h

# التحقق من استخدام تخزين FeedbackPulse
du -sh storage/app/public/
du -sh storage/logs/
du -sh storage/framework/cache/

تدوير السجلات

يمكن أن تكبر سجلات Laravel. أعدّ تدوير السجلات:

sudo nano /etc/logrotate.d/feedbackpulse
/var/www/feedbackpulse-saas/storage/logs/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
copytruncate
}

مسح الذاكرة المؤقتة

cd /var/www/feedbackpulse-saas

# مسح ذاكرة التطبيق المؤقتة
php artisan cache:clear

# مسح العروض المُصرَّفة
php artisan view:clear

# مسح ذاكرة المسارات المؤقتة
php artisan route:clear

# مسح ذاكرة الإعداد المؤقتة
php artisan config:clear

# كل ذلك دفعة واحدة
php artisan optimize:clear

الخطوات التالية