المواقع
Frappe هو منصة متعددة المستأجرين، ويُطلق على كل مستأجر اسم موقع. لكل موقع قاعدة بياناته الخاصة. توجد المواقع في دليل يُسمى sites، ويُفترض أنه دليل العمل الحالي عند تشغيل أمر bench.
دليل المواقع
يوجد دليل المواقع frappe-bench/sites حيث توجد جميع المواقع لهذه البيئة (bench). كما يحتوي على بعض الملفات والأدلة الأخرى التي سيتم شرحها فيما بعد.
apps.txt
يحتوي هذا الملف على قائمة تطبيقات Frappe. يجب إدراج التطبيق هنا قبل تثبيته على موقع. يتم إضافته تلقائيًا عند تشغيل أمر bench get-app أو bench new-app.
common_site_config.json
يمكن وضع التكوين المشترك لجميع المواقع في هذا الملف. تعرف على المزيد حول تكوين الموقع.
assets
تحتوي الأصول (Assets) على الملفات المطلوب تقديمها لمتصفح العميل. تتضمن هذه الملفات بشكل عام *.js، *.css، وملفات الصور. يتم إنشاء هذا الدليل تلقائيًا باستخدام أمر bench build. يتم تقديم هذا الدليل بواسطة Nginx في بيئة الإنتاج.
إنشاء موقع جديد
لإنشاء موقع جديد، قم بتشغيل الأمر التالي من دليل frappe-bench:
$ bench new-site mysite.localhost
Installing frappe...
Updating DocTypes for frappe : [========================================]
Updating country info : [========================================]
*** Scheduler is disabled ***
سيتم الآن إنشاء دليل mysite.localhost في دليل sites.
هيكل الدليل
sites/mysite.localhost
├── locks
├── private
│ ├── backups
│ └── files
├── public
│ └── files
├── site_config.json
└── task-logs
- locks: يُستخدم هذا الدليل بواسطة المجدول (scheduler) لمزامنة المهام المختلفة باستخدام مفهوم قفل الملفات.
- private: يحتوي هذا الدليل على الملفات التي تتطلب مصادقة للوصول إليها. يحتوي على ملفات خاصة ونسخ احتياطية. يمكن الوصول إليها عبر عنوان URL:
/private/files/private-file.png. - public: يحتوي هذا الدليل على الملفات التي يمكن الوصول إليها للجمهور. يمكن الوصول إليها عبر عنوان URL:
/files/public-file.png. - site_config.json: يحتوي هذا الملف على التكوين المحدد للموقع.
تكوين الموقع
يوجد ملف باسم site_config.json في كل دليل موقع ويُستخدم لتخزين التكوين المحدد للموقع. القيم متاحة في المتغير المحلي frappe.conf كقاموس (dict).
مثال على site_config.json:
{
"db_name": "test_frappe",
"db_password": "test_frappe",
"admin_password": "admin",
}
لتعلم المزيد حول إدارة تكوينات الموقع أو مستوى Bench، اطلع على هذا المستند الشامل.
تحديد الموقع
أثناء الرد على طلب HTTP، يتم تحديد موقع تلقائيًا بناءً على:
- رأس Host في طلب HTTP يطابق موقعًا.
- رأس X-Frappe-Site-Name في طلب HTTP يطابق موقعًا.
من الممكن أيضًا إجبار خادم التطوير على تقديم موقع محدد عن طريق بدء تشغيله بالأمر التالي:
bench --site mysite.localhost serve
تعيين موقع كموقع حالي
لإجبار استخدام موقع كموقع افتراضي، قم بتشغيل الأمر التالي:
bench use mysite.localhost
بعد تشغيل هذا الأمر، يمكن تشغيل الأوامر المحددة للموقع دون معامل --site.
على سبيل المثال، بدلاً من تشغيل:
bench --site mysite.localhost migrate
يمكنك فقط تشغيل:
bench migrate