كيفية إعداد أباتشي في نظام التشغيل MacOS Sierra 10.12

نشر أصلاً على DigitalShore.io في 08 أغسطس 2016

يعكس هذا الدليل حاليًا macOS Seirra 10.12.1

ملاحظة: كانت هناك عدة استجابات حول 403 أخطاء وتم رفض الوصول إلى المشكلات. يرجى التأكد بنسبة 100٪ من تبديل اسم المستخدم الفعلي على جهاز Mac الخاص بك ، حيث توجد مثيلات من أي وقت مضى باستخدام العنصر النائب لـ "اسم المستخدم". يتم تسليط الضوء على هذه الخطوة عدة مرات في جميع أنحاء الدليل وهي مهمة للغاية يتم الالتزام بها حتى تعمل الأشياء.

لذلك ، يرجى القراءة وإعادة القراءة بعناية وحسب الحاجة.

خلال مؤتمر المطورين العالميين الذي انعقد في 13 يونيو 2015 ، أعلنت شركة Apple رسميًا أن الإصدار التالي من نظام التشغيل OS X سيطلق عليه اسم macOS. ومع هذا التكرار الأخير لنظام تشغيل سطح المكتب Mac - يطلق عليه سييرا - تستمر اتفاقية تسمية المعالم البارزة في كاليفورنيا أيضًا.

تتوفر ميزات وتحسينات جديدة في نظام التشغيل MacOS Sierra ، ولكن كمطورين على شبكة الإنترنت ، نعلم أن تحديثات نظام التشغيل الرئيسية يمكن أن تترك الأشياء غريبة بعض الشيء وفقًا لبيئات التطوير لدينا. على سبيل المثال ، هناك حاجة إلى إعادة تكوين خادم الويب Apache الذي كان يعمل سابقًا في El Capitan على الأرجح من أجل Sierra. خاصةً إذا كنت تقوم بإعداد تثبيت نظيف عند تحديث نظام التشغيل الخاص بك. ومع وضع هذه الفكرة في الاعتبار ، يهدف هذا الدليل إلى مساعدة مستخدمي macOS Sierra في تشغيل Apache وتشغيله بأقل قدر من الضجة.

ملاحظة: حتى كتابة هذه السطور ، يشحن macOS Sierra حاليًا مع Apache 2.4.23.

العمل من خلال هذا الدليل

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

على سبيل المثال ، سيقوم إعداد Apache الأولي بإعدادك باستخدام دليل مواقع محلي في مجلد منزلك حيث ستعيش جميع مواقعك المحلية. ستحصل بعد ذلك على القدرة على الانتقال إلى http: // localhost / ~ اسم المستخدم / لعرض فهرس لمواقعك المحلية (حيث يتم تبديل "اسم المستخدم" في عنوان URL باستخدام اسم المستخدم الفعلي). العنصر الاختياري الأول هو الاستفادة من تخصيص المضيفين الظاهريين وأسماء المضيفين المحليين. العنصر الاختياري الثاني هو تمكين Apache PHP Module.

المناطق والعناصر التي ستعمل عليها:

  1. باستخدام المحطة
  2. إنشاء مواقع وأدلة المشروع
  3. تكوين اباتشي

العناصر الاختيارية

  • تكوين المضيفين الظاهري وأسماء المضيفين
  • تمكين وحدة أباتشي PHP

1. باستخدام المحطة

يعرف الكثير من مطوري الويب ذوي الخبرة مدى أهمية أداة يمكن أن تكون المحطة الطرفية لإنجاز أعمالهم. ومع ذلك ، للمستخدمين ذوي الخبرة في استخدام "المحطة الطرفية" أو حتى سطر الأوامر بشكل عام ، فإنه يمكن للوهلة الأولى ، أن يبدو مروعًا وصعبًا! لذلك ، يهدف هذا الدليل إلى جعل وقتك في المحطة الطرفية غير مؤلم قدر الإمكان ، وتعليمك بعض المفاهيم الأساسية على طول الطريق.

1.1 كلمة تحذير

