ما مقدار نظام Linux الذي يجب أن أتعلمه لنشر مواقع الويب باستخدام LAMP؟

StackOverflow https://stackoverflow.com/questions/295861

سؤال

كوني أحد مطوري Windows، فأنا أعمل حاليًا على مشروعي الخاص باستخدام LAMP.أنا أفهم ما أحتاج إلى معرفته عن PHP وMySQL، لكن Linux يبدو ضخمًا وليس من الواضح من أين أبدأ وما هو الكافي بالنظر إلى أهدافي.
وأهدافي هي فهم المفاهيم العامة، والقدرة على نشر المشروع لدى مزود استضافة والقدرة على مراقبة أداء الموقع من أجل اكتشاف المشاكل، وتحميل المشكلات، وما إلى ذلك.
أعلم أن الحل الأفضل هو الاستعانة بمسؤول Linux للقيام بذلك ولكن قبل أن أتمكن من القيام بذلك، يجب أن أفعل ذلك بنفسي.

قل لي كيف!

سيكون أمرا رائعا إذا قام الناس بتوسيع إجاباتهم حول ماذا للتعلم مع كيف لتعلمه (هل يجب أن أشتري كتابًا معينًا، أم أن هناك برنامجًا تعليميًا جيدًا عبر الإنترنت أو ...؟).

هل كانت مفيدة؟

المحلول

80% من مشاكلك ستكون أذونات.يقوم Windows بذلك بشكل مختلف؛إذا قمت بتسجيل الدخول كجذر (أو باستخدام صلاحيات خاصة تشبه الجذر)، فيمكنك تجاوز الأذونات.أباتشي لا يستطيع ولن يفعل.

  • تعرف على كيفية تعيين ملكية الملفات والأدلة بشكل صحيح.أي كتاب يونكس سيغطي هذا:تأكد من فهمه فعليًا - إنه ليس أمان Windows مكتوبًا بشكل مختلف - إنه نموذج مختلف للأمان.

من بين المشاكل المتبقية، 80% ستكون مشكلات PATH.ليس لدى PHP مشكلة PATH كبيرة مثل Java وPython، لكنهم جميعًا يستخدمون إعداد PATH للعثور على المكونات والمكتبات.سوف تحصل على تلك الأخطاء بانتظام.يحتوي Windows على PATH، ولكنه يحتوي أيضًا على سجل، مما يجعل الأمور إما سهلة للغاية أو سرية للغاية.يونكس لا يحتفظ بأي أسرار.

  • تعرف على متغيرات البيئة التي تستخدمها PHP وMySQL.تأكد من أنك تعرف أين وكيف يتم ضبطها.يعمل Apache في بيئته الخاصة، ولديه أوامر لتوفير إعدادات بيئة التشغيل عبر mod_php.اكتب باختصار echo $PATH نصوص شل للكشف عما يحدث.

من بين المشاكل المتبقية، 80% ستكون متعلقة بقاعدة البيانات.بعد فرز أذونات قاعدة البيانات، سيظل يتعين عليك الاتصال، وسيتعين على "الأنبوب المسمى" مقابل "الأنبوب المسمى".ستكون أشياء "المضيف المحلي" خاطئة بطرق غامضة ومربكة.MySQL متسامح جدًا، لكنك سترتكب بعض الأخطاء هنا.

  • جرب كل اتصال بديل، تعرف على كيفية عمله.لا تختر واحدًا لأنه يشبه Windows أو "أبسط".في الواقع ممارسة كل واحد.من المهم أيضًا كيفية تمرير أسماء المستخدمين وكلمات المرور من تطبيق الويب إلى خادم قاعدة البيانات.يعمل Apache كـ "لا أحد" - ولا ترغب في منحهم حق الوصول الافتراضي إلى أي شيء.يجب أن يقوم تطبيقك بإجراء اتصال مقصود بقاعدة البيانات دون استخدام الإعدادات الافتراضية.

من بين المشاكل المتبقية، 80% منها ستكون مشاكل تكوينات Apache.Apache هو برنامج بسيط حقًا، ولكنه يحتوي على مليون خيار.هناك أربع طرق للقيام بكل شيء، وستحاول دائمًا تجربة طريقتين لا تعملان على الإطلاق، وتقبل بالثالثة التي ستكون رديئة.الرابع، وهو أبسط بكثير، لن يخطر ببالك أبدًا.

  • اقرأ الكثير عن تكوين Apache.ال httpd.apache.org الموقع يحتوي على الكثير من المعلومات.نسعى جاهدين من أجل البساطة.انسخ الأمثلة الموجودة واستخدمها.لا تضع المتطلبات أو التطبيقات المرغوبة بناءً على تجربة IIS أو تجربة سطح مكتب Windows.انسخ شيئًا يعمل.

