https://wiki.hsoub.com/api.php?action=feedcontributions&user=Bechir-ahmed&feedformat=atomموسوعة حسوب - مساهمات المستخدم [ar]2024-03-29T06:42:13Zمساهمات المستخدمMediaWiki 1.35.0https://wiki.hsoub.com/index.php?title=Laravel/homestead&diff=28437Laravel/homestead2019-04-18T13:48:51Z<p>Bechir-ahmed: ترقية إلى نسخة 5.7</p>
<hr />
<div><noinclude>{{DISPLAYTITLE:بيئة Homestead<br />
في Laravel}}</noinclude><br />
== مقدمة ==<br />
يسعى [[Laravel]] جاهدًا لجعل تجربة تطوير [[PHP]] بأكملها مبهجة، بما في ذلك بيئة التطوير المحلية الخاصة بك. يوفر Vagrant طريقة بسيطة وأنيقة لإدارة وتوفير الأجهزة الوهمية.<br />
<br />
Laravel Homestead هو عبارة عن منصة وهمية لـ Vargant Box الرسمي، أُنشِئ مسبقًا ويوفر لك بيئة تطوير رائعة دون أن يتطلب منك تثبيت [[PHP]] وخادم ويب وأي برنامج خادم آخر على جهازك المحلي. لا داعي للقلق حول تعطل نظام التشغيل الخاص بك! يمكن التخلص من أجهزة رVargant بالكامل. إذا حدث خطأ ما، فيمكنك حذف جهاز Vargant وإعادة إنشائه في دقائق!<br />
<br />
يعمل Homestead على أي نظام سواءً كان ويندوز أو ماك أو لينكس وتتضمن خادم الويب Nginx و PHP 7.2 و PHP 7.1 و PHP 7.0 و PHP 5.6 و MySQL و PostgreSQL و Redis و Memcached و [[Node.js|Node]] وجميع الأشياء الأخرى التي تحتاج إليها تطوير تطبيقات [[Laravel]] مذهلة.<br />
<br />
إذا كنت تستخدم ويندوز، فقد تحتاج إلى تمكين ميزة التسارع العتادي للأنظمة الوهمية (VT-x). يمكن عادةً تمكينه عبر BIOS الخاص بك. إذا كنت تستخدم Hyper-V على نظام UEFI، فقد تحتاج أيضًا إلى تعطيل Hyper-V من أجل الوصول إلى VT-x.<br />
=== البرامج المضمنة ===<br />
* Ubuntu 18.04<br />
* Git<br />
* [[PHP|PHP 7.2]]<br />
* [[PHP|PHP 7.1]]<br />
* [[PHP| PHP 7.0]]<br />
* [[PHP|PHP 5.6]]<br />
* [[Nginx]]<br />
<br />
* [[Apache]] (اختياري)<br />
* [[MySQL]]<br />
* [[MariaDB]] (اختياري)<br />
* [[Sqlite|Sqlite3]]<br />
* [[PostgreSQL]]<br />
* Composer<br />
* [[Node.js|Node]] (مع Yarn و Bower و Grunt و Gulp)<br />
* [[redis|Redis]]<br />
* Memcached<br />
* Beanstalkd<br />
* Mailhog<br />
<br />
* Neo4j (اختياري)<br />
* [[MongoDB]] (اختياري)<br />
* Elasticsearch (اختياري)<br />
* ngrok<br />
* wp-cli<br />
* Zend Z-Ray<br />
* Go<br />
* Minio<br />
<br />
== التثبيت والإعداد ==<br />
<br />
=== الخطوات الأولى ===<br />
قبل بدء بيئة Homestead الخاصة بك، يجب تثبيت VirtualBox 5.2 أو VMWare أو Parallels أو Hyper-V بالإضافة إلى Vagrant. توفر كافة حزم البرامج هذه برامج تثبيت مرئية سهلة الاستخدام لكافة أنظمة التشغيل الشائعة.<br />
<br />
حتى تكون قادراً على استخدام مزود VMware، سوف تحتاج إلى شراء كل من VMware Fusion / Workstation والمنصة الوهمية VMware Vagrant. على الرغم من أنه غير متوافر مجانًا، فإن VMware قادر على تزويد مجلد مشاركة بأداء سريع خارج المنصة.<br />
<br />
حتى تستخدم مزود Parallel، سوف تحتاج إلى تثبيت المكون الإضافي وهو Parallels Vagrant. وهو مجاني.<br />
<br />
بسبب قيود البيئة الوهمية Vagrant، فإن مزود Hyper-V يتجاهل جميع إعدادات الشبكة.<br />
<br />
==== تثبيت Homestead Vagrant Box ====<br />
بمجرد تثبيت VirtualBox أو VMware مع Vagrant، يجب إضافة بيئة <code>laravel/homestead</code> إلى تثبيت Vagrant باستخدام الأمر التالي في الطرفية الخاصة بك. سيستغرق تنزيل الملف عدة دقائق، اعتمادًا على سرعة الاتصال بالإنترنت:<syntaxhighlight lang="text"><br />
vagrant box add laravel/homestead<br />
</syntaxhighlight>إذا فشل هذا الأمر، فتأكد من أن تحديث Vagrant محدث.<br />
<br />
==== تثبيت Homestead ====<br />
يمكنك تثبيت Homestead عن طريق استنساخ المستودع. فكر في استنساخ المستودع في مجلد Homestead داخل مجلد "المنزل"، حيث سيعمل مربع "Homestead" كمضيف لجميع مشاريع [[Laravel]]:<syntaxhighlight lang="text"><br />
git clone https://github.com/laravel/homestead.git ~/Homestead<br />
</syntaxhighlight>يجب عليك التحقق من إصدار موسوم من Homestead لأن الفرع master قد لا يكون دائمًا ثابتًا. يمكنك العثور على أحدث إصدار ثابت على صفحة إصدار GitHub:<syntaxhighlight lang="text"><br />
cd ~/Homestead<br />
<br />
//استنساخ الاصدار المطلوب...<br />
<br />
git checkout v7.9.0<br />
<br />
<br />
</syntaxhighlight>وبمجرد الانتهاء من استنساخ قاعدة Homestead، شغِّل الأمر <code>bash init.sh</code> من المجلد Homestead لإنشاء ملف ضبط <code>Homestead.yaml</code>. سيوضع ملف <code>Homestead.yaml</code> في المجلد Homestead:<syntaxhighlight lang="text"><br />
// نظام ماك أو لينكس<br />
bash init.sh<br />
// ويندووز<br />
init.bat<br />
<br />
<br />
</syntaxhighlight><br />
<br />
=== ضبط Homestead ===<br />
<br />
==== إعداد مقدّم الخدمة الخاص بك ====<br />
يشير مفتاح <code>provider</code> في ملف <code>Homestead.yaml</code> الخاص بك إلى مزود الذي يفترض على Vargant أن يستخدمه: virtualbox أو vmware_fusion أو vmware_workstation parallels أو hyperv. بإمكانك أن تحدد هذا إلى المزود الذي ترغب به:<syntaxhighlight lang="text"><br />
provider: virtualbox<br />
</syntaxhighlight><br />
<br />
==== ضبط المجلدات المشتركة ====<br />
تحتوي الخاصية <code>folders</code> الخاصة بملف <code>Homestead.yaml</code> على جميع المجلدات التي ترغب في مشاركتها مع بيئة العمل Homestead الخاصة بك. والملفات الموجودة في هذه المجلدات ستتغير، سوف تبقى محفوظة في عملية مزامنة بين الجهاز المحلي وبيئة Homestead. وربما ستقوم بضبط العديد من الملفات المشتركة حسب الضرورة:<syntaxhighlight lang="text"><br />
folders:<br />
<br />
- map: ~/code<br />
to: /home/vagrant/code<br />
<br />
<br />
</syntaxhighlight>إذا كنت تُنشِئ بعض المواقع الإلكترونية لنفسك، فستكون بنية المجلدات الافتراضية مناسبة لك. وبالرغم من ذلك، لمّا أن أعداد المواقع الإلكترونية مستمر في النمو، فربما ستبدأ في اكتساب خبرة لأداء المشاكل. هذه المشكلة ستظهر بشكل واضح ومؤلم على الأجهزة الضعيفة أو المشاريع التي تحتوي على عدد كبير من الملفات. اذا كنت على دراية بهذه المشكلة، حاول أن تربط كل مشروع إلى مجلد Vargant مخصص له:<syntaxhighlight lang="text"><br />
folders:<br />
- map: ~/code/project1<br />
to: /home/vagrant/code/project1<br />
<br />
- map: ~/code/project2<br />
to: /home/vagrant/code/project2<br />
</syntaxhighlight>لتمكين NFS، سوف تحتاج لإضافة علامة بسيطة على الملف المتزامن مع ملف الضبط:<syntaxhighlight lang="text"><br />
folders:<br />
- map: ~/code<br />
to: /home/vagrant/code<br />
type: "nfs"<br />
</syntaxhighlight>عند استخدام NFS، يجب أن تضع في الحسبان تثبيت البرنامج المساعد vagrant-bindfs. سيحافظ هذا المكون الإضافي على أذونات المستخدمين , المجموعات الصحيحة للملفات والمجلدات داخل بيئة Homestead.<br />
<br />
يمكنك أيضًا تمرير أي خيار مدعوم بواسطة المجلدات المتزامنة في بيئة Vagrant بوضعها تحت مفتاح <code>option</code>:<syntaxhighlight lang="text"><br />
folders:<br />
- map: ~/code<br />
to: /home/vagrant/code<br />
type: "rsync"<br />
options:<br />
rsync__args: ["--verbose", "--archive", "--delete", "-zz"]<br />
rsync__exclude: ["node_modules"]<br />
</syntaxhighlight><br />
<br />
==== ضبط مواقع Nginx ====<br />
لست على معرفة بخادم Nginx؟ ليس هناك أى مشكلة. تسمح لك خاصية <code>sites</code> تعيين "نطاق" (domain) بسهولة إلى مجلد في بيئة Homestead الخاصة بك. يتم ضم ضبط عينة موقع في ملف <code>Homestead.yaml</code>. مرة أخرى، يمكنك إضافة العديد من المواقع إلى بيئة Homestead حسب الضرورة. يمكن أن تكون Homestead بمثابة بيئة ملائمة ومحاكاة لكل مشروع [[Laravel]] تعمل عليه:<syntaxhighlight lang="text"><br />
sites:<br />
- map: homestead.test<br />
to: /home/vagrant/code/Laravel/public<br />
</syntaxhighlight>إذا قمت بتغيير خاصية <code>sites</code> بعد تزويد بيئة Homestead، فيجب إعادة تشغيل <code>vagrant reload --provision</code> لتحديث ضبط Nginx على الجهاز الوهمي.<br />
<br />
==== ملف الاستضافات ====<br />
يجب إضافة "النطاقات" لمواقع Nginx إلى ملف hosts على جهازك. سيقوم ملف hosts بإعادة توجيه طلبات مواقع Homestead إلى جهاز Homestead الخاص بك. في نظامي التشغيل ماك ولينكس، يوجد هذا الملف في <code>etc/hosts/</code>. أما على نظام التشغيل ويندوز، فهو موجود في <code>C:\Windows\System32\drivers\etc\hosts</code>. ستظهر الخطوط التي تضيفها إلى هذا الملف كما يلي:<syntaxhighlight lang="text"><br />
192.168.10.10 homestead.test<br />
</syntaxhighlight>تأكد من أن عنوان IP المدرج هو الذي تم تعيينه في ملف <code>Homestead.yaml</code> الخاص بك. بمجرد أن تقوم بإضافة النطاق إلى ملف hosts الخاص بك والبدء بتشغيل بيئة Vagrant، ستتمكن من الوصول إلى الموقع عبر متصفح الويب الخاص بك:<syntaxhighlight lang="text"><br />
http://homestead.test<br />
</syntaxhighlight><br />
<br />
=== تشغيل بيئة Vagrant ===<br />
بمجرد أن تحرر <code>Homestead.yaml</code> حسب رغبتك، شغِّل الأمر <code>vagrant up</code> من داخل مجلد Homestead الخاص بك. سوف يقوم Vagrant بتمهيد الجهاز الوهمي ويقوم تلقائيًا بضبط مجلداتك المشتركة ومواقع Nginx.<br />
<br />
لإغلاق الجهاز، يمكنك استخدام الأمر <code>vagrant destroy --force</code>.<br />
<br />
=== قبل تثبيت المشروع ===<br />
بدلًا من تثبيت Homestead على كامل النظام ومشاركة Homestead نفسه عبر جميع المشروعات، يمكنك بدلًا من ذلك تهيئة نسخة Homestead لكل مشروع تديره. قد يكون تثبيت Homestead لكل مشروع مفيدًا إذا كنت ترغب في شحن Vagrantfile مع مشروعك، مما يسمح للآخرين العاملين في المشروع أن يستعملوه مباشرةً عبر الأمر <code>vagrant up</code>.<br />
<br />
لتثبيت Homestead مباشرة في مشروعك، اطلبه باستخدام Composer:<syntaxhighlight lang="text"><br />
composer require laravel/homestead --dev<br />
</syntaxhighlight>بمجرد تثبيت Homestead، استخدم الأمر make لإنشاء ملف Vagrantfile و <code>Homestead.yaml</code> في جذر مشروعك. سيقوم الأمر <code>make</code> بضبط توجيهات <code>folders</code> و <code>sites</code> في ملف <code>Homestead.yaml</code> تلقائيًا.<br />
<br />
على أنظمة لينكس أو ماك:<syntaxhighlight lang="php"><br />
php vendor/bin/homestead make<br />
</syntaxhighlight>على نظام ويندوز:<syntaxhighlight lang="text"><br />
vendor\\bin\\homestead make<br />
</syntaxhighlight>بعد ذلك، قم بتشغيل الأمر <code>vagrant up</code> والوصول إلى مشروعك على <nowiki>http://homestead.test</nowiki> في متصفحك. تذكر أنك ستظل بحاجة إلى إضافة إدخال ملف <code>/etc/hosts</code> لـ <code>homestead.test</code> أو النطاق الذي تختاره.<br />
<br />
=== تثبيت [[MariaDB]] ===<br />
إذا كنت تفضل استخدام قاعدة البيانات [[MariaDB]] بدلاً من [[MySQL]]، فيمكنك إضافة خيار [[MariaDB]] إلى ملف <code>Homestead.yaml</code> الخاص بك. سيؤدي هذا الخيار إلى إزالة [[MySQL]] وتثبيت [[MariaDB]]. يعمل [[MariaDB]] كبديل بديل عن [[MySQL]] لذا يجب عليك استخدام برنامج تشغيل قاعدة بيانات [[MySQL]] في ضبط قاعدة بيانات التطبيق الخاص بك:<syntaxhighlight lang="php"><br />
box: laravel/homestead<br />
ip: "192.168.10.10"<br />
memory: 2048<br />
cpus: 4<br />
provider: virtualbox<br />
mariadb: true<br />
</syntaxhighlight><br />
<br />
=== تثبيت قاعدة بيانات [[MongoDB]] ===<br />
لتثبيت إصدار MongoDB Community قم بتحديث ملف <code>Homestead.yaml</code> الخاص بك مع خيار الضبط التالي:<syntaxhighlight lang="php"><br />
mongodb: true<br />
</syntaxhighlight>تثبيت قاعدة بيانات [[MongoDB]] الافتراضي سيعمل على إعادة تعيين اسم مستخدم إلى homestead و كلمة مرور مطابقة إلى secret.<br />
<br />
=== تثبيت Elasticsearch ===<br />
لتثبيت Elasticsearch، أضف خيار elasticsearch إلى ملف <code>Homestead.yaml</code> وحدد إصدارًا مدعومًا، والذي قد يكون إصدارًا رئيسيًا أو رقم إصدار دقيق (major.minor.patch). سوف ينشئ التثبيت الافتراضي شبكةً عنقوديةً (cluster) باسم "homestead". يجب ألا تعطي Elasticsearch أبداً أكثر من نصف ذاكرة نظام التشغيل، لذا تأكد من أن جهاز Homestead الخاص به لديه على الأقل ضعف المخصص لنظام Elasticsearch:<syntaxhighlight lang="php"><br />
box: laravel/homestead<br />
ip: "192.168.10.10"<br />
memory: 4096<br />
cpus: 4<br />
provider: virtualbox<br />
elasticsearch: 6<br />
<br />
<br />
</syntaxhighlight>راجع توثيق Elasticsearch للتعرف على كيفية تخصيص الضبط الخاص بك.<br />
<br />
=== تثبيت Neo4j ===<br />
Neo4j هو نظام إدارة قواعد البيانات الرسومية. لتثبيت إصدار Neo4j Community قم بتحديث ملف <code>Homestead.yaml</code> الخاص بك مع خيار الضبط التالي:<syntaxhighlight lang="php"><br />
neo4j: true<br />
</syntaxhighlight>سيقوم الإعداد الافتراضي Neo4j بتعيين اسم المستخدم لقاعدة البيانات إلى homestead وكلمة المرور المطابقة إلى secret. للوصول إلى متصفح Neo4j، قم بزيارة <code><nowiki>http://homestead.test:7474</nowiki></code> عبر متصفح الويب الخاص بك. المنافذ 7687 (Bolt) و 7474 (HTTP) و 7473 (HTTPS) على استعداد لتقديم طلبات من عميل Neo4j.<br />
<br />
=== الأسماء البديلة ===<br />
يمكنك إضافة الأسماء البديلة (aliases) لصدفة [[Bash]] إلى الجهاز Homestead الخاص بك عن طريق تعديل ملف aliases داخل دليل Homestead الخاص بك:<syntaxhighlight lang="php"><br />
alias c='clear'<br />
alias ..='cd ..'<br />
<br />
<br />
</syntaxhighlight>بعد تحديثك لملف aliases، يجب إعادة توفير جهاز الجهاز الرئيسي باستخدام أمر <code>vagrant reload --provision</code>. سيضمن ذلك توفر الأسماء البديلة الجديدة على الجهاز.<br />
<br />
== الاستخدام اليومي ==<br />
<br />
=== الوصول إلى Homestead العام ===<br />
في بعض الأحيان قد ترغب في تشغيل vagrant up على جهاز Homestead الخاص بك من أي مكان على نظام الملفات الخاص بك. يمكنك القيام بذلك على أنظمة ماك أو لينكس بإضافة دالة <code>Bash</code> إلى ملف تعريف Bash الخاص بك (Bash profile). أما على ويندوز، قد تحقق هذا من خلال إضافة ملف "batch" إلى المتغير PATH الخاص بك. تتيح لك هذه البرامج النصية تشغيل أي أمر Vagrant من أي مكان على نظامك وسوف تقوم تلقائيًا بتوجيه ذلك الأمر إلى تثبيت Homestead:<br />
<br />
==== نظام ماك أو لينكس ====<br />
<syntaxhighlight lang="php"><br />
function homestead() {<br />
<br />
( cd ~/Homestead && vagrant $* )<br />
<br />
}<br />
<br />
<br />
</syntaxhighlight>تأكد من ضبط مسار <code>~/Homestead</code> في الوظيفة إلى موقع التثبيت الفعلي لبرمجية Homestead. بمجرد إضافة الدالة، يمكنك تشغيل أوامر مثل <code>homestead up</code> أو <code>homestead ssh</code> من أي مكان على نظامك.<br />
<br />
==== نظام ويندوز ====<br />
أنشِئ الملف <code>homestead.bat</code> في أي مكان على جهازك مع المحتويات التالية:<syntaxhighlight lang="text"><br />
@echo off<br />
set cwd=%cd%<br />
set homesteadVagrant=C:\Homestead<br />
cd /d %homesteadVagrant% && vagrant %*<br />
cd /d %cwd%<br />
set cwd=<br />
set homesteadVagrant=<br />
<br />
<br />
</syntaxhighlight>تأكد من تعديل المثال <code>C:\Homestead</code> في البرنامج النصي إلى الموقع الفعلي لتثبيت Homestead الخاص بك. بعد إنشاء الملف، أضف موقع الملف إلى PATH الخاص بك. يمكنك بعد ذلك تشغيل أوامر مثل <code>homestead up</code> أو <code>homestead ssh</code> من أي مكان على نظامك.<br />
<br />
=== الاتصال عبر SSH ===<br />
يمكنك وضع SSH في جهازك الافتراضي بتنفيذ الأمر <code>ssh vagrant</code> من مجلد Homestead الخاص بك.<br />
<br />
ولكن لمّا كنت ستحتاج على الأرجح إلى SSH في جهاز Homestead الخاص بك بشكل متكرر، فجرّب إضافة "الدالة" المذكورة أعلاه إلى جهازك المضيف إلى SSH بسرعة في بيئة Homestead.<br />
<br />
=== الاتصال بقواعد البيانات ===<br />
تكون قاعدة بيانات homestead لكل من [[MySQL]] و [[PostgreSQL]] مضبوطةً افتراضيًا. لراحة أكبر، ضبط ملف <code>.env Laravel</code>. لاستخدام قاعدة البيانات مع إطار العمل مباشرةً.<br />
<br />
للاتصال بقاعدة بيانات [[MySQL]] أو [[PostgreSQL]] من عميل قاعدة بيانات جهازك المضيف، يجب عليك الاتصال بالمضيف 127.0.0.1 والمنفذ 33060 (MySQL) أو 54320 (PostgreSQL). اسم المستخدم وكلمة المرور لكل من قواعد البيانات هو homestead / secret.<br />
<br />
يجب عليك فقط استخدام هذه المنافذ غير القياسية عند الاتصال بقواعد البيانات من الجهاز المضيف. ستستخدم المنفذين 3306 و 5432 الافتراضيين في ملف ضبط قاعدة بيانات [[Laravel]] نظرًا لأن Laravel يعمل داخل الجهاز الظاهري.<br />
<br />
=== النسخ الاحتياطي لقاعدة البيانات ===<br />
يستطيع Homestead أن يعمل على نسخ قاعدة البيانات الخاصة بك بشكل تلقائي عندما يتم حذف جهاز Vargant. للاستفادة من هذه الميزة، يجب أن تستخدم Vagrant 2.1.0 أو أعلى. أو، إذا كنت تستخدم إصدارًا قديمًا من Vagrant، فيجب عليك تثبيت الإضافة vagrant-triggers. لتمكين النسخ الاحتياطي التلقائي لقاعدة البيانات، أضف السطر التالي إلى ملف <code>Homestead.yaml</code>:<syntaxhighlight lang="php"><br />
backup: true.<br />
</syntaxhighlight>بمجرد انتهاء عملية الضبط، سيُصدِّر Homestead قواعد البيانات إلى مجلدي mysql_backup و postgres_backup عند تنفيذ الأمر <code>vagrant destroy</code>. يمكن العثور على هذه المسارات في المجلد حيث قمت باستنساخ Homestead أو في جذر المشروع إذا كنت تستخدم أسلوب التثبيت لكل مشروع.<br />
<br />
=== إضافة مواقع أخرى ===<br />
بمجرد أن يتم توفير بيئة Homestead وتشغيلها، قد ترغب في إضافة مواقع Nginx إضافية لتطبيقات [[Laravel]] الخاصة بك. يمكنك تشغيل أكبر عدد ممكن من عمليات Laravel كما تريد في بيئة واحدة في Homestead. لإضافة موقع إضافي، أضف الموقع إلى ملف <code>Homestead.yaml</code> الخاص بك:<syntaxhighlight lang="php"><br />
sites:<br />
<br />
- map: homestead.test<br />
to: /home/vagrant/code/Laravel/public<br />
<br />
- map: another.test<br />
to: /home/vagrant/code/another/public<br />
<br />
<br />
</syntaxhighlight>إذا كان Vagrant لا يدير ملف "hosts" الخاص بك تلقائيًا، فقد تحتاج إلى إضافة الموقع الجديد إلى ذلك الملف أيضًا:<syntaxhighlight lang="php"><br />
192.168.10.10 homestead.test<br />
192.168.10.10 another.test<br />
<br />
<br />
</syntaxhighlight>بمجرد إضافة الموقع، شغِّل الأمر <code>vagrant reload –provision</code> من مجلد Homestead الخاص بك.<br />
<br />
==== أنواع الموقع ====<br />
تدعم Homestead عدة أنواع من المواقع التي تسمح لك بتشغيل المشاريع التي لا تعتمد على [[Laravel]] بسهولة. على سبيل المثال، يمكننا بسهولة إضافة تطبيق [[Symfony]] إلى Homestead باستخدام نوع موقع symfony2: <syntaxhighlight lang="php"><br />
sites:<br />
<br />
- map: symfony2.test<br />
to: /home/vagrant/code/Symfony/web<br />
type: "symfony2"<br />
<br />
<br />
</syntaxhighlight>أنواع المواقع المتاحة هي: apache و apigility و expressive و laravel (الافتراضي) و proxy و silverstripe و statamic و symfony2 و symfony4 و zf.<br />
<br />
==== مقاييس الموقع ====<br />
يمكنك إضافة قيم Nginx fastcgi_param إضافية إلى موقعك عبر توجيه موقع params. على سبيل المثال، سنقوم بإضافة المعامل FOO بقيمة BAR:<syntaxhighlight lang="php"><br />
sites:<br />
<br />
- map: homestead.test<br />
to: /home/vagrant/code/Laravel/public<br />
params:<br />
- key: FOO<br />
value: BAR<br />
<br />
<br />
</syntaxhighlight><br />
<br />
=== متغيرات البيئة ===<br />
يمكنك تعيين متغيرات البيئة العامة عن طريق إضافتها إلى ملف <code>Homestead.yaml</code> الخاص بك:<syntaxhighlight lang="php"><br />
variables:<br />
<br />
- key: APP_ENV<br />
value: local<br />
<br />
- key: FOO<br />
value: bar<br />
<br />
<br />
</syntaxhighlight>بعد تحديث <code>Homestead.yaml</code>، تأكد من تطبيق هذا الضبط على الجهاز عن طريق تشغيل <code>vagrant reload --provision</code>. سيؤدي ذلك إلى تحديث تهيئة PHP-FPM لكافة إصدارات [[PHP]] المثبتة وكذلك تحديث البيئة للمستخدم vagrant.<br />
<br />
=== ضبط جداول Cron ===<br />
يوفر [[Laravel]] طريقة ملائمة لجدولة وظائف Cron من خلال جدولة <code>schedule:run</code> بشكل فردي من خلال أمر Artisan ليتم تشغيله كل دقيقة. سوف يفحص <code>schedule:run</code> جدولة المهام المحددة في فئة التطبيق <code>App\Console\Kernel</code> لتحديد المهام التي يجب تشغيلها.<br />
<br />
إذا كنت ترغب في تشغيل الأمر <code>schedule:run</code> ليتم تشغيله لموقع Homestead، فيمكنك تعيين خيار <code>schedule</code> على <code>true</code> عند تحديد الموقع:<syntaxhighlight lang="php"><br />
sites:<br />
<br />
- map: homestead.test<br />
to: /home/vagrant/code/Laravel/public<br />
schedule: true<br />
<br />
<br />
</syntaxhighlight>ستُعرَّف مهمة Cron الخاصة بالموقع في المجلد <code>etc/cron.d/</code> الخاص بالجهاز الوهمي.<br />
<br />
=== ضبط Mailhog ===<br />
Mailhog يسمح لك لالتقاط البريد الإلكتروني الخاص بك بسهولة وفحصها دون بالفعل إرسال البريد إلى المستلمين. للبدء، حدِّث ملف .env الخاص بك لاستخدام إعدادات البريد التالية:<syntaxhighlight lang="php"><br />
MAIL_DRIVER=smtp<br />
MAIL_HOST=localhost<br />
MAIL_PORT=1025<br />
MAIL_USERNAME=null<br />
MAIL_PASSWORD=null<br />
MAIL_ENCRYPTION=null<br />
<br />
<br />
</syntaxhighlight><br />
<br />
=== ضبط Minio ===<br />
يوفر Minio طبقة تخزين متوافقة مع S3 على جهازك Homestead عبر منفذ 9600. لاستخدام Minio، حدِّث ملف Homestead.yaml الخاص بك مع خيار الضبط التالي:<syntaxhighlight lang="php"><br />
minio: true<br />
</syntaxhighlight>بشكل افتراضي، يتوافر Minio على المنفذ 9600. يمكنك الوصول إلى لوحة التحكم Minio بالانتقال إلى <nowiki>http://homestead</nowiki>: 9600. مفتاح الوصول الافتراضي هو homestead، في حين أن المفتاح السري الافتراضي هو secretkey. عند الوصول إلى Minio، يجب دائمًا استخدام المنطقة us-east-1.<br />
<br />
بعد ذلك، ستحتاج إلى ضبط تهيئة القرص S3 في ملف الضبط <code>config/filesystems.php</code> الخاص بك. يجب إضافة خيار <code>use_path_style_endpoint</code> إلى ضبط القرص، بالإضافة إلى تحديث مفتاح عنوان url إلى endpoint:<syntaxhighlight lang="php"><br />
's3' => [<br />
<br />
'driver' => 's3',<br />
'key' => env('AWS_ACCESS_KEY_ID'),<br />
'secret' => env('AWS_SECRET_ACCESS_KEY'),<br />
'region' => env('AWS_DEFAULT_REGION'),<br />
'bucket' => env('AWS_BUCKET'),<br />
'endpoint' => env('AWS_URL'),<br />
'use_path_style_endpoint' => true<br />
<br />
]<br />
<br />
<br />
</syntaxhighlight>أخيرًا، يجب تحديث ملف .env باستخدام AWS_URL الصحيح:<syntaxhighlight lang="php"><br />
AWS_ACCESS_KEY_ID=homestead<br />
AWS_SECRET_ACCESS_KEY=secretkey<br />
AWS_DEFAULT_REGION=us-east-1<br />
AWS_URL=http://homestead:9600<br />
<br />
<br />
</syntaxhighlight><br />
<br />
=== البوابات ===<br />
بشكل افتراضي، يُعاد توجيه المنافذ التالية إلى بيئة Homestead الخاصة بك:<br />
* SSH: 2222: يُمرَّر إلى 22<br />
* ngrok UI: 4040 : يُمرَّر إلى 4040<br />
* HTTP: 8000: يُمرَّر إلى 80<br />
* HTTPS: 44300: يُمرَّر إلى 443<br />
* MySQL: 33060: يُمرَّر إلى 3306<br />
* PostgreSQL: 54320: يُمرَّر إلى 5432<br />
* MongoDB: 27017: يُمرَّر إلى 27017<br />
* Mailhog: 8025: يُمرَّر إلى 8025<br />
* Minio: 9600 : يُمرَّر إلى 9600<br />
<br />
==== إعادة توجيه المنافذ الإضافية ====<br />
إذا كنت ترغب في ذلك، فيمكنك إعادة توجيه منافذ إضافية إلى جهاز Vagrant، بالإضافة إلى تحديد البروتوكول الخاص بها:<syntaxhighlight lang="php"><br />
ports:<br />
<br />
- send: 50000<br />
to: 5000<br />
<br />
- send: 7777<br />
to: 777<br />
<br />
protocol: udp<br />
<br />
<br />
</syntaxhighlight><br />
<br />
=== مشاركة البيئة الخاصة بك ===<br />
قد ترغب في بعض الأحيان في مشاركة ما تعمل عليه حاليًا مع زملاء العمل أو العميل. يمتلك Vagrant طريقةً مدمجةً لدعم هذا عن طريق vagrant share؛ ومع ذلك، لن يعمل هذا إذا كان لديك مواقع متعددة تمت تهيئتها في ملف <code>Homestead.yaml</code> الخاص بك.<br />
<br />
لحل هذه المشكلة، تتضمن Homestead أمر share الخاص بها. لتبدأ، سجِّل دخولك عبر SSH إلى جهاز Homestead الخاص بك عبر vagrant ssh وشغِّل <code>share homestead.test</code>. سيؤدي هذا إلى مشاركة موقع homestead.test من ملف إعدادات Homestead.yaml. بالطبع، يمكنك استبدال أي من مواقعك الأخرى التي تمت تهيئتها على homestead.test:<syntaxhighlight lang="php"><br />
share homestead.test<br />
</syntaxhighlight>بعد تشغيل الأمر، سترى شاشة Ngrok تظهر والتي تحتوي على سجل النشاط وعناوين URL المتاحة للعموم للموقع المشترك. إذا كنت ترغب في تحديد منطقة مخصصة، أو نطاق فرعي، أو خيار وقت تشغيل Ngrok، فيمكنك إضافتها إلى أمر share الخاص بك:<syntaxhighlight lang="php"><br />
share homestead.test -region=eu -subdomain=laravel<br />
</syntaxhighlight>تحذير: تذكر أن Vagrant غير آمن بطبيعته، وستُعرَّض جهازك الوهمي إلى الإنترنت عند تشغيل الأمر share.<br />
<br />
=== إصدارات متعددة من PHP ===<br />
ملاحظة: هذه الميزة متوافقة فقط مع Nginx.<br />
<br />
قدمت Homestead 6 الدعم للإصدارات المتعددة من PHP على نفس الجهاز الوهمي.. يمكنك تحديد أي إصدار من [[PHP]] لاستخدامه لموقع معين داخل ملف <code>Homestead.yaml</code> الخاص بك. إصدارات [[PHP]] المتاحة هي: "5.6" و "7.0" و "7.1" و "7.2" (الافتراضي):<syntaxhighlight lang="php"><br />
sites:<br />
<br />
- map: homestead.test<br />
to: /home/vagrant/code/Laravel/public<br />
php: "5.6"<br />
<br />
<br />
</syntaxhighlight>بالإضافة إلى ذلك، يمكنك استخدام أي من إصدارات [[PHP]] المدعومة عبر CLI:<syntaxhighlight lang="php"><br />
php5.6 artisan list<br />
php7.0 artisan list<br />
php7.1 artisan list<br />
php7.2 artisan list<br />
<br />
<br />
</syntaxhighlight><br />
<br />
=== خوادم الويب ===<br />
تستخدم Homestead خادم الويب Nginx بشكل افتراضي. ومع ذلك، يمكن تثبيت Apache إذا تم تحديد apache كنوع موقع. بينما يمكن تثبيت كلا خادمَي الويب في نفس الوقت، لا يمكن تشغيل كلاهما في نفس الوقت. يتوفر الأمر <code>flip</code> لتسهيل عملية التبديل بين خوادم الويب. يقوم الأمر <code>flip</code> تلقائيًا بتحديد خادم الويب الذي يعمل، وإيقاف تشغيله، ثم بدء تشغيل الخادم الآخر. لاستخدام هذا الأمر، سجِّل دخولك عبر SSH إلى جهاز Homestead الخاص بك وشغِّل الأمر في الطرفية الخاصة بك:<syntaxhighlight lang="php"><br />
flip<br />
</syntaxhighlight><br />
<br />
=== البريد ===<br />
يشمل Homestead عميل نقل البريد Postfix، والذي يستمع على المنفذ 1025 بشكل افتراضي. لذلك، يمكنك إرشاد التطبيق الخاص بك لاستخدام برنامج تشغيل البريد smtp على منفذ localhost 1025. ثم سيتم التعامل مع كافة البريد المرسلة بواسطة Postfix ويتم اكتشافها بواسطة Mailhog. لعرض رسائل البريد الإلكتروني المرسلة، افتح <nowiki>http://localhost:8025</nowiki> في متصفح الويب الخاص بك.<br />
<br />
== واجهات الشبكة ==<br />
تقوم الخاصية networks في الملفـ <code>Homestead.yaml</code> بضبط واجهات شبكة الاتصال لبيئة بيئة العمل الخاصة بك. يمكنك ضبط العديد من الواجهات حسب الضرورة:<syntaxhighlight lang="php"><br />
networks:<br />
<br />
- type: "private_network"<br />
ip: "192.168.10.20"<br />
<br />
<br />
</syntaxhighlight>لتمكين الواجهة المدمجة، اضبط الخيار bridge وغيّر نوع الشبكة إلى public_network:<syntaxhighlight lang="php"><br />
networks:<br />
<br />
- type: "public_network"<br />
ip: "192.168.10.20"<br />
bridge: "en1: Wi-Fi (AirPort)"<br />
<br />
<br />
</syntaxhighlight>لتمكين DHCP، أزل الخيار ip من الضبط الخاص بك:<syntaxhighlight lang="php"><br />
networks:<br />
<br />
- type: "public_network"<br />
bridge: "en1: Wi-Fi (AirPort)"<br />
<br />
<br />
</syntaxhighlight><br />
<br />
== تمديد Homestead ==<br />
يمكنك تمديد Homestead باستخدام البرنامج النصي <code>after.sh</code> في جذر دليل Homestead. ضمن هذا الملف ، يمكنك إضافة أي أوامر shell ضرورية لتكوين جهازك الوهمي وتخصيصه بشكل صحيح.<br />
<br />
عند تخصيص Homestead ، قد يسألك Ubuntu عما إذا كنت ترغب في الاحتفاظ بتكوين الحزمة الأصلي أو الكتابة فوقه بملف تكوين جديد. لتجنب ذلك ، يجب عليك استخدام الأمر التالي عند تثبيت الحزم لتجنب الكتابة فوق أي تكوين سبق أن كتبه Homestead:<syntaxhighlight lang="php"><br />
sudo apt-get -y \<br />
-o Dpkg::Options::="--force-confdef" \<br />
-o Dpkg::Options::="--force-confold" \<br />
install your-package<br />
</syntaxhighlight><br />
<br />
== تحديث Homestead ==<br />
يمكنك تحديث Homestead في خطوتين بسيطتين. أولاً، يجب تحديث بيئة Vagrant باستخدام الأمر :<syntaxhighlight lang="php"><br />
vagrant box update<br />
</syntaxhighlight><br />
<br />
بعد ذلك، تحتاج إلى تحديث شيفرة Homestead المصدرية. إذا قمت باستنساخ المستودع، يمكنك تنفيذ الأمر <code>git pull origin master</code> في المسار الذي قمت في الأصل باستنساخ المستودع.<br />
<br />
إذا ثبّتَ Homestead عبر ملف <code>composer.json</code> للمشروع، يجب التأكد من أن ملف <code>composer.json</code> يحتوي على "laravel/homestead": "^7" ثم حدِّث الاعتماديات الخاصة بك:<syntaxhighlight lang="text"><br />
composer update<br />
</syntaxhighlight><br />
<br />
== إعدادات محددة للمزود ==<br />
<br />
=== VirtualBox ===<br />
<br />
==== natdnshostresolver ====<br />
بشكل افتراضي، يقوم Homestead بضبط إعداد <code>natdnshostresolver</code> إلى on. يسمح ذلك لبرمجية Homestead باستخدام إعدادات DNS لنظام التشغيل المضيف. إذا كنت ترغب في تجاوز هذا السلوك، فأضف الأسطر التالية إلى ملف <code>Homestead.yaml</code>:<syntaxhighlight lang="text"><br />
provider: virtualbox<br />
natdnshostresolver: off<br />
<br />
<br />
</syntaxhighlight><br />
<br />
==== الروابط الرمزية على نظام ويندوز ====<br />
إذا لم تعمل الارتباطات الرمزية (symbolic links) بشكل صحيح على نظام ويندوز الخاص بك، فقد تحتاج إلى إضافة كتلة الضبط التالية إلى Vagrantfile:<syntaxhighlight lang="php"><br />
config.vm.provider "virtualbox" do |v|<br />
<br />
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]<br />
<br />
end<br />
<br />
<br />
</syntaxhighlight><br />
<br />
== مصادر ==<br />
* [https://laravel.com/docs/5.6/homestead صفحة استخدام Laravel Homestead في توثيق Laravel الرسمي.]<br />
[[تصنيف:Laravel|{{SUBPAGENAME}}]]<br />
[[تصنيف:Laravel Getting started|{{SUBPAGENAME}}]]</div>Bechir-ahmedhttps://wiki.hsoub.com/index.php?title=Laravel/configuration&diff=28436Laravel/configuration2019-04-18T13:29:53Z<p>Bechir-ahmed: </p>
<hr />
<div><noinclude>{{DISPLAYTITLE:الضبط في Laravel}}</noinclude><br />
== مقدمة ==<br />
جميع ملفات الضبط الخاصة بإطار عمل [[Laravel]] موجودة في المسار <code>config</code>. وجميع الخيارات موثّقة، لذا لا تتردد في النظر في ملفات [[Laravel]] والتعرف على جميع الخيارات المتاحة لك.<br />
<br />
== ضبط البيئة ==<br />
غالباً ما يكون من المفيد الحصول على قيم ضبط مختلفة بناءً على البيئة التي يعمل عليها التطبيق. على سبيل المثال، قد ترغب في استخدام برنامج ذاكرة تخزين مؤقتة مختلفة محليًا عمّا هو مضبوطٌ في الخادوم الإنتاجي الخاص بك.<br />
<br />
للقيام بهكذا أمر، يستخدم [[Laravel]] مكتبة <code>DotEnv PHP</code>. عند تثبيت Laravel جديد، سيحتوي المجلد الجذر للتطبيق الخاص بك على ملف <code>env.example.</code> إذا قمت بتثبيت [[Laravel]] باستخدام Composer، فستُعاد تسمية هذا الملف تلقائيًا إلى <code>.env</code>. خلاف ذلك، يجب إعادة تسمية الملف يدويًا.<br />
<br />
ليس بالضرورة أن يتم حفظ ملف <code>.env</code> في نظام إدارة إصدارات لوحة تحكم التطبيق الخاص بك، إذ قد يحتاج كل مطور/خادوم يستخدم التطبيق الخاص بك إلى تهيئة بيئة مختلفة. علاوةً على ذلك، فإن هذا من شأنه أن يشكل خطرًا على الأمان في حالة وصول دخيل إلى مستودع التحكم في المصدر، نظرًا لإمكانيّة كشف أية معلومات حساسة.<br />
<br />
إذا كنت تقوم بالتطوير مع فريق، فقد ترغب في الاستمرار في تضمين الملف <code>.env.example</code> مع التطبيق الخاص بك. من خلال وضع قيم بديلة وهمية في ملف تكوين المثال، يمكن لمطوري البرامج الآخرين في فريقك أن يروا بوضوح متغيرات البيئة المطلوبة لتشغيل التطبيق الخاص بك. يمكنك أيضًا إنشاء ملف <code>.env.testing</code>. سيتجاوز هذا الملف ملف <code>.env</code> عند تشغيل اختبارات PHPUnit أو تنفيذ الأمر Artisan باستخدام خيار <code>env=testing--</code>.<br />
<br />
ملاحظة: يمكن تجاوز أي متغير في ملف <code>env.</code> الخاص بك بواسطة متغيرات البيئة الخارجية مثل متغيرات البيئة على مستوى الخادوم أو مستوى النظام.<br />
<br />
=== أنواع البيئة المتغيرة ===<br />
تُحلَّل جميع المتغيرات في ملفات <code>env.</code> الخاصة بك بصفتها سلاسل نصية، لذلك أُنشِئَت بعض القيم المحجوزة للسماح لك بإعادة نطاق أوسع من الأنواع من الدالة <code>env()</code>:<br />
{| class="wikitable"<br />
!قيمة .env<br />
!قيمة env()<br />
|-<br />
|true<br />
|bool) true)<br />
|-<br />
|(true)<br />
|bool) true)<br />
|-<br />
|false<br />
|bool) false)<br />
|-<br />
|(false)<br />
|bool) false)<br />
|-<br />
|empty<br />
|" (string) <br />
|-<br />
|(empty)<br />
|" (string) <br />
|-<br />
|null<br />
|null) null)<br />
|-<br />
|(null)<br />
|null) null)<br />
|}<br />
إذا كنت بحاجة إلى تعريف متغير بيئة بقيمة تحتوي على مسافات، فيمكنك القيام بذلك عن طريق إحاطة القيمة بعلامات اقتباس مزدوجة.<syntaxhighlight lang="text"><br />
APP_NAME="My Application"<br />
</syntaxhighlight><br />
<br />
=== استرجاع ضبط البيئة ===<br />
ستُحمَّل جميع المتغيرات المدرجة في هذا الملف في المتغير العام <code>$_ENV</code> عندما يتلقى مشروعك طلبًا. ومع ذلك، يمكنك استخدام المساعد <code>env</code> لاسترداد القيم من هذه المتغيرات في ملفات الضبط الخاصة بك. في الواقع، إذا قمت بمراجعة ملفات ضبط [[Laravel]]، ستلاحظ العديد من الخيارات التي تستخدم بالفعل هذا المتغير:<syntaxhighlight lang="text"><br />
'debug' => env('APP_DEBUG', false),<br />
</syntaxhighlight>القيمة الثانية التي مُرِّرَت إلى الدالة <code>env</code> هي "القيمة الافتراضية". سيتم استخدام هذه القيمة في حالة عدم وجود متغير بيئة للمفتاح المحدد.<br />
<br />
=== تحديد البيئة الحالية ===<br />
تحدد بيئة التطبيق الحالية عبر المتغير <code>APP_ENV</code> من الملف <code>.env</code>. يمكنك الوصول إلى هذه القيمة من خلال التابع <code>environment</code> على [[Laravel/facades|الواجهة الساكنة]] (facade) App:<syntaxhighlight lang="text"><br />
$environment = App::environment();<br />
</syntaxhighlight><br />
<br />
يمكنك أيضًا تمرير الوسائط إلى التابع <code>environment</code> للتحقق مما إذا كانت البيئة تتطابق مع قيمة معينة. سيُعيد هذا التابع القيمة <code>true</code> إذا كانت البيئة مطابقة لأي من القيم المعطاة:<syntaxhighlight lang="php"><br />
if (App::environment('local')) {<br />
// بيئة التطوير المحلية<br />
<br />
}<br />
<br />
if (App::environment(['local', 'staging'])) {<br />
<br />
// إما أن تكون البيئة هي بيئة التطوير أو بيئة الخادوم التخزيني<br />
<br />
}<br />
<br />
<br />
</syntaxhighlight><br />
<br />
ملاحظة: يمكن تجاوز الكشف عن بيئة التطبيق الحالية من خلال متغير بيئة <code>APP_ENV</code> على مستوى الخادوم. يمكن أن يكون ذلك مفيدًا عندما تحتاج إلى مشاركة نفس التطبيق في بيئات مضبوطة ضبطًا مختلفًا، بحيث يمكنك إعداد مضيف معين لمطابقة بيئة معينة لضبط الخادم الخاص بك.<br />
<br />
=== إخفاء متغيرات البيئة من صفحات التصحيح ===<br />
عندما يكون الاستثناء غير معلوم ، وتكون قيمة متغير البيئة <code>APP_DEBUG</code> صحيحًة <code>true</code> ، ستُظهر صفحة التصحيح جميع متغيرات البيئة ومحتوياتها. في بعض الحالات ، قد ترغب في إخفاء بعض المتغيرات. يمكنك القيام بذلك عن طريق تحديث خيار <code>debug_blacklist</code> في ملف التكوين <code>config / app.php</code>.<br />
<br />
تتوفر بعض المتغيرات في كل من متغيرات البيئة وبيانات الخادم ، قد تحتاج إلى إدراجها في القائمة السوداء لكل من <code>ENV_$</code> و <code>SERVER_$</code> :<syntaxhighlight lang="php"><br />
return [<br />
<br />
// ...<br />
<br />
'debug_blacklist' => [<br />
'_ENV' => [<br />
'APP_KEY',<br />
'DB_PASSWORD',<br />
],<br />
<br />
'_SERVER' => [<br />
'APP_KEY',<br />
'DB_PASSWORD',<br />
],<br />
<br />
'_POST' => [<br />
'password',<br />
],<br />
],<br />
];<br />
</syntaxhighlight><br />
<br />
== الوصول إلى قيم الضبط ==<br />
يمكنك الوصول إلى قيم الضبط بسهولة باستخدام الدالة المساعدة العامة <code>config</code> من أي مكان في التطبيق الخاص بك. يمكن الوصول إلى قيم الضبط باستخدام صيغة «النقطة» (dot syntax)، والتي تتضمن اسم الملف والخيار الذي ترغب في الوصول إليه. قد تُحدَّد قيمة افتراضية أيضًا، وستُعاد إذا لم يكن خيار الضبط موجودًا:<syntaxhighlight lang="php"><br />
$value = config ('app.timezone');<br />
</syntaxhighlight>لتعيين قيم الضبط في وقت التشغيل، مرِّر مصفوفةً إلى الدالة المساعدة <code>config</code>:<syntaxhighlight lang="php"><br />
config(['app.timezone' => 'America/Chicago']);<br />
</syntaxhighlight><br />
<br />
== ضبط التخزين المؤقت ==<br />
لإعطاء تطبيقك سرعة مضاعفة، يجب تخزين جميع ملفات التهيئة في ملف واحد باستخدام الأمر Artisan الآتي <code>config: cache</code>. سيؤدي هذا الأمر إلى دمج جميع خيارات الضبط لتطبيقك في ملف واحد والذي سيُحمَّل تحميله بسرعة بواسطة إطار العمل.<br />
<br />
يجب أن تُعيد تشغيل الأمر <code>php artisan config: cache</code> كجزء من عملية نشر التطبيق الخاص بك على الخادوم الإنتاجي. يجب ألا يُشغَّل الأمر أثناء التطوير المحلي إذ ستحتاج إلى تغيير خيارات الضبط بشكل متكرر أثناء تطوير التطبيق الخاص بك.<br />
<br />
إذا نفّذتَ الأمر <code>config:cache</code> أثناء عملية النشر، فيجب أن تتأكد من أنك تستدعي الدالة <code>env</code> من داخل ملفات الضبط الخاصة بك. بمجرد تخزين الضبط المؤقت، لن يتم تحميل الملف <code>.env</code> وكافة استدعاءات الدالة <code>env</code> ستُعيد <code>[[PHP/null|null]]</code>.<br />
<br />
== وضع الصيانة ==<br />
عندما يكون التطبيق في وضع الصيانة، سيتم عرض واجهة مخصصة لجميع طلبات التطبيق. هذا يجعل من السهل "تعطيل" التطبيق الخاص بك أثناء تحديث أو عند إجراء الصيانة. يتم تضمين فحص وضع الصيانة في حزمة البرامج الوسيطة الافتراضية للتطبيق الخاص بك. إذا كان التطبيق في وضع الصيانة، سيرمى الاستثناء <code>MaintenanceModeException</code> مع رمز الحالة 503.<br />
<br />
لتمكين وضع الصيانة، نفِّذ <code>down</code> من خلال الأمر Artisan:<syntaxhighlight lang="php"><br />
php artisan down<br />
</syntaxhighlight>يمكنك أيضًا توفير الخيارات <code>message</code> و <code>retry</code> إلى الأمر <code>down</code>. يمكن استخدام قيمة <code>message</code> لعرض أو تسجيل رسالة خاصة، بينما سيتم تعيين قيمة <code>retry</code> كقيمة <code>Retry-After</code> لترويسة HTTP:<syntaxhighlight lang="php"><br />
php artisan down --message="Upgrading Database" --retry=60<br />
</syntaxhighlight>حتى في حالة الصيانة، قد يتم السماح لعناوين IP أو شبكات محددة بالوصول إلى التطبيق باستخدام الخيار <code>allow</code>:<syntaxhighlight lang="php"><br />
php artisan down --allow=127.0.0.1 --allow=192.168.0.0/16<br />
</syntaxhighlight>لتعطيل وضع الصيانة، استخدم الأمر <code>up</code>:<syntaxhighlight lang="php"><br />
php artisan up<br />
</syntaxhighlight>ملاحظة: يمكنك تخصيص قالب وضع الصيانة الافتراضي عن طريق تعريف القالب الخاص بك في <code>resources/views/errors/503.blade.php</code>.<br />
<br />
=== وضع الصيانة والطوابير ===<br />
بينما يكون التطبيق الخاص بك في وضع الصيانة، لن يتم التعامل مع أي مهمة في قائمة الانتظار. سيستمر التعامل مع المهام كالمعتاد بمجرد انتهاء التطبيق من وضع الصيانة.<br />
<br />
=== بدائل وضع الصيانة ===<br />
نظرًا لأن وضع الصيانة يتطلب أن يحتوي التطبيق على عدة ثوانٍ من وقت التوقف، ففكر في بدائل مثل [https://envoyer.io/ Envoyer] لإنجاز النشر بدون توقف مع [[Laravel]].<br />
<br />
== مصادر ==<br />
* [https://laravel.com/docs/5.7/configuration صفحة Configuration في توثيق Laravel الرسمي.]<br />
[[تصنيف:Laravel|{{SUBPAGENAME}}]]<br />
[[تصنيف:Laravel Getting started|{{SUBPAGENAME}}]]</div>Bechir-ahmedhttps://wiki.hsoub.com/index.php?title=Laravel/configuration&diff=28435Laravel/configuration2019-04-18T13:28:57Z<p>Bechir-ahmed: ترقية إلى نسخة 5.7</p>
<hr />
<div><noinclude>{{DISPLAYTITLE:الضبط في Laravel}}</noinclude><br />
== مقدمة ==<br />
جميع ملفات الضبط الخاصة بإطار عمل [[Laravel]] موجودة في المسار <code>config</code>. وجميع الخيارات موثّقة، لذا لا تتردد في النظر في ملفات [[Laravel]] والتعرف على جميع الخيارات المتاحة لك.<br />
<br />
== ضبط البيئة ==<br />
غالباً ما يكون من المفيد الحصول على قيم ضبط مختلفة بناءً على البيئة التي يعمل عليها التطبيق. على سبيل المثال، قد ترغب في استخدام برنامج ذاكرة تخزين مؤقتة مختلفة محليًا عمّا هو مضبوطٌ في الخادوم الإنتاجي الخاص بك.<br />
<br />
للقيام بهكذا أمر، يستخدم [[Laravel]] مكتبة <code>DotEnv PHP</code>. عند تثبيت Laravel جديد، سيحتوي المجلد الجذر للتطبيق الخاص بك على ملف <code>env.example.</code> إذا قمت بتثبيت [[Laravel]] باستخدام Composer، فستُعاد تسمية هذا الملف تلقائيًا إلى <code>.env</code>. خلاف ذلك، يجب إعادة تسمية الملف يدويًا.<br />
<br />
ليس بالضرورة أن يتم حفظ ملف <code>.env</code> في نظام إدارة إصدارات لوحة تحكم التطبيق الخاص بك، إذ قد يحتاج كل مطور/خادوم يستخدم التطبيق الخاص بك إلى تهيئة بيئة مختلفة. علاوةً على ذلك، فإن هذا من شأنه أن يشكل خطرًا على الأمان في حالة وصول دخيل إلى مستودع التحكم في المصدر، نظرًا لإمكانيّة كشف أية معلومات حساسة.<br />
<br />
إذا كنت تقوم بالتطوير مع فريق، فقد ترغب في الاستمرار في تضمين الملف <code>.env.example</code> مع التطبيق الخاص بك. من خلال وضع قيم بديلة وهمية في ملف تكوين المثال، يمكن لمطوري البرامج الآخرين في فريقك أن يروا بوضوح متغيرات البيئة المطلوبة لتشغيل التطبيق الخاص بك. يمكنك أيضًا إنشاء ملف <code>.env.testing</code>. سيتجاوز هذا الملف ملف <code>.env</code> عند تشغيل اختبارات PHPUnit أو تنفيذ الأمر Artisan باستخدام خيار <code>env=testing--</code>.<br />
<br />
ملاحظة: يمكن تجاوز أي متغير في ملف <code>env.</code> الخاص بك بواسطة متغيرات البيئة الخارجية مثل متغيرات البيئة على مستوى الخادوم أو مستوى النظام.<br />
<br />
=== أنواع البيئة المتغيرة ===<br />
تُحلَّل جميع المتغيرات في ملفات <code>env.</code> الخاصة بك بصفتها سلاسل نصية، لذلك أُنشِئَت بعض القيم المحجوزة للسماح لك بإعادة نطاق أوسع من الأنواع من الدالة <code>env()</code>:<br />
{| class="wikitable"<br />
!قيمة .env<br />
!قيمة env()<br />
|-<br />
|true<br />
|bool) true)<br />
|-<br />
|(true)<br />
|bool) true)<br />
|-<br />
|false<br />
|bool) false)<br />
|-<br />
|(false)<br />
|bool) false)<br />
|-<br />
|empty<br />
|" (string) <br />
|-<br />
|(empty)<br />
|" (string) <br />
|-<br />
|null<br />
|null) null)<br />
|-<br />
|(null)<br />
|null) null)<br />
|}<br />
إذا كنت بحاجة إلى تعريف متغير بيئة بقيمة تحتوي على مسافات، فيمكنك القيام بذلك عن طريق إحاطة القيمة بعلامات اقتباس مزدوجة.<syntaxhighlight lang="text"><br />
APP_NAME="My Application"<br />
</syntaxhighlight><br />
<br />
=== استرجاع ضبط البيئة ===<br />
ستُحمَّل جميع المتغيرات المدرجة في هذا الملف في المتغير العام <code>$_ENV</code> عندما يتلقى مشروعك طلبًا. ومع ذلك، يمكنك استخدام المساعد <code>env</code> لاسترداد القيم من هذه المتغيرات في ملفات الضبط الخاصة بك. في الواقع، إذا قمت بمراجعة ملفات ضبط [[Laravel]]، ستلاحظ العديد من الخيارات التي تستخدم بالفعل هذا المتغير:<syntaxhighlight lang="text"><br />
'debug' => env('APP_DEBUG', false),<br />
</syntaxhighlight>القيمة الثانية التي مُرِّرَت إلى الدالة <code>env</code> هي "القيمة الافتراضية". سيتم استخدام هذه القيمة في حالة عدم وجود متغير بيئة للمفتاح المحدد.<br />
<br />
=== تحديد البيئة الحالية ===<br />
تحدد بيئة التطبيق الحالية عبر المتغير <code>APP_ENV</code> من الملف <code>.env</code>. يمكنك الوصول إلى هذه القيمة من خلال التابع <code>environment</code> على [[Laravel/facades|الواجهة الساكنة]] (facade) App:<syntaxhighlight lang="text"><br />
$environment = App::environment();<br />
</syntaxhighlight><br />
<br />
يمكنك أيضًا تمرير الوسائط إلى التابع <code>environment</code> للتحقق مما إذا كانت البيئة تتطابق مع قيمة معينة. سيُعيد هذا التابع القيمة <code>true</code> إذا كانت البيئة مطابقة لأي من القيم المعطاة:<syntaxhighlight lang="php"><br />
if (App::environment('local')) {<br />
// بيئة التطوير المحلية<br />
<br />
}<br />
<br />
if (App::environment(['local', 'staging'])) {<br />
<br />
// إما أن تكون البيئة هي بيئة التطوير أو بيئة الخادوم التخزيني<br />
<br />
}<br />
<br />
<br />
</syntaxhighlight><br />
<br />
ملاحظة: يمكن تجاوز الكشف عن بيئة التطبيق الحالية من خلال متغير بيئة <code>APP_ENV</code> على مستوى الخادوم. يمكن أن يكون ذلك مفيدًا عندما تحتاج إلى مشاركة نفس التطبيق في بيئات مضبوطة ضبطًا مختلفًا، بحيث يمكنك إعداد مضيف معين لمطابقة بيئة معينة لضبط الخادم الخاص بك.<br />
<br />
== إخفاء متغيرات البيئة من صفحات التصحيح ==<br />
عندما يكون الاستثناء غير معلوم ، وتكون قيمة متغير البيئة <code>APP_DEBUG</code> صحيحًة <code>true</code> ، ستُظهر صفحة التصحيح جميع متغيرات البيئة ومحتوياتها. في بعض الحالات ، قد ترغب في إخفاء بعض المتغيرات. يمكنك القيام بذلك عن طريق تحديث خيار <code>debug_blacklist</code> في ملف التكوين <code>config / app.php</code>.<br />
<br />
تتوفر بعض المتغيرات في كل من متغيرات البيئة وبيانات الخادم ، قد تحتاج إلى إدراجها في القائمة السوداء لكل من <code>ENV_$</code> و <code>SERVER_$</code> :<syntaxhighlight lang="php"><br />
return [<br />
<br />
// ...<br />
<br />
'debug_blacklist' => [<br />
'_ENV' => [<br />
'APP_KEY',<br />
'DB_PASSWORD',<br />
],<br />
<br />
'_SERVER' => [<br />
'APP_KEY',<br />
'DB_PASSWORD',<br />
],<br />
<br />
'_POST' => [<br />
'password',<br />
],<br />
],<br />
];<br />
</syntaxhighlight><br />
<br />
== الوصول إلى قيم الضبط ==<br />
يمكنك الوصول إلى قيم الضبط بسهولة باستخدام الدالة المساعدة العامة <code>config</code> من أي مكان في التطبيق الخاص بك. يمكن الوصول إلى قيم الضبط باستخدام صيغة «النقطة» (dot syntax)، والتي تتضمن اسم الملف والخيار الذي ترغب في الوصول إليه. قد تُحدَّد قيمة افتراضية أيضًا، وستُعاد إذا لم يكن خيار الضبط موجودًا:<syntaxhighlight lang="php"><br />
$value = config ('app.timezone');<br />
</syntaxhighlight>لتعيين قيم الضبط في وقت التشغيل، مرِّر مصفوفةً إلى الدالة المساعدة <code>config</code>:<syntaxhighlight lang="php"><br />
config(['app.timezone' => 'America/Chicago']);<br />
</syntaxhighlight><br />
<br />
== ضبط التخزين المؤقت ==<br />
لإعطاء تطبيقك سرعة مضاعفة، يجب تخزين جميع ملفات التهيئة في ملف واحد باستخدام الأمر Artisan الآتي <code>config: cache</code>. سيؤدي هذا الأمر إلى دمج جميع خيارات الضبط لتطبيقك في ملف واحد والذي سيُحمَّل تحميله بسرعة بواسطة إطار العمل.<br />
<br />
يجب أن تُعيد تشغيل الأمر <code>php artisan config: cache</code> كجزء من عملية نشر التطبيق الخاص بك على الخادوم الإنتاجي. يجب ألا يُشغَّل الأمر أثناء التطوير المحلي إذ ستحتاج إلى تغيير خيارات الضبط بشكل متكرر أثناء تطوير التطبيق الخاص بك.<br />
<br />
إذا نفّذتَ الأمر <code>config:cache</code> أثناء عملية النشر، فيجب أن تتأكد من أنك تستدعي الدالة <code>env</code> من داخل ملفات الضبط الخاصة بك. بمجرد تخزين الضبط المؤقت، لن يتم تحميل الملف <code>.env</code> وكافة استدعاءات الدالة <code>env</code> ستُعيد <code>[[PHP/null|null]]</code>.<br />
<br />
== وضع الصيانة ==<br />
عندما يكون التطبيق في وضع الصيانة، سيتم عرض واجهة مخصصة لجميع طلبات التطبيق. هذا يجعل من السهل "تعطيل" التطبيق الخاص بك أثناء تحديث أو عند إجراء الصيانة. يتم تضمين فحص وضع الصيانة في حزمة البرامج الوسيطة الافتراضية للتطبيق الخاص بك. إذا كان التطبيق في وضع الصيانة، سيرمى الاستثناء <code>MaintenanceModeException</code> مع رمز الحالة 503.<br />
<br />
لتمكين وضع الصيانة، نفِّذ <code>down</code> من خلال الأمر Artisan:<syntaxhighlight lang="php"><br />
php artisan down<br />
</syntaxhighlight>يمكنك أيضًا توفير الخيارات <code>message</code> و <code>retry</code> إلى الأمر <code>down</code>. يمكن استخدام قيمة <code>message</code> لعرض أو تسجيل رسالة خاصة، بينما سيتم تعيين قيمة <code>retry</code> كقيمة <code>Retry-After</code> لترويسة HTTP:<syntaxhighlight lang="php"><br />
php artisan down --message="Upgrading Database" --retry=60<br />
</syntaxhighlight>حتى في حالة الصيانة، قد يتم السماح لعناوين IP أو شبكات محددة بالوصول إلى التطبيق باستخدام الخيار <code>allow</code>:<syntaxhighlight lang="php"><br />
php artisan down --allow=127.0.0.1 --allow=192.168.0.0/16<br />
</syntaxhighlight>لتعطيل وضع الصيانة، استخدم الأمر <code>up</code>:<syntaxhighlight lang="php"><br />
php artisan up<br />
</syntaxhighlight>ملاحظة: يمكنك تخصيص قالب وضع الصيانة الافتراضي عن طريق تعريف القالب الخاص بك في <code>resources/views/errors/503.blade.php</code>.<br />
<br />
=== وضع الصيانة والطوابير ===<br />
بينما يكون التطبيق الخاص بك في وضع الصيانة، لن يتم التعامل مع أي مهمة في قائمة الانتظار. سيستمر التعامل مع المهام كالمعتاد بمجرد انتهاء التطبيق من وضع الصيانة.<br />
<br />
=== بدائل وضع الصيانة ===<br />
نظرًا لأن وضع الصيانة يتطلب أن يحتوي التطبيق على عدة ثوانٍ من وقت التوقف، ففكر في بدائل مثل [https://envoyer.io/ Envoyer] لإنجاز النشر بدون توقف مع [[Laravel]].<br />
<br />
== مصادر ==<br />
* [https://laravel.com/docs/5.7/configuration صفحة Configuration في توثيق Laravel الرسمي.]<br />
[[تصنيف:Laravel|{{SUBPAGENAME}}]]<br />
[[تصنيف:Laravel Getting started|{{SUBPAGENAME}}]]</div>Bechir-ahmedhttps://wiki.hsoub.com/index.php?title=Laravel&diff=28434Laravel2019-04-18T12:56:11Z<p>Bechir-ahmed: ترقية إلى نسخة 5.7</p>
<hr />
<div>Laravel هو إطار عمل لتطبيقات الويب مفتوح المصدر بلغة PHP. يعدّ Laravel أكثر أطر PHP استخدامًا من قبل مطوّري الويب وذلك يرجع إلى مرونته وسهولة تعلّمه. يشمل التوثيق التالي كافة خصائص إطار Laravel لنسخة 5.7 .<br />
<br />
{{:Laravel/Topics}}<br />
[[تصنيف:Laravel|{{SUBPAGENAME}}]]</div>Bechir-ahmedhttps://wiki.hsoub.com/index.php?title=Laravel/installation&diff=28433Laravel/installation2019-04-18T12:55:23Z<p>Bechir-ahmed: /* متطلبات الخادوم */ ترقية إلى نسخة 5.7</p>
<hr />
<div><noinclude>{{DISPLAYTITLE:تثبيت Laravel }}</noinclude><br />
== متطلبات الخادوم ==<br />
يتطلب إطار [[Laravel]] بعض متطلبات النظام. بالطبع ، يتم استيفاء جميع هذه المتطلبات من خلال النظام الوهمي لبيئة -Laravel (باسم [[Laravel/homestead|Homestead]])- لذلك يوصى باستخدام بيئة [[Laravel/homestead|Homestead]] بيئة تطوير [[Laravel]] المحلية الخاصة بك.<br />
<br />
ومع ذلك، إذا لم تكن بيئة [[Laravel/homestead|Homestead]] متاحةً لك أو لم ترغب في استخدامها، فستحتاج إلى التأكد من أن الخادوم يلبي المتطلبات التالية:<br />
* PHP >= 7.1.3<br />
* ملحق OpenSSL PHP<br />
* ملحق PDO PHP<br />
* ملحق Mbstring PHP<br />
* ملحق Tokenizer PHP<br />
* ملحق XML PHP<br />
* ملحق Ctype PHP<br />
* ملحق JSON PHP<br />
* ملحق BCMath PHP<br />
<br />
== تثبيت Laravel ==<br />
يستخدم إطار العمل [[Laravel]] برمجية Composer لإدارة الاعتماديات. لذا تأكد من تثبيت Composer على حاسوبك، قبل استخدام [[Laravel]].<br />
<br />
=== باستخدام مُثبِّت [[Laravel]] ===<br />
حمّل أوّلًا مثبّت [[Laravel]] باستخدام Composer :<syntaxhighlight lang="text"><br />
composer global require "laravel/installer"<br />
<br />
</syntaxhighlight>احرص على إضافة مجلد <code>vendor/bin</code> الخاصة ببرنامج Composer إلى متغير البيئة <code>$PATH</code> بحيث يمكن تحديد موقع الملف القابل للتنفيذ لإطار عمل [[Laravel]] بواسطة النظام الخاص بك. يوجد هذا المجلد في مواقع مختلفة اعتمادًا على نظام التشغيل الخاص بك؛ ومع ذلك، من الشائع أن يوجد في المسارات الآتية:<br />
<br />
· في نظام ماك: في المسار <code>$HOME/.composer/vendor/bin</code><br />
<br />
· في توزيعات لينكس: في المسار <code>$HOME/.config/composer/vendor/bin</code><br />
<br />
بعد تثبيته، سيُنشِئ الأمر <code>laravel new</code> مجلدًا يحتوي على نسخة جديدة من إطار [[Laravel]]. على سبيل المثال ، سيُنشِئ الأمر <code>laravel new blog</code> مجلدًا جديدًا باسم blog يحتوي على تثبيت [[Laravel]] جديد مع جميع اعتماديات [[Laravel]] اللازمة.<syntaxhighlight lang="text"><br />
laravel new blog<br />
</syntaxhighlight><br />
<br />
=== باستخدام Composer ===<br />
بدلا عن ذلك، يمكنك أيضًا تثبيت [[Laravel]] بتنفيذ الأمر <code>create-project</code> الخاص ببرمجية Composer في الطرفية على جهازك:<syntaxhighlight lang="text"><br />
composer create-project --prefer-dist laravel/laravel blog<br />
</syntaxhighlight><br />
<br />
=== باستخدام خادوم التطوير المحلي ===<br />
إذا كنت قد قمت بتثبيت [[PHP]] محليًا وترغب في استخدام خادوم التطوير الخاص بلغة PHP لتخديم تطبيقك، فيمكنك استخدام الأمر <code>Artisan serve</code>. سيبدأ هذا الأمر خادوم تطوير على<code><nowiki>http://localhost:8000</nowiki></code>:<syntaxhighlight lang="text"><br />
php artisan serve<br />
</syntaxhighlight>بالطبع، تتوفر خيارات التطوير المحلية الأكثر قوة من خلال [[Laravel/homestead|Homestead]] و [[Laravel/valet|Valet]].<br />
<br />
== الضبط ==<br />
<br />
=== المجلد العام ===<br />
بعد تثبيت [[Laravel]] ، يجب عليك ضبط جذر لخادوم الويب الخاص بك ليكون المجلد public. يعمل الملف <code>index.php</code> في هذا المسار بصفته وحدة تحكم أمامية لجميع طلبات HTTP التي تدخل التطبيق الخاص بك.<br />
<br />
=== ملفات الضبط ===<br />
تُخزَّن كافة ملفات الضبط الخاصة بإطار [[Laravel]] في مجلد <code>config.</code> كل خيار من تلك الخيارات موثقٌ توثيقًا كاملًا، لذلك لا تتردد في إلقاء نظرة على الملفات والتعرف على الخيارات المتاحة لك.<br />
<br />
=== أذونات المجلد ===<br />
بعد تثبيت Laravel، قد تحتاج إلى ضبط بعض الأذونات (permissions). يجب أن تكون المجلدات داخل مجلد storage ومجلد <code>bootstrap/cache</code> قابلةً للكتابة بواسطة خادوم الويب أو فلن يعمل Laravel. إذا كنت تستخدم بيئة عمل [[Laravel/homestead|Homestead]]، فستكون الأذونات المطلوبة مضبوطةً مسبقًا.<br />
<br />
=== مفتاح التطبيق ===<br />
أول ما عليك فعله بعد تثبيت Laravel هو ضبط مفتاح التطبيق الخاص بك إلى سلسلة نصية عشوائية. إذا قمت بتثبيت [[Laravel]] باستخدام Composer أو مثبت Laravel، فقد ضُبِطَ هذا المفتاح لك باستخدام الأمر <code>php artisan key:generate</code>.<br />
<br />
يجب أن تكون هذه السلسلة بطول 32 محرفًا عادةً. يمكن تعيين المفتاح في ملف البيئة .env. إذا لم تُعِد تسمية الملف <code>.env.example</code> إلى <code>.env</code>، فيجب عليك القيام بذلك الآن. إذا لم يُضبَط مفتاح التطبيق، فلن تكون جلسات المستخدم الخاصة بك وغيرها من البيانات المشفرة آمنة!<br />
<br />
=== الضبط الإضافي ===<br />
لا يحتاج Laravel إلى أي ضبط آخر مبدئيًا. يمكنك البدء بالتطوير فورًا. ومع ذلك، قد ترغب في مراجعة الملف <code>config/app.php</code> وتوثيقه. هذا الملف يحتوي على العديد من الخيارات مثل المنطقة الزمنية (timezone) والمحليّة (locale ) والتي قد ترغب في تغييرها وفقًا لتطبيقك.<br />
<br />
قد ترغب أيضًا في تكوين بعض المكونات الإضافية في [[Laravel]]، مثل:<br />
* ذاكرة التخزين المؤقتة<br />
* قاعدة البيانات<br />
* الجلسة<br />
<br />
== ضبط خادوم الويب ==<br />
<br />
=== عناوين URL جذابة ===<br />
<br />
==== خادوم [[Apache]] ====<br />
يتضمن Laravel الملف <code>public/.htaccess</code> الذي يُستخدم لتوفير عناوين URL دون وحدة التحكم <code>index.php</code> الأمامية في المسارات. قبل تخديم <nowiki/>[[Laravel]] مع [[Apache]]، تأكد من تفعيل الوحدة <code>mod_rewrite</code> بحيث تُنفَّذ محتويات ملف <code>.htaccess</code> بواسطة الخادوم.<br />
<br />
إذا كان ملف <code>.htaccess</code> الذي يأتي مع [[Laravel]] لا يعمل مع تثبيت [[Apache]] عندك، فجرّب هذا الملف البديل:<syntaxhighlight lang="text"><br />
Options +FollowSymLinks -Indexes<br />
RewriteEngine On<br />
<br />
RewriteCond %{HTTP:Authorization} .<br />
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]<br />
<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteRule ^ index.php [L]<br />
<br />
</syntaxhighlight><br />
<br />
==== خادوم <nowiki/>[[Nginx]] ====<br />
إذا كنت تستخدم خادوم [[Nginx]]، فإن تعليمة الضبط الآتية في ملف ضبط موقعك سيوجه جميع الطلبات إلى <br />
<br />
وحدة التحكم الأمامية <code>index.php</code>:<syntaxhighlight lang="php"><br />
location / {<br />
try_files $uri $uri/ /index.php?$query_string;<br />
}<br />
</syntaxhighlight>بالطبع، عند استخدام [[Laravel/homestead|Homestead]] أو [[Laravel/valet|Valet]]، سيتم ضبط عناوين URL جذابة تلقائيًا.<br />
<br />
== مصادر ==<br />
* [https://laravel.com/docs/5.7/installation صفحة Installation في توثيق Laravel الرسمي.]<br />
[[تصنيف:Laravel|{{SUBPAGENAME}}]]<br />
[[تصنيف:Laravel Getting started|{{SUBPAGENAME}}]]</div>Bechir-ahmed