قبل أن تقفز إلى المحطة الطرفية وتبدأ في تنفيذ الأوامر ، أريد إضافة كلمة تحذير. ستستخدم العديد من الأوامر المدرجة في هذا الدليل sudo ، والذي يسمح للمستخدمين برفع امتيازات الأمان الخاصة بهم إلى "root" أو "superuser". مع هذه القوة العظيمة تأتي مسؤولية كبيرة. تأكد من أنه كلما كنت تستخدم sudo ، فأنت لا تخطئ في فهم مسارات الملفات أو تغيير الملفات التي لا ينبغي تغييرها ، وما إلى ذلك. ببساطة ، تابع بحذر أثناء استخدام sudo!

من البدائل للتدخل في ملفات وبرامج ماك أو إس الأصلية عبر المحطة الطرفية تشغيل جهاز لينوكس الافتراضي للرمل مباشرة على جهاز ماك. هذا هو في الواقع مقاربة رائعة لأي مطور ، وهي أفضل ممارسة أوصي بها بشدة ، بغض النظر عن مستوى مهارتك ومستواك. البديل الآخر القابل للتطبيق هو Homebrew ، لكن هذا الإعداد بالكامل يمكن أن يتسم بالفوضى.

وإلا ، إذا كنت مرتاحًا لـ Terminal وترغب فقط في تشغيل الإصدار المحلي من Apache على نظام التشغيل macOS Sierra ، دون العبث بأجهزة افتراضية أو Homebrew ، فاقرأ!

1.2 المحطة وهذا الدليل

لبدء استخدام Terminal ، يمكنك العثور على التطبيق الموجود في:

التطبيقات> المرافق> Terminal.app

المضي قدما وافتحه. يجب أن يكون لديك نافذة بها محتوى يشبه هذا - اسم الكمبيوتر الخاص بك متبوعًا بنقطتين ، تيلدا ، واسم مستخدم Mac الخاص بك ينتهي بعلامة الدولار:

جونز اير: ~ جون دولار
  • سيتم إدخال الأوامر بعد $. سيتضمن هذا الدليل $ يشير إلى سطر واحد أو أمر واحد. يرجى ملاحظة أنه لا ينبغي إدخال $ مع كل أمر. هناك فقط لتكون بمثابة دليل.
  • سيسلط هذا الدليل الضوء على بعض الأوامر الأكثر شيوعًا التي ستواجهها أثناء استخدام Terminal ولن يتجاهل هذه الأوامر فقط مثل معظم الأدلة الأخرى. بدلاً من ذلك ، سيكون هناك بعض التوضيحات والإيضاحات الإضافية لما يعنيه كل أمر ولماذا.
  • أيضًا ، سوف يستخدم هذا الدليل المسارات المطلقة عند الضرورة ، حيث قد يكون من الصعب أحيانًا على القادمين الجدد العثور على طريقهم حول نظام الملفات في المحطة الطرفية.

2. إنشاء مواقع وأدلة المشروع

سيكون دليل المواقع بمثابة جذر المستند المحلي الجديد لـ Apache ، والذي يقع في مكان مناسب داخل دليل المستخدم الرئيسي. كما اتضح ، كان هذا الدليل في الواقع موطن إعداد "مشاركة الويب" OS X الأصلي الذي اختفى في OS X 10.7 Lion. بمجرد إنشاء الدليل ، يمكنك أن ترى أن Finder لا يزال يشيد بهذه الميزة من العام الماضي ، لأن أيقونة المجلد تحصل على معاملة خاصة ، وتتلقى أيقونة تبدو مشابهة بشكل شبيه لرمز Safari.

بعد إنشاء دليل المواقع ، سنضيف "موقعين اختباريين" - Foo and Bar.

2.1 إنشاء دليل مواقع في الصفحة الرئيسية

أولاً ، سنقوم بإنشاء دليل مواقع داخل الدليل الرئيسي لنظام التشغيل Mac الخاص بك باستخدام Terminal. للقيام بذلك ، سنستخدم الأمر mkdir ، وهو اختصار للدليل ، مع النص بعد الأمر الذي يمثل المسار واسم الدليل الذي نرغب في إنشائه. التلدة اختصار للدليل الرئيسي للمستخدم الحالي ، وهو أمر مفيد للغاية في أنظمة تشبه يونيكس.

