سؤال

هل من الممكن الحصول على إصدارات متعددة من PHP قيد التشغيل في المربع نفسه (مثل القضبان). فيما يلي مشكلتي، أحتاج إلى بدء التطوير في مشروع جديد وكان تخطط لاستخدام PHP 5.3 لذلك حتى أتمكن من استخدام أحدث إطار Zend وسجل نشط معه.
ومع ذلك، فإن الجهاز حيث أحتاج إلى استضافة طلبي لديه PHP 4.4 وهناك العديد من التطبيقات الأخرى المستضافة هناك. لا أريد ترقية إصدار PHP على الخادم كما في الماضي، لقد واجهت الكثير من المشكلات أثناء ترقيته إصدار PHP ووظائف المهتورة.
كنت أتساءل عما إذا كان من الممكن الحصول على نسخة متعددة من PHP في نفس المربع، ثم حددت بطريقة أو بأخرى الإصدار الذي تريد تحميل طلبك (مماثل للقضبان)

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

المحلول

نعم هذا ممكن. في الواقع، تعمل العديد من الخوادم بهذه الطريقة. قد ترى ملحقات .php4 و .php5 من وقت لآخر تشير إلى الإصدار الذي يجب معالجه بهذا البرنامج النصي معه.

ServerFault تناول هذا السؤال

تشغيل PHP4 و PHP5 جنبا إلى جنب مع بعضها البعض

نصائح أخرى

يمكنك تشغيل إصدارات PHP متعددة في نفس المربع باستخدام Docker.

سيكون الأمر مثال:

sudo docker run -d -p 8055:80 -v /var/www:/var/www \
  -v /etc/apache2/sites-available:/etc/apache2/sites-available \
  -v /etc/apache2/sites-enabled:/etc/apache2/sites-enabled \
  codeyourdream/apache-sendmail-php55

إليك ما يفعله الأمر:

  • يؤيد المحلية الخاصة بك /var/www, /etc/apache2/sites-available و /etc/apache2/sites-enabled إلى المجلدات المقابلة لحاوية Docker. إذا كانت مواقع الويب المحلية و / أو تكوينات Apache موجودة في مجلدات مختلفة، فاستبدل الجزء الأول من -v القيمة. أي التنسيق هو: docker run -v /host/directory:/container/directory -other -options image_name command_to_run
  • يؤيد المنفذ 8055 من جهازك المحلي إلى منفذ 80 من حاوية Docker
  • يتم تشغيل الحاوية من صورة "codeyourdream / apache-sendmail-php55"

إذا قمت بتشغيل هذا الأمر، يجب أن تكون جميع مواقع الويب المحلية متاحة عبر المنفذ 8055 (أي عناوين URL http: // localsite: 8055) ومعالجتها بواسطة PHP 5.5

يرى https://codeyourdream.com/blog/how-run-multiple-php-versions-apache-one-linux-machine-using-docker. لمزيد من التفاصيل. ملاحظة الانتماء: هذا هو بلوق فريقي.

تستخدم إمكانية إصدار واحد من PHP كوحدة Apache، والإصدار الآخر ك CGI؛ ولكن فكرة أنا أحب أفضل هو الحصول على:

  • عدة حالات مميزة من أباتشي،
  • كل واحد يستمع على منفذ مختلف (على سبيل المثال، PHP 4.4 على المنفذ 44000 و PHP 5.3.1 على المنفذ 53100)
  • وكل واحد باستخدام نسخة مختلفة من PHP

بهذه الطريقة، لديك بيئات مختلفة تماما، تعمل بشكل مستقل من بعضها البعض، ويمكنك تكوين / تعديل أي شيء تريده في كل بيئة دون المخاطرة بتكسر أي من الآخرين.

(وإذا كنت لا ترغب في الحصول على أرقام المنفذ في عناوين URL الخاصة بك، ففترض أنه يمكنك وضع وكيل أمام مثيلات Apache المميزة، لذلك يبدو أنه يوجد واحد فقط)

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