من المشاكل المتبقية، 80٪ ستكون استخدام تطبيق نظام الملفات.إذا حاولت فتح ملفات محلية أو قراءتها أو كتابتها، فستجد أن (أ) الأذونات غير صحيحة في الدليل الذي تحاول استخدامه [انظر أعلاه] و(ب) مسارات ملفات Unix مختلفة.ليس مختلفًا كثيرًا، ولكنه مختلف بما فيه الكفاية حتى ينكسر شيء ما بطريقة غامضة.

  • يغطي كل كتاب برمجة في كتب Unix/Linux هذا الأمر.إنه لا يختلف كثيرًا عن Windows، ولكنه مختلف بما يكفي لإزعاجك في المرة الأولى.اكتب صفحات PHP تشبه "hello World" لزيادة أبسط إصدار ممكن من التحميلات أو التنزيلات فقط للتأكد من أن جميع الأجزاء والأجزاء في مكانها الصحيح.ثم قم بإصلاح تطبيقك بالكامل للقيام بذلك بشكل صحيح.

من بين المشاكل المتبقية، 80% ستكون عبارة عن عملية فرعية.يقوم Windows بهذا بشكل مختلف.أحد أهم الأشياء في Unix هو أن تتذكر أن العملية الفرعية الخاصة بك هي طفلك ويجب عليك الانتظار حتى تنتهي حتى يتمكن نظام التشغيل من التنظيف.إذا كنت تفكر في عملية فرعية باعتبارها عملية موازية "أطلق وانسى"، فستكون لديك عمليات زومبية وستضطر إلى إجراء عمليات إعادة تشغيل دورية.

  • اكتب صفحات PHP بسيطة جدًا لزيادة إدارة العمليات الفرعية.القاعدة الذهبية هي إدارة أطفالك والتنظيف من بعدهم.ثم قم بإصلاح تطبيقك بالكامل للقيام بذلك بشكل صحيح.

ستكون المشاكل المتبقية هي منطق التطبيق التافه، ولكن بسبب اختلافات النظام الأساسي، ستلوم Unix قبل تعقب الخطأ في تطبيق PHP.

نصائح أخرى

من أعلى رأسي ستحتاج إلى:

  1. تعلم طريقك حول نظام الملفات.
  2. تعرف على كيفية بدء/إيقاف العمليات (الخدمات) التي تستخدمها.
  3. ابحث عن محرر نصوص أساسي أو تعلمه (vim، joe، pico)
  4. تعلم كيفية التحقق من العمليات لمعرفة ما إذا كانت الأمور قيد التشغيل (ملاحظة، أعلى)
  5. إذا كنت تقوم بصيانة الخادم، فستحتاج إلى معرفة كيفية تثبيت الحزم.

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

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

ووالدروس التي تعلمتها: "يم" هو أفضل صديق لديك عند تثبيت خدماتك، "سودو" هو أفضل صديق لك عند تكوين خدماتك (أذونات يمكن أن يكون من المتاعب)، وتقريبا كان كل مشكلة أخرى نتيجة لالإفرادية حساسية أو القطع مائل القضايا. اتضح فعلنا قرح أمن قليلا على الوصول FTP ولكن هذا كان وراء جدار حماية (DMZ) لذلك لم يكن هناك ضرر القيام به قبل كان لديهم التدقيق الأمنية الحقيقية وشددت عنه.

والجواب النهائي: إذا كنت على استعداد لنشمر الأكمام والحصول على سطر الأوامر القذرة الحصول على موقع على شبكة الانترنت الأساسية والتي تعمل على مربع لينكس ليست مهمة ضخمة حتى تحصل على الأمن الذي (IMO) هو أفضل اليسار ل شخص خبير في هذا المجال.

وكنت قد تنظر، على أساس عرضكم، خيار المزج (ويندوز اباتشي ماي بيثون / بيرل / PHP).

والتعلم لينكس ليس <م> من الصعب ، لكنها بالتأكيد ليست مهمة قصيرة، إما. كنت هناك الكثير من المهام مسؤول النظام أن تحمل أكثر من منصة إلى منصة، ولكن الجواب الحقيقي على سؤالك هو أن تأتي على الأقل الهاوي لينكس المشرف، ثم انتقل من هناك.

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

والاقتراحات vfilby هي جيدة.

وتعلم بالتأكيد مدير مجموعة لينكس أيهما تختار. وأود أن قضاء بعض الوقت مع اباتشي، لأنه قليلا من وحش لمجرد أن لديها الكثير من خيارات التكوين.

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

وحظا سعيدا!

يجب عليك أولاً أن تقرر ما إذا كنت ستدير النظام باستخدام أدوات واجهة المستخدم الرسومية (gnome أو KDE) أو إذا كنت ستصل بشكل أساسي من خلال SSH باستخدام سطر الأوامر.(يعتمد هذا عادةً على مكان وجود الخادم).إن تعلم القليل من واجهة المستخدم الرسومية (GUI) وواجهة سطر الأوامر (CLI) يقطع شوطا طويلا.تعد واجهة سطر الأوامر (CLI) قوية للغاية، وأكثر بكثير من موجه الأوامر الموجود على نظام التشغيل Windows (أعرف عن PowerShell...)