أدخل الأمر التالي في Terminal لإنشاء دليل المواقع:

mkdir $ ~ / مواقع

إذا كنت جديدًا على الجهاز الطرفي ، فأنت على الأرجح تتساءل عما إذا كان الأمر أعلاه قد فعل شيئًا بالفعل أم لا. ونظرًا لأن معظم العناصر الموجودة في Terminal لا تقدم أبدًا أي ملاحظات ، فإن الأمر السهل لسرد محتويات الدليل الحالي هو ls. لسرد محتويات الدليل الرئيسي ، أدخل ما يلي:

$ ls ~

سيتم الآن سرد المواقع كأحد العناصر الموجودة في الدليل الرئيسي.

2.2 إنشاء اثنين من الدلائل المشروع داخل المواقع

بعد ذلك ، سننشئ دليلين إضافيين داخل المواقع. سيكون هذان الدليلان بمثابة "مواقع اختبار" لـ Apache.

للبدء ، دعونا نستخدم الأمر mkdir مرة أخرى. سيقوم الأمر أدناه بإنشاء دليل باسم foo داخل المواقع:

mkdir $ ~ / Sites / foo

المضي قدما وكرر هذا الإجراء مرة أخرى ، هذه المرة ، لإنشاء دليل شريط:

mkdir $ ~ / Sites / bar

لضمان وجود هذه الدلائل ، يمكنك التحقق مرة أخرى باستخدام:

$ ls ~ / مواقع

سيتم طباعة كل من فو وشريط إلى المحطة الطرفية.

2.3 إنشاء ملف HTML

الآن ، وبعد وجود دليلي الاختبار ، نحتاج إلى بعض الملفات لكي يعمل Apache. دعونا نبقي الأمور أساسية ومباشرة باستخدام ملف HTML بسيط في الوقت الحالي. لإنشاء هذا الملف الجديد ، استخدم الأمر touch. يتيح لك هذا الأمر إنشاء ملف فارغ جديد أو حتى تغيير الطابع الزمني على ملف أو دليل:

لمس $ ~ / Sites / foo / index.html

بعد تنفيذ الأمر أعلاه ، سيتم إضافة ملف index.html فارغ إلى ~ / Sites / foo.

2.4 مرحبا ، العالم!

ومع ذلك ، فإن ملف index.html الفارغ لا يساعدنا حقًا كثيرًا! دعنا نضيف بعض HTML إلى هذا الملف ، باستخدام محرر نصوص nano ، وهو محرر نصوص مصمم لواجهات سطر أوامر مثل Unix - مثل Terminal:

$ nano ~ / Sites / foo / index.html

بعد تشغيل الأمر أعلاه ، ستلاحظ أن نافذة المحطة الطرفية الآن تبدو أكثر مثل محرر نصوص - مع اسم الملف في الأعلى ، ومؤشر يشير إلى المكان الذي يمكن إدخال النص فيه ، والعديد من الأوامر مدرجة في الأسفل (ملاحظة: بين الأوامر في الجزء السفلي من نانو ، ^ يمثل مفتاح التحكم).

أضف التالي إلى ~ / Sites / foo / index.html:



  <رئيس>
    <عنوان> مرحبا ، العالم! | فو 
  
  
    

مرحبًا أيها العالم!     

مرحبًا بك في Foo .

  

أغلق هذا الملف وحفظه ، باستخدام عنصر تحكم + X ، متبوعًا بـ Y ، ثم أدخل. تخبر هذه الأوامر nano بإنهاء الملف وحفظه في اسم الملف الحالي (أو ، على العكس يمكنك الضغط على N عندما تريد الإغلاق لكن لا تريد الحفظ).

ماذا عن بار؟

رائع ، لدينا ملف index.html في ~ / Sites / foo ، لكن ماذا عن ~ / Sites / bar؟ بدلاً من التعامل مع الملفات عبر Finder ، أدناه مثال رائع على المكان الذي يمكن أن يوفر لك Terminal بعض المرونة فيه. دون الحاجة إلى النقر فوق العديد من المجلدات والنوافذ لنسخ ~ / Sites / foo / index.html ، يمكنك استخدام الأمر cp لنسخ الملف ومبادلة مثيلات كلمة "foo" بـ "bar" باستخدام nano:

