اسمي فبنف. لقد تم تصميمي خصيصًا للبشر، للمساعدة في تبسيط إدارة عمليات تثبيت PHP المخصصة المتعددة.
لقد استوحيت الإلهام في الأصل من العمل المتميز لكلا المشروعين اللذين تعرفهما بالفعل وتحبهما مع مجموعة كاملة من الإضافات التي تتمحور حول PHP لمساعدتك في إنشاء إصدارك الأول وتبسيط الإدارة والعمل مع الإصدارات المختلفة والاستمرار في إنشاء إصدار جديد بعد الإصدار الجديد وكأنه لا يوجد شيء لذلك.
أنت مطور PHP، مثلنا، وليس عليك فقط أن يكون لديك أحدث وأحدث مترجم لتدوير البرامج النصية الخاصة بك ولكنك تهتم أيضًا بمعرفة كيفية التعامل معها عند تقديمها إلى التفسيرات القديمة. هل تساءلت يومًا لماذا لا يمكنك تشغيل تطبيق PHP على جهاز التطوير الخاص بك؟ حسنًا، لقد وجدت الإجابة للتو عند اصطحابك في رحلة لبناء PHP على أجهزة التطوير الخاصة بهم. يمكنك تخصيص خيارات التكوين الخاصة بك بسهولة وإنشاء امتدادات pecl في PHP أو يدويًا بعد ذلك. قم بتكوين الإصدارات المخصصة وتثبيتها لنفس إصدار إصدار PHP مباشرةً من مستودع كود مصدر PHP المحفوظ في مجلد .phpenv
المحلي لديك.
يعمل phpenv على الدليل الخاص بكل مستخدم ~/.phpenv
. تتوافق أسماء الإصدارات في phpenv مع الدلائل الفرعية لـ ~/.phpenv/versions
. على سبيل المثال، قد يكون لديك ~/.phpenv/versions/5.3.8
و ~/.phpenv/versions/5.4.0
.
كل إصدار عبارة عن شجرة عمل تحتوي على ثنائياتها الخاصة، مثل ~/.phpenv/versions/5.4.0/bin/php
و ~/.phpenv/versions/5.3.8/bin/pyrus
. يقوم phpenv بإنشاء ثنائيات الرقائق لكل ثنائي عبر جميع إصدارات PHP المثبتة.
هذه الحشوات عبارة عن نصوص مجمعة بسيطة تعيش في ~/.phpenv/shims
وتكتشف إصدار PHP الذي تريد استخدامه. يقومون بإدراج الدليل الخاص بالإصدار المحدد في بداية $PATH
ثم تنفيذ الملف الثنائي المقابل.
نظرًا لبساطة أسلوب الرقائق، كل ما تحتاجه لاستخدام phpenv هو ~/.phpenv/shims
في $PATH
الخاص بك والذي سيقوم بتبديل الإصدار تلقائيًا.
للحصول على تثبيت أكثر تلقائية، يمكنك استخدام phpenv-installer. إذا كنت تفضل الطريقة اليدوية، فاتبع الخطوات الموضحة أدناه.
سيؤدي هذا إلى استخدام أحدث إصدار من phpenv وسيسهل عملية التفرع والمساهمة في أي تغييرات احتياطيًا.
تحقق من phpenv في ~/.phpenv
.
$ git clone [email protected]:phpenv/phpenv.git ~/.phpenv
أضف ~/.phpenv/bin
إلى $PATH
الخاص بك للوصول إلى أداة سطر الأوامر phpenv
.
$ echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bash_profile
أضف phpenv init إلى الصدفة الخاصة بك لتمكين الحشوات والإكمال التلقائي.
$ echo 'eval "$(phpenv init -)"' >> ~/.bash_profile
أعد تشغيل الصدفة الخاصة بك حتى تصبح تغييرات المسار سارية المفعول. يمكنك الآن البدء باستخدام phpenv.
$ exec $SHELL -l
(اختياري) قم بتثبيت php-build فيه وأي ملف php. (راجع PHP-Build Home)
$ git clone https://github.com/php-build/php-build $(phpenv root)/plugins/php-build
$ phpenv install [any php version]
(اختياري) أعد بناء ثنائيات الرقائق. يجب عليك القيام بذلك في أي وقت تقوم فيه بتثبيت PHP ثنائي جديد.
$ phpenv rehash
إذا قمت بتثبيت phpenv باستخدام الإرشادات المذكورة أعلاه، فيمكنك ترقية التثبيت الخاص بك في أي وقت باستخدام git.
للترقية إلى أحدث إصدار تطوير من phpenv، استخدم git pull
:
$ cd ~/.phpenv
$ git pull
افتراضيًا، سيقوم php-build بتجميع PHP مع مجموعة افتراضية من الخيارات المحددة بواسطة:
عادةً، إذا كنت بحاجة إلى تحديد كيفية إنشاء PHP على نظامك، فيمكنك إضافة خيارات التكوين في متغير PHP_BUILD_CONFIGURE_OPTS
، وإضافة امتدادات PHP في متغير PHP_BUILD_INSTALL_EXTENSION
.
الطريقة المفضلة لربط تطبيقات phpenv هي استخدام php-fpm بعد إنشاء php. يمكن بعد ذلك تكوين خادم الويب الخاص بك للاتصال بمثيل php-fpm. في هذا الأسلوب، سيتم تشغيل PHP كأذونات للمستخدم الذي يستدعي، وهو ليس بالضرورة خادم الويب.
يمكن بدء تشغيل php-fpm بإحدى الطرق التالية:
~/.phpenv/versions/$VERSION/etc/init.d/php-fpm
~/.phpenv/versions/$VERSION/etc/systemd/system/php-fpm.service
php-fpm (8)
وتوفير وسائط سطر الأوامر افتراضيًا، يأتي php-fpm مع ملف تكوين ضمن ~/.phpenv/versions/$VERSION/etc/php-fpm.conf
، والذي سيبحث عنه عند التشغيل. يؤدي هذا إلى تكوين php-fpm للاستماع على localhost:9000
عند البدء. يمكنك تحرير هذا الملف أو استبداله، أو توفير ملف تكوين مختلف باستخدام وسيطة سطر الأوامر --fpm-config
( -y
).
تعليمات لربط خوادم الويب المختلفة بـ php-fpm:
وبدلاً من ذلك، لا يزال بإمكانك استخدام وحدة Apache php عن طريق تكوين php-build لإنشاء ملحق libphp.so apache (التوجيهات التي يجب اتباعها). يمكن بعد ذلك العثور على libphp.so بواسطة apache ضمن المجلد ~/.phpenv/versions/$VERSION/libexec
. يمكن استخدام هذا الملف لتوجيه Apache's LoadModule php5_module
ويتطلب إعادة تشغيل Apache عند تغييره.
قم بتخطي هذا القسم إلا إذا كنت بحاجة إلى معرفة ما يفعله كل سطر في ملف تعريف Shell الخاص بك.
phpenv init
هو الأمر الوحيد الذي يتجاوز خط تحميل الأوامر الإضافية في الصدفة الخاصة بك. إليك ما يفعله phpenv init
فعليًا:
يقوم بإعداد مسار الحشوات الخاصة بك. هذا هو الشرط الوحيد لكي يعمل phpenv بشكل صحيح. يمكنك أيضًا القيام بذلك يدويًا عن طريق إضافة ~/.phpenv/shims
مسبقًا إلى $PATH
.
تثبيت الإكمال التلقائي. هذا اختياري تمامًا ولكنه مفيد جدًا. سيؤدي تحديد المصدر ~/.phpenv/completions/phpenv.bash
إلى إعداد ذلك. يوجد أيضًا ~/.phpenv/completions/phpenv.zsh
لمستخدمي Zsh.
يعيد الحشوات. ستحتاج من وقت لآخر إلى إعادة إنشاء ملفات الرقائق الخاصة بك. يؤدي القيام بذلك على init إلى التأكد من تحديث كل شيء. يمكنك دائمًا تشغيل phpenv rehash
يدويًا.
يقوم بتثبيت المرسل sh. هذه القطعة اختيارية أيضًا، ولكنها تسمح لـ phpenv والمكونات الإضافية بتغيير المتغيرات في الصدفة الحالية، مما يجعل الأوامر مثل phpenv shell
ممكنة. لا يقوم المرسل sh بأي شيء مجنون مثل تجاوز cd
المضغوط أو اختراق موجه الصدفة الخاص بك، ولكن إذا كنت بحاجة لسبب ما إلى أن يكون phpenv
نصًا حقيقيًا وليس وظيفة shell، فيمكنك تخطيه بأمان.
قم بتشغيل phpenv init -
لترى بنفسك بالضبط ما يحدث تحت الغطاء.
مثل git
، يقوم أمر phpenv
بتفويض الأوامر الفرعية بناءً على الوسيط الأول الخاص به. الأوامر الفرعية الأكثر شيوعًا هي:
إظهار الاستخدام والمساعدة المفيدة. عندما تكون في ورطة، افعل هذا ;)
$ phpenv help
$ phpenv help <subcommand>
php-build هو مكون إضافي متوافق مع phpenv يقوم ببناء وتثبيت php. لتتمكن من استخدام تثبيت phpenv، قم بتنزيل وتثبيت المكون الإضافي php-build كما هو موضح في الخطوة 5. من تعليمات التثبيت أعلاه.
قبل تشغيل تثبيت phpenv، تأكد من تثبيت إصدارات التطوير اللازمة لبناء php في نظامك. على وجه الخصوص، إذا كنت تريد إنشاء ملحق Apache، فتأكد من تثبيت apache2-dev (أو ما يعادله من نظام التشغيل لديك).
يضبط الإصدار العام من PHP ليتم استخدامه في جميع الأصداف عن طريق كتابة اسم الإصدار إلى ملف ~/.phpenv/version
. يمكن تجاوز هذا الإصدار عن طريق ملف .phpenv-version
لكل مشروع، أو عن طريق تعيين متغير البيئة PHPENV_VERSION
.
$ phpenv global 5.4.0
يخبر system
اسم الإصدار الخاص phpenv باستخدام نظام PHP (تم اكتشافه من خلال البحث في $PATH
).
عند التشغيل بدون رقم إصدار، يقوم phpenv global
بالإبلاغ عن الإصدار العام الذي تم تكوينه حاليًا.
يضبط إصدار PHP محلي لكل مشروع عن طريق كتابة اسم الإصدار إلى ملف .phpenv-version
في الدليل الحالي. يتجاوز هذا الإصدار النطاق العام، ويمكن تجاوزه بنفسه عن طريق تعيين متغير البيئة PHPENV_VERSION
أو باستخدام أمر phpenv shell
.
$ phpenv local 5.3.8
عند التشغيل بدون رقم إصدار، يقوم phpenv local
بالإبلاغ عن الإصدار المحلي الذي تم تكوينه حاليًا. يمكنك أيضًا إلغاء تعيين الإصدار المحلي:
$ phpenv local --unset
يضبط إصدار PHP خاصًا بالصدفة عن طريق تعيين متغير البيئة PHPENV_VERSION
في الصدفة الخاصة بك. يتجاوز هذا الإصدار كلا من الإصدارات الخاصة بالمشروع والإصدار العمومي.
$ phpenv shell 5.3.9
عند التشغيل بدون رقم إصدار، يُبلغ phpenv shell
عن القيمة الحالية لـ PHPENV_VERSION
. يمكنك أيضًا إلغاء تعيين إصدار Shell:
$ phpenv shell --unset
لاحظ أنك ستحتاج إلى تمكين تكامل shell الخاص بـ phpenv (الخطوة 3 من تعليمات التثبيت) لتتمكن من استخدام هذا الأمر. إذا كنت تفضل عدم استخدام تكامل الصدفة، فيمكنك ببساطة تعيين متغير PHPENV_VERSION
بنفسك:
$ export PHPENV_VERSION=5.3.13
يسرد جميع إصدارات PHP المعروفة لـ phpenv، ويظهر علامة النجمة بجوار الإصدار النشط حاليًا.
$ phpenv versions
5.2.8
5.3.13
* 5.4.0 (set by /YOUR-USERNAME/.phpenv/global)
يعرض إصدار PHP النشط حاليًا، بالإضافة إلى معلومات حول كيفية تعيينه.
$ phpenv version
5.4.0 (set by /YOUR-USERNAME/.phpenv/version)
تثبيت الحشوات لجميع ثنائيات PHP المعروفة لـ phpenv (على سبيل المثال، ~/.phpenv/versions/*/bin/*
). قم بتشغيل هذا الأمر بعد تثبيت إصدار جديد من PHP.
$ phpenv rehash
يعرض المسار الكامل للملف الثنائي الذي سينفذه phpenv عند تشغيل الأمر المحدد.
$ phpenv which pyrus
/YOUR-USERNAME/.phpenv/versions/5.4.0/bin/pyrus
تتم استضافة كود مصدر phpenv على GitHub. إنها نظيفة ونموذجية وسهلة الفهم (بفضل مشروع rbenv)، حتى لو لم تكن من متسللي الصدفة.
هذا المشروع هو في الأساس نسخة (اقرأ: "بحث واستبدال") لمشروع rbenv. إنه بحاجة إلى الحب والدعم. إذا كنت مهتمًا بتحسينه، فلا تتردد في إجراء شوكة وإرسال طلبات السحب وتسجيل الأخطاء في أداة تعقب المشكلات.
(رخصة معهد ماساتشوستس للتكنولوجيا)
حقوق الطبع والنشر (ج) 2012 دومينيك جيجليو
حقوق الطبع والنشر (ج) 2013 لنيك لومبارد
حقوق الطبع والنشر (ج) 2015 مادوملاو
يُمنح الإذن مجانًا لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج")، للتعامل في البرنامج دون قيود، بما في ذلك، على سبيل المثال لا الحصر، حقوق الاستخدام والنسخ والتعديل والدمج. ونشر و/أو توزيع وترخيص من الباطن و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم توفير البرنامج لهم بالقيام بذلك، وفقًا للشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريحًا أو ضمنيًا، بما في ذلك، على سبيل المثال لا الحصر، ضمانات القابلية للتسويق والملاءمة لغرض معين وعدم الانتهاك. لا يتحمل المؤلفون أو أصحاب حقوق الطبع والنشر بأي حال من الأحوال المسؤولية عن أي مطالبة أو أضرار أو مسؤولية أخرى، سواء في إجراء العقد أو الضرر أو غير ذلك، الناشئة عن أو خارج أو فيما يتعلق بالبرنامج أو الاستخدام أو المعاملات الأخرى في برمجة.