من منظور واجهة المستخدم الرسومية، عادةً ما يكون الجهاز الطرفي (CLI) قيد التشغيل على أي حال، من منظور Debian/Ubuntu:

  1. بدء/إيقاف العمليات: sudo /etc/init.d/apache stop أو sudo /etc/init.d/apache start
  2. محرري النصوص: gedit (واجهة المستخدم الرسومية - جنوم)، kate (واجهة المستخدم الرسومية - كيدي)، vim (كلي) أو nano (سطر الأوامر)
  3. العمليات الجارية: ps -aux
  4. إنهاء العملية sudo kill -s TERM <process_id>
  5. إضافة حزمة: sudo apt-get install php5-cli
  6. ترقية/تصحيح النظام: sudo apt-get update && sudo apt-get upgrade

هناك قدر كبير من المعلومات هنا ومجموعة كبيرة ومتنوعة من الخيارات للاختيار من بينها.أوصي باستخدام توزيعة Linux التي تحتوي على مجتمع ودود (على سبيل المثال.Ubuntu، أو CentOS (RHEL منزوعة العلامة التجارية/مجانية)، أو RHEL (تدفع لهم مقابل مساعدتك).

من المؤكد أنه سيكون هناك قيمة كبيرة بالنسبة لك لتجربتها مع التوزيع خلال عطلة نهاية الأسبوع على جهاز افتراضي أو جهاز احتياطي في المنزل/العمل.مجتمع Linux ضخم وستجد دعمًا ممتازًا إذا بحثت عنه.

من أعلى رأسي ستحتاج إلى:

  1. تعرف على كيفية قراءة الصفحات اليدوية/استخدام نظام المساعدة.
  2. تعلم كيفية التنقل حول نظام الملفات.
  3. تعرف على كيفية بدء/إيقاف العمليات (الخدمات) التي تستخدمها.
  4. تعرف على مكان تسجيل الخادم الخاص بك وكيفية تتبع ملفات السجل.
  5. تعلم كيفية التحقق من العمليات لمعرفة ما إذا كانت الأمور قيد التشغيل (ملاحظة، أعلى).
  6. ابحث عن محرر نصوص أساسي أو تعلمه (vim، joe، pico)
  7. إذا كنت تقوم بصيانة الخادم، فستحتاج إلى معرفة كيفية تثبيت الحزم.

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

يجب

  • تعلم قذيفة باش (خاصة $PATH, history)
  • الكوماندوز الأساسية (cd, ls, rm, tail, kill, ps, top)
  • معرفة عن /proc واستخداماتها الرئيسية
  • تعلم المحرر (vi يتم تثبيته دائمًا.إذا كنت تريد يمكنك أن تتعلم emacs أيضاً)
  • استبدال sed الأساسي (sed s,orig,repl,g)، محرجا قليلا
  • كيفية العمل مع iptables, netstat و traceroute
  • كيفية الحصول على المعلومات (man, info و --help)
  • كيفية تثبيت الحزمة (pacman -S <name> لأرشلينكس، apt-get install <name> لنظام دبيان)، قم بإزالة النظام الخاص بك وتحديثه.
  • معرفة كيفية بدء/إيقاف الخدمات في التوزيع الخاص بك (/etc/init.d, /etc/rc.d)
  • كيف يعمل نظام ملفات يونكس بشكل عام (inodes, ما هو quota؟).الفهم مثلا /etc/fstab.معرفة عن df.
  • فهم كيفية إدارة المستخدمين والمجموعات (useradd, groupadd).معرفة صيغة /etc/passwd و /etc/group
  • حيث تبحث عن ملفات السجل ل apache و ال syslog الخفي.
  • معرفة بعض الأشياء ذات المستوى المنخفض مثل dmesg و hdparm

وفي الغالب، يجب أن نعرف كيفية استخدام لينكس (كما في الاستخدام اليومي). ثم، يجب أن نعرف أيضا كيفية التعامل مع أسطر الأوامر.

وأخيرا، يجب أن تتعلم الاشياء LAMP معين. ينبغي لك أن تعرف وتطبيق بعض المبادئ التوجيهية الأمنية الأساسية (أو غير ذلك الأساسية).

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

  • المرجعية أو تحميل دليل استخدامات جنو الأساسية وقراءتها بانتظام

  • يتعلم vim.البداية الجيدة هي vimtutor على القشرة.

  • تعرف على كيفية استخدام آليات الأمان، وليس مجرد تعطيلها.يتمتع Windows بأمان ضعيف لأن التطبيقات المتاحة له تتوقع ذلك بهذه الطريقة (وسوف تنكسر بخلاف ذلك).في بيئة شبيهة بنظام Unix، كانت التطبيقات دائمًا مجبرة على التصرف، ويمكن أن يكون الأمان مشددًا بشكل افتراضي.

واستدان حتى مربع القديم على كريغزلست وتثبيت جنتو لينكس على ذلك. أن ... تجربة ... يجب أن يوفر لك الكثير من يشعر لينكس وكيف يفكر.

وأيضا، في حالة السادس مقابل ايماكس ، I حكم <م> ايماكس . (على الرغم من أنك سوف تريد أن تبدأ مع بيكو / نانو، لأنه لا يوجد أي معنى في تعلم تحرير كامل المواصفات في الوقت الذي تعلم نظام التشغيل الجديد).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top