$ cp ~ / Sites / foo / index.html ~ / Sites / bar / index.html

بعد ذلك ، تابع وافتح الملف باستخدام nano:

$ nano ~ / Sites / bar / index.html

يجب أن تكون نتيجتك النهائية في ~ / Sites / bar / index.html كما يلي:



  <رئيس>
    <عنوان> مرحبا ، العالم! | شريط 
  
  
    

مرحبًا أيها العالم!     

مرحبًا بك في Bar .

  

مع وجود دليلين للاختبار في مكانهما ، فقد حان الوقت لتحويل التروس والبدء في تكوين Apache لنظام التشغيل macOS Sierra.

3. تكوين اباتشي

مع كل مجموعة الأدلة الخاصة بك ، دعنا نبدأ في تحرير بعض ملفات التكوين لجعل Apache يقدم محتوى من دليل ~ / Sites.

أيضًا ، ستلاحظ أنه خلال هذا القسم من الدليل ، سيتم استخدام sudo كثيرًا إلى حد ما. ذلك لأن معظم المستخدمين القياسيين على نظام Mac لا يتمتعون بالامتياز الكافي لتعديل هذه الملفات مباشرة.

3.1 إضافة ملف التكوين

مهمتنا الأولى هي إنشاء ملف تكوين جديد يساعد في إخبار Apache بمكان تقديم المحتوى منه. ملف التكوين هذا هو في الواقع اسم المستخدم الخاص بك على جهاز Mac وينتهي بامتداد .conf. على سبيل المثال ، يجب أن أقوم بإنشاء ملف بعنوان John.conf.

إذا لم تكن متأكدًا من اسم المستخدم بالضبط (حساسية الحالة وكلها) ، فأنت تريد تشغيل الأمر التالي لطباعة اسم المستخدم الخاص بك إلى نافذة المحطة الطرفية:

whoami $

الآن بعد أن عرفت اسم المستخدم الخاص بك ، انتقل إلى الدليل حيث نحتاج إلى وضع هذا الملف الجديد. للقيام بذلك ، سنحتاج إلى تغيير الدلائل باستخدام cdcommand. يتيح لنا هذا الانتقال إلى دليل العمل الحالي والخروج منه إلى أي مكان نحتاج للذهاب إليه. لأغراضنا ، نحتاج ببساطة إلى إدخال الأمر التالي للاستفادة من / etc / apache2 / دليل المستخدم:

$ cd / etc / apache2 / المستخدمين

بعد ذلك ، يتيح إنشاء ملف username.conf (باستخدام اسم مستخدم Mac ، وليس كلمة "اسم المستخدم"). هذه المرة ، لن نضايق استخدام اللمس كما فعلنا طوال الخطوة 2. هناك بالفعل اختصار قليل يمكننا استخدامه بدلاً من ذلك ، حيث ببساطة نحدد اسم الملف الجديد أثناء استخدام nano. إذا كان الملف موجودًا ، فستفتح nano الملف الموجود ، وإلا ، ستفتح nano محرر نص فارغ وستسمح لنا بحفظ هذا الملف في دليل العمل الحالي الخاص بنا كاسم للملف المحدد.

أيضًا ، في هذه الخطوة ، سنستخدم الأمر sudo لأول مرة في هذا الدليل. كما هو مذكور أعلاه في الخطوة 1 ، sudo هو أمر خاص إذا تم استخدامه بشكل غير صحيح أو عشوائيًا ، فيمكنه إتلاف ملفات النظام وتدميرها. يرجى المضي قدما بحذر!

$ sudo nano username.conf

تأكد من استبدال "اسم المستخدم" باسم المستخدم الفعلي الخاص بك!

مع فتح هذا الملف الجديد في nano ، تابع وإضافة المحتويات التالية ، مع التأكد من استبدال "اسم المستخدم" باسم المستخدم الفعلي على جهاز Mac:

<الدليل "/ المستخدمون / اسم المستخدم / المواقع /">
  AllowOverride الكل
  خيارات الفهارس MultiViews FollowSymLinks
  تتطلب كل الممنوحة

بمجرد تعيين ما سبق ، أغلق nano مع control + X ، متبوعًا بـ Y ، ثم أدخل.

بعد ذلك ، دعونا نقوم بضبط الأذونات قليلاً حتى يتمكن Apache من قراءة هذا الملف الجديد. أدخل ما يلي في Terminal ، مرة أخرى استبدال "اسم المستخدم" باسم المستخدم الفعلي:

$ sudo chmod 644 username.conf

دون الخوض في الكثير من التفاصيل حول أذونات ملفات Linux ، تمثل الأرقام الثلاثة لـ 644 ، المذكورة أعلاه ، ما يلي:

مجموعة المالك أخرى

يشير الرقم "6" في "المالك" إلى أنه بإمكان المالك القراءة / الكتابة. يقيد "4" و "4" الثاني "المجموعة" و "الآخر" للقراءة فقط.

الآن وقد تم إنشاء ملف تكوين المستخدم ولديه أذونات مناسبة ، فلنبدأ بتشغيل بعض وحدات Apache الأساسية.

3.2 تشغيل الوحدات النمطية في httpd.conf

خطوتنا التالية هي نقل مستوى واحد "للخلف" أو "للأعلى" ، إلى / etc / apache2. يجب أن تكون حاليًا في / etc / apache2 / مستخدمين من الخطوة السابقة. لتغيير الدلائل مستوى واحد ، تحتاج ببساطة إلى استخدام هذا الاختصار الشائع إلى جانب الأمر cd: فترتين بدلاً من اسم دليل حقيقي:

$ cd ..

قد يبدو هذا مألوفًا لبعض المطورين الذين رأوا ذلك مستخدمًا في مسارات ملفات CSS أو JavaScript. هاتان النقطتان اختصاران للدليل الأصل للدليل الحالي. ولكن ماذا لو كنت ترغب في التحقق من مسار الملف الدقيق للمكان الذي تتواجد فيه حاليًا؟ يوجد أمر لذلك أيضًا ، pwd ، والذي سيقوم بطباعة دليل العمل نيابةً عنك ، مع ذكر المكان الذي تتواجد فيه بالضبط:

pwd

عندما أقوم بتشغيل هذا الأمر ، أحصل على: / etc / apache2.

ضمن / etc / apache2 ، لنقم أولاً بعمل نسخة احتياطية من ملف httpd.conf الموجود. للبدء ، استخدم الأمر cp لنسخ ، ثم قم بإضافة .bak كملحق ملف للإصدار المنسوخ:

$ sudo cp httpd.conf httpd.conf.bak

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

مع النسخة الاحتياطية المخبأة الآن ، يمكننا تركيز جهودنا على تحرير httpd.conf. افتح هذا الملف باستخدام nano:

$ sudo nano httpd.conf

في هذا الملف ، سنحتاج إلى "تشغيل" عدة وحدات. للقيام بذلك ، إنها مسألة إزالة الرمز # ، الذي يعمل كوسيلة للتعليق على السطر بالكامل ، "بإيقافه" بشكل فعال.

يوفر Nano إمكانية بحث تجعل البحث عن كل سطر أسهل قليلاً ، لأن هذا الملف طويل إلى حد ما. لاستخدامها ، اضغط على control + W (تتصرف على غرار command + F في متصفح الويب الخاص بك).

المدرجة أدناه هي وحدات لإلغاء / تمكين:

LoadModule authz_host_module libexec / apache2 / mod_authz_host.so
LoadModule authz_core_module libexec / apache2 / mod_authz_core.so
LoadModule userdir_module libexec / apache2 / mod_userdir.so
LoadModule vhost_alias_module libexec / apache2 / mod_vhost_alias.so
تضمين /private/etc/apache2/extra/httpd-userdir.conf
تضمين /private/etc/apache2/extra/httpd-vhosts.conf

بمجرد البحث عن كل سطر أعلاه وإزالة # prepending ، احفظ وأغلق httpd.conf.

3.3 تحرير httpd-userdir.conf

مع تحديث ملف httpd.conf ، الملف التالي المراد تحريره هو httpd-userdir.conflocated في الدليل الإضافي:

$ cd / etc / apache2 / extra

تمامًا كما كان من قبل ، من الجيد الاحتفاظ بنسخة احتياطية من ملف التكوين الافتراضي - فقط لتكون آمنًا:

$ sudo cp httpd-userdir.conf httpd-userdir.conf.bak

مع كل النسخ الاحتياطي ، قم بفتح وتحرير httpd-userdir.conf:

$ sudo nano httpd-userdir.conf

uncomment السطر التالي ، وإزالة #:

تضمين /private/etc/apache2/users/*.conf

ملاحظة: إذا كنت مهتمًا بوحدة PHP ، فسيتم استكشافها في "الخطوات الاختيارية" المذكورة أدناه:

3.4 إعادة تشغيل أباتشي

مع وجود جميع الإعدادات والتغييرات في مكانها ، فقد حان الوقت لإعادة تشغيل Apache واختبار إعدادنا:

سودو apachectl إعادة تشغيل

عرض المواقع المحلية الخاصة بك

انتقل إلى http: // localhost / ~ اسم المستخدم ، واستبدل اسم المستخدم باسم المستخدم الخاص بك. إذا نجح كل شيء ، فسترى فهرس دليل المواقع الخاص بك - يسرد جميع الدلائل الفرعية ، مع إدراج كل من مجلدات ~ / Sites / foo و ~ / Sites / bar. عند النقر فوق أحد هذه المجلدات ، يقوم Apache بعد ذلك بخادم محتويات هذا المجلد ، تمامًا مثل خادم الويب النموذجي.

تهانينا ، لديك الآن خادم ويب Apache محلي على جهاز Mac يعمل بنظام التشغيل macOS Sierra 10.12!

خطوات اختيارية

فيما يلي بعض الخطوات الاختيارية لتعزيز بيئة تطوير الويب المحلية لديك. قد يفضل بعض المطورين وجود اسم مضيف محلي لكل مشروع بدلاً من التعامل مع مضيف محلي. سيتيح لنا ذلك إنشاء مواقع محلية مثل foo.localhost و bar.localhost لـ ~ / Sites / foo و ~ / Sites / bardirectories.

الخطوة 1 اختياري: المضيفين الظاهري

يتيح لك استخدام Virtual Hosts أن تخبر Apache أين تبحث بالضبط عن المحتوى المحدد بناءً على توجيه "serverName" المدرج ضمن كتلة VirtualHost ، مثل الحاجة إلى foo.localhost الذي يقدم محتويات ~ / Sites / foo.

ملاحظة: باستخدام المضيفين الظاهريين ، سنتخلى عن طريقة عرضنا المفهرسة على المضيف المحلي وسنحتاج إلى تعديل ملف مضيف Mac لإضافة أسماء مضيفنا الفريدة لكل مشروع.

1.1 تكوين المضيفين الظاهري

أولاً ، قم بإنشاء نسخة احتياطية من ملف httpd-vhosts.conf الافتراضي. يوجد هذا الملف في / etc / apache2 / extra:

$ sudo cp httpd-vhosts.conf httpd-vhosts.conf.bak

بمجرد أن تكون النسخة الاحتياطية في متناول يديك ، قم بمسح محتويات httpd-vhosts.conf وأضف مجموعة بسيطة من إرشادات لكل موقع من مواقع مطوري الويب ، foo.localhost و bar.localhost ، كما هو موضح أدناه:

#V Host Host Entry for foo.localhost

  DocumentRoot "/ Users / john / Sites / foo"
  ServerName foo.localhost
  ErrorLog "/ private / var / log / apache2 / foo-error_log"
  CustomLog "/ private / var / log / apache2 / foo-access_log" المشترك 
# المضيف الظاهري الدخول ل bar.localhost

  DocumentRoot "/ المستخدمين / جون / مواقع / شريط"
  ServerName bar.localhost
  ErrorLog "/ private / var / log / apache2 / bar-error_log"
  CustomLog "/ private / var / log / apache2 / bar-access_log" الشائعة 

1.2 تحرير ملف المضيف الخاص بك

بعد حفظ وإغلاق ملف httpd-vhost.conf ، سنحتاج إلى تحرير ملف المضيف لإنشاء أسماء مضيف لـ Foo and Bar:

sudo $ نانو / الخ / المضيفين

ملاحظة: كن حذرًا عند التعامل مع هذا الملف. أضف تغييراتك إلى الأسفل ولا تغير الخطوط الثلاثة الأولى!

يجب أن يظهر ملف المضيف الخاص بك مشابهًا لهذا عند فتحه لأول مرة:

##
# قاعدة بيانات المضيف
#
يتم استخدام # localhost لتكوين واجهة الاسترجاع
# عندما يتم تشغيل النظام. لا تغيير هذا الإدخال.
##
127.0.0.1 المضيف المحلي
255.255.255.255 البث
:: 1 مضيف محلي

للاحتفاظ بالأشياء الموثقة ، أضف تعليقًا يحدد تغييراتك على هذا الملف ، أعلى مدخلات اسم المضيف لكل من foo.localhost و bar.localhost:

##
# قاعدة بيانات المضيف
#
يتم استخدام # localhost لتكوين واجهة الاسترجاع
# عندما يتم تشغيل النظام. لا تغيير هذا الإدخال.
##
127.0.0.1 المضيف المحلي
255.255.255.255 البث
:: 1 مضيف محلي
# المواقع المحلية
127.0.0.1 foo.localhost
127.0.0.1 bar.localhost

بمجرد الإضافة ، احفظ وأغلق هذا الملف.

1.3 أعد تشغيل Apache

قبل أن نتمكن من اختبار foo.localhost و bar.localhost ، يجب إعادة تشغيل Apache حتى يتسنى تفعيل توجيهات المضيف الظاهري:

سودو apachectl إعادة تشغيل

الآن المضي قدما واختبار كل من foo.localhost و bar.localhost في متصفح الويب الخاص بك. يجب أن يقوم كلا الموقعين بتحميل ملفات index.html ذات الصلة وعرضها.

مع وجود مثال العمل هذا في مكانه الصحيح ، يمكنك الآن رؤية مدى فعالية المضيفين الظاهريين المحليين وأسماء المضيفين المحليين في جهود التطوير.

الخطوة الاختيارية 2: تكوين PHP

ميزة أخرى لطيفة تكمل خادم الويب Apache المدمج في macOS Sierra هي مترجم PHP المدمج! PHP هي لغة البرمجة النصية من جانب الخادم التي تتقارب بشكل جيد مع Apache. لتمكين Apache من التعامل مع PHP ، يمكننا الاستفادة من PHP Module ، والتي تدير بشكل أساسي عملية PHP داخل عملية Apache ، مع الجمع بين الاثنين بشكل جيد.

ملاحظة: يتضمن macOS Sierra إصدار PHP 5.6.3.

2.1 تمكين وحدة PHP

أولاً ، دعنا نعيد زيارة httpd.conf:

$ sudo nano /etc/apache2/httpd.conf

في هذا الملف ، نحتاج ببساطة إلى إلغاء ربط سطر واحد ، عن طريق إزالة #:

LoadModule php5_module libexec / apache2 / libphp5.so

من خلال تمكين هذه الوحدة (بمجرد إعادة تشغيل Apache) ، يمكنك الآن تقديم أي ملفات بامتداد .php. يمكن لـ Apache الآن تسليم هذا الملف بشكل أساسي إلى مترجم PHP ومن ثم الحصول على النتيجة النهائية لإرسالها كرد HTTP.

2.2 تفسير PHP ضمن ملفات HTML

ماذا لو أردنا تنفيذ كود PHP الموجود في ملفات HTML الخاصة بنا؟ للقيام بذلك ، نحتاج إلى إجراء تغيير على ملف httpd-vhosts.conf:

$ sudo nano /etc/apache2/extra/httpd-vhosts.conf

أضف كتلة التعليمات البرمجية هذه إلى أعلى الملف:


  تطبيق SetHandler / x-httpd-php

يجب أن يبدو ملف httpd-vhosts.conf الآن كما يلي:

# تمكين تفسير PHP داخل ملفات HTML

  تطبيق SetHandler / x-httpd-php
#V Host Host Entry for foo.localhost

  DocumentRoot "/ Users / john / Sites / foo"
  ServerName foo.localhost
  ErrorLog "/ private / var / log / apache2 / foo-error_log"
  CustomLog "/ private / var / log / apache2 / foo-access_log" المشترك 
# المضيف الظاهري الدخول ل bar.localhost

  DocumentRoot "/ المستخدمين / جون / مواقع / شريط"
  ServerName bar.localhost
  ErrorLog "/ private / var / log / apache2 / bar-error_log"
  CustomLog "/ private / var / log / apache2 / bar-access_log" الشائعة 

بعد إجراء هذه التغييرات ، أعد تشغيل Apache:

سودو apachectl إعادة تشغيل

3.3 اختبار ملفات PHP

دعنا نختبر ملف .php فعليًا وأيضًا كود PHP داخل ملف HTML. يبدو foo.localhost وكأنه مرشح اختبار مثالي:

$ nano ~ / Sites / foo / example.php

في nano ، أدخل متغير PHP الأساسي التالي وبيان:

<؟ PHP
  $ تحية = 'مرحبًا ، PHP World!' ؛
  صدى "

". تحية $. ''؛ ؟>

أحفظ وأغلق الملف. بعد ذلك ، قم بزيارة foo.localhost / example.php. سيتم الترحيب بك بواسطة "Hello، PHP World!" كعلامة H1.

بعد ذلك ، دعونا نختبر تفسير شفرة PHP الموجودة في ملف HTML:

$ nano ~ / Sites / foo / index.html

أضف بضعة أسطر من كود PHP التي يمكن أن تساعد في تعيين متغير "اليوم" حتى نتمكن من إخبار الزوار بما هو اليوم الحالي من الأسبوع:

<؟ PHP
  date_default_timezone_set ( 'بالتوقيت العالمي')؛
  $ يوم = تاريخ ('l') ؛
؟>


  <رئيس>
    <عنوان> مرحبا ، العالم! | فو 
  
  
    

مرحبًا أيها العالم!     

مرحبًا بك في Foo .

    

اليوم هو <؟ php echo $ day؛ ؟>.   

الآن ، عندما تزور موقع foo.localhost ، سيتم إخطارك بما هو اليوم الحالي من الأسبوع ، بناءً على توقيت UTC!

إلى أين أذهب بعد ذلك

الآن بعد أن أصبح لديك Apache في macOS Sierra 10.12 ، أصبح عالم تطوير الويب بمثابة المحار!

يمكنك بسهولة تشغيل مواقع الويب الخاصة بك محليًا ، سواء لموقع ويب داخلي بين شبكتك المحلية ، أو لأغراض التطوير حيث تحتاج إلى محاكاة إصدار إنتاج من خادم الويب الخاص بك مباشرة على جهازك المحلي. بعد ذلك ، لنقل الأشياء إلى المستوى التالي حقًا ، يمكنك حتى التفكير في تحديد مزايا Git ولن تضطر أبدًا إلى التشويش على بروتوكول FTP أو لوحة تحكم CPanel مرة أخرى (هل لا يزال الأشخاص يستخدمون تلك الآثار؟).

نظرًا لأنك الآن محترف سطر أوامر ، فقد حان الوقت للابتعاد عن تشغيل إصدارات Mac المضمنة لعناصر مثل Apache و PHP و Git وغيرها ، والبدء في استكشاف القوة والتنوع الذي تديره بيئة Linux المحلية باستخدام Vagrant يمكن أن تقدم لك. باستخدامه ، ستتمكن من إعداد برامج Linux الأصلية وتكوينها دون المخاطرة بملفات النظام الهامة على جهاز Mac ، ولن تحتاج إلى التشويش على Homebrew أو ما شابه.

الحفاظ على الترميز!

استمتع بما قرأته؟

تأكد من إعجابك ومشاركته أدناه ، أو حتى اشتر لي قهوة ️!

جون فوديارو هو متعصب جافا سكريبت يقع في ولاية نيو جيرسي.