কীভাবে পিএইচপি-র দুটি সংস্করণ ইনস্টল করা যায় এবং তাদের মধ্যে সহজেই স্যুইচ করা যায়?


76

আমি আমার উবুন্টু মেশিনে পিএইচপি 5.2.17 এবং পিএইচপি 5.3.5 উভয়ই ইনস্টল করতে এবং আমার প্রয়োজনীয়তা অনুসারে স্যুইচ করতে চাই। আমি কীভাবে এটি অর্জন করতে পারি?


উবুন্টুতে / etc / apache2 এ apache.conf আছে, আমি এটি সম্পর্কেও ভেবেছিলাম, ভবিষ্যতে আমি কিছু প্যাকেজ তৈরি করব এটি ওয়েব বিকাশকারীদের জন্য খুব দরকারী

আপনি এসএইচপিপি দিয়ে এটি করতে পারেন, বিশদ সম্পর্কে নিশ্চিত হন না
মার্কো সেপ্পি

1
পিএইচপি-র পরিষ্কার বিচ্ছিন্ন মোতায়েনের জন্য পাইথন ভ্যুচুয়ালেনভের মতো কিছু আছে কি?
লেনজাই

আপনি কি মাথা বিহীন ফ্যাশনে ব্যবহার করেন ভার্চুয়ালাইজেশন সফ্টওয়্যার ব্যবহার করে ভার্চুয়াল উবুন্টু সার্ভার স্থাপনের কথা বিবেচনা করেছেন? আপনি যা করতে চাইছেন তা যদি এমন কোনও সেট আপের দ্বারা ভালভাবে পরিবেশন করা হয় (কোনও শ্লেষের উদ্দেশ্য নয়) তবে আমি অবাক হব।
সাইমন হোয়ারে

1
"সহজেই স্যুইচ করুন" এর অর্থ কী তা নির্ধারণ করুন। আমি এটি কাজের জন্য ব্যবহার করেছি: আমার ওয়েবসার্ভার .phpএবং .php5ফাইলগুলির জন্য পৃথক পিএইচপি ব্যবহার করছিলাম । বিভিন্ন পোর্ট (যেমন http://localhost:80এবং http://localhost:8080) বা বিভিন্ন ডোমেন (যেমন http://localphp52এবং http://localphp53) এর জন্য আলাদা আলাদা পিএইচপি সংস্করণ ব্যবহার করার জন্য আপনি আপনার ডাব্লুডাব্লুডু সার্ভারকে কনফিগার করতে পারেন বা ফোল্ডারগুলির বাকী সমস্ত কাঠামো অক্ষত রেখে রেখেছেন যাতে আপনি বর্তমানের পরিবর্তনের মাধ্যমে দুটি পরিবেশে একটি ওয়েব অ্যাপ্লিকেশন চলমানকে সহজেই তুলনা করতে পারেন URL টি।
সিআরপিএন

উত্তর:


61

এটি অর্জনের জন্য আপনি পিএইচপি সংস্করণ পরিচালক ব্যবহার করতে পারেন। বিভিন্ন সংস্করণ পরিচালক যেমন উপলব্ধ:

আমার প্রিয় phpbrew হয়। আশাকরি এটা সাহায্য করবে.


2
ধন্যবাদ, আপনি দয়া করে নির্দেশাবলী অন্তর্ভুক্ত করতে পারেন? (? Onnu vishadheekarikkamo)
Tachyons

17
যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
Nanne

2
তাদের সাইটগুলিতে লিঙ্কগুলি সত্যই ভাল ডকুমেন্টেশন রয়েছে তা পরীক্ষা করুন। আপনি কি সত্যিই চান যে আমি তাদের ওয়েবসাইট থেকে জিনিসগুলি অনুলিপি করবো ?.
aneeshep

7
হাস্যকরভাবে, কেবল লিঙ্কগুলি পোস্ট না করার অন্যতম কারণ হ'ল লিংকরোট, যা থেকে এই পোস্টটি এখন ভুগছে।
মিররফেট

@ আনিশেপ, তাদের ডকুমেন্টেশন কপি-পেস্ট করুন না, তবে "পিএইচপি সংস্করণ পরিচালক" কী এবং সেই নির্দিষ্ট সমস্যার জন্য কীভাবে এটি ব্যবহার / কনফিগার করবেন সে সম্পর্কে প্রবন্ধগুলি এবং কয়েকটি লাইন সত্যই স্বাগত হবে।
ম্যাথিউউ

20

আপনি একবারে 2 টি পৃথক পিএইচপি সংস্করণ চালাতে পারেন তবে এগুলি ঠিকঠাকভাবে গ্রহণ করার মতো সহজ নয়। আপনার একটি পৃথকভাবে ইনস্টল করা সংস্করণ চালানো দরকার এবং আপনার অ্যাপাচি কনফিগারেশনের সেটিংস অনুযায়ী এটি পরিবেশন করা উচিত।

আপনি এটি ফাস্টসিগি ব্যবহার করে করতে পারেন উদাহরণস্বরূপ: মূলত আপনি যা খুঁজছেন তা হ'ল এই পৃষ্ঠায় আপনি যে কনফিগারটি দেখছেন তা । আপনার কনফিগারেশনে আপনার প্রয়োজন পরিস্থিতি / পোর্ট / ডোমেনের ভিত্তিতে একটি আলাদা হ্যান্ডলার যুক্ত করুন add কৌশলটি, উভয় সংস্করণ ইনস্টল করার পরে, এই পদক্ষেপ:

=== পৃষ্ঠা থেকে ==

  1. শেষ পদক্ষেপটি ছিল ভার্চুয়াল হোস্টগুলি তৈরি করা। শেষের দিকে আমার কাছে / etc / apache2 / সাইট-এ সক্ষম তিনটি ফাইল রয়েছে: 000- ডিফল্ট, php5.3.17 এবং php5.4.7 নিম্নলিখিত বিষয়বস্তু সহ

ডিফল্ট:

    <VirtualHost *:80>
      ServerName localhost
      DocumentRoot /var/www
      <Directory "/var/www">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        AddHandler php-cgi .php
        Action php-cgi /php-fcgi/php5317.fcgi
      </Directory>
    </VirtualHost>

php5.3.17:

    <VirtualHost *:80>
      ServerName 5317.localhost
      DocumentRoot /var/www
      <Directory "/var/www">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        AddHandler php-cgi .php
        Action php-cgi /php-fcgi/php5317.fcgi
      </Directory>
    </VirtualHost>

php5.4.7:

    <VirtualHost *:80>
      ServerName 547.localhost
      DocumentRoot /var/www
      <Directory "/var/www">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
        AddHandler php-cgi .php
        Action php-cgi /php-fcgi/php547.fcgi
      </Directory>
    </VirtualHost>

সম্পূর্ণ ইনস্টলেশনটির জন্য লিঙ্কিত প্রশ্নটি দেখুন । হেডারের দুটি লিঙ্কটিও দেখতে ভুলবেন না, এগুলি দেখতে সুন্দর টিউটোরিয়ালের মতো (তবে কম সংকোচিত)। এই এবং যে

(এই লিখিত প্রশ্নটি কোনও গ্রহণযোগ্য উত্তর না দিয়ে একটি বড় প্রশ্নটি করা উচিত নয় The পদ্ধতিটি ভালভাবে কাজ করা উচিত (এবং করা উচিত) তবে ব্যবহারকারী ব্যবহার করতে ভুলে গিয়ে শর্টট্যাগগুলি <?phpব্যবহার <?করে মন্তব্যগুলি দেখুন)


13

আমি পিএইচপি 5.6 এবং 7.0 ইনস্টল করেছি তবে সমস্ত টিপস ছাড়াও এটি 5.6 চালিয়ে যায়, তাই এই কমান্ডটি দিনটি বাঁচায় (আমার ক্ষেত্রে আমি পছন্দ করি বিকল্প 1 এবং অ্যাপাচি পুনরায় চালু করুন):

sudo update-alternatives --config php

এটি ব্যবহারের কথা মনে রাখা phpinfo()এবং php -vক্রসচেক করার জন্য দরকারী যেহেতু উভয়েরই আলাদা আলাদা মান থাকতে পারে।
আদি প্রসূতিও

6

এটি আমার জন্য কাজ করে: https://lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu

"গ্রলিং ফ্লিয়া" থেকে স্ক্রিপ্ট হিসাবে একই, তবে নতুন সংস্করণ ব্যবহার করা হচ্ছে।

পিপিএ যুক্ত করুন

পিএইচপি 5.6 এবং পিএইচপি 7.0 প্যাকেজগুলি তৃতীয় পক্ষের পিপিএ থেকে আসে, ক্যানোনিকাল থেকে সরকারী উবুন্টু সংগ্রহস্থল সরবরাহ করে না। আমি এখানে যে পিপিএগুলির প্রস্তাব দিচ্ছি তারা হলেন ওন্দিজ সুের, যারা ডিবানির জন্য পিএইচপি প্যাকেজ করেন (যা উবুন্টু তখন ব্যবহার করেন) সুতরাং এটি কোনও সরকারী ভান্ডার নয়, তিনি ঠিক এলোমেলো নয়! পিপিএ নিজেই এখানে

আপনার সেটআপে পিপিএ যুক্ত করতে:

sudo add-apt-repository ppa:ondrej/php  

তারপরে আমরা এই নতুন পিপিএ থেকে কী অফার হচ্ছে সে সম্পর্কিত তথ্যও ধরতে চাই, তারপরে চালান:

sudo apt-get update   

নতুন পিএইচপি সংস্করণ ইনস্টল করুন

আমি ইতিমধ্যে কিছু পিএইচপি 5 প্যাকেজ ইনস্টল করেছি, তবে আমি কোনও আনইনস্টল করিনি, আমি নতুন সংস্করণগুলি ইনস্টল করার জন্য যখন জিজ্ঞাসা করেছি তখন এটি কী করতে চায় তা কেবল কাজ করতে দিয়েছিলাম:

sudo apt-get install php5.6 php7.0

এটি ফলস্বরূপ প্রচুর অভিযোগ এবং প্রচুর দ্বন্দ্ব থেকে অভিযোগ করেছে। প্রথম প্রস্তাবিত রেজোলিউশনটি হ'ল সমস্ত স্টক পিএইচপি 5 প্যাকেজগুলি সরিয়ে ফেলতে হবে যাতে পিএইচপি 5.6 ইনস্টল করা যায় - তাই আমি কেবল প্রথম পরামর্শটি গ্রহণ করেছি।

আমি অ্যাপাচি ব্যবহার করি সুতরাং এই সেটআপটি আমাকে php5.6 এবং php7.0 মডিউল উপলব্ধ উভয়ই এবং অ্যাচএইচপি 5.6 মডিউলটি আসলে লোড করে দিয়েছিল ap

পাশাপাশি কেবল পিএইচপি নিজেই, পিএইচপি এর সাথে আপনি যে সমস্ত এক্সটেনশান এবং অন্যান্য সরঞ্জামগুলি আশা করেছিলেন তা পিএইচপি উভয় সংস্করণের জন্য রয়েছে তাই আপনার প্রয়োজনীয় মডিউলগুলিতে এটি যুক্ত করা খুব সহজ। আমি খুব, খুব মুগ্ধ হয়েছিলাম যে এটি কত সুন্দরভাবে করা হয়েছে।

সংস্করণগুলি কনফিগার এবং স্যুইচিং

আপনার সিস্টেমে এখন আপনার পিএইচপি দুটি সম্পূর্ণ পৃথক সংস্করণ ইনস্টল করা আছে, সুতরাং আসুন দেখে নেওয়া যাক সমস্ত টুকরো কোথায় গেছে!

কনফিগারেশন ফাইলগুলি যথাক্রমে /etc/php/5.6এবং /etc/php/7.0যথাক্রমে - এর ভিতরে এখানে আপনি যেখানে কোনও এক্সটেনশনগুলি লোড করা হয় তা কনফিগার করতে পারেন, ইনআই সেটিংস সেট করতে পারেন এবং প্রতিটি সংস্করণের বিচ্ছিন্নতার জন্য সমস্ত কিছু নির্ধারণ করতে পারেন।

আমি অ্যাপাচি ব্যবহারকারী, এবং আমি যেমন উল্লেখ করেছি উভয় মডিউল উপলব্ধ। সুতরাং এক থেকে অন্যটিতে যেতে আমাকে করতে হবে:

sudo a2dismod php5.6
sudo a2enmod php7.0
sudo service apache2 restart

এনগিনেক্স ব্যবহারকারীদের জন্য পরিবর্তনগুলি প্রায় সহজ, ডিজিটাল মহাসাগরের এ সম্পর্কে ভাল ডকুমেন্টেশন রয়েছে (তাদের দুর্দান্ত ডক্স রয়েছে!) সুতরাং তাদের গাইড দেখুন: https://www.digitalocean.com/commune/tutorials/how-to- এটি আপগ্রেড-টু-পিএইচপি-7-অন-উবুন্টু-14-04 হিসাবে এটি পিএইচপি-র অন্য সংস্করণ ব্যবহার করার জন্য এনজিনেক্স পুনর্নির্মাণের একটি বিভাগ অন্তর্ভুক্ত করে।

কমান্ড-লাইন থেকে, আমার কাছে php5.6 এবং php7.0 উভয়ই কমান্ড হিসাবে উপলব্ধ। আমার কাছে এখনও একটি পিএইচপি কমান্ড রয়েছে - / ইত্যাদি / বিকল্পগুলি দেখুন এটি পিএইচপি ক্লায়ার * এর কোনও নির্দিষ্ট সংস্করণে প্রতিযোগিত করে তা দেখতে। এছাড়াও আপনি দ্রুত পরীক্ষা করতে পারবেন যা পুলিশের চলমান দ্বারা ব্যবহার করা হয় php -v

* আরও সুনির্দিষ্টভাবে, পিএইচপি-র কোন সংস্করণ ব্যবহৃত হচ্ছে তা দেখার জন্য কোন পিএইচপি চালান - তবে এটি সম্ভবত নির্দেশ করবে /usr/bin/php, যা আমার পক্ষে নিজেই /etc/alternatives/phpকমান্ডের একটি সিমিলিংক ।

এক্সটেনশন নিয়ে কাজ করা

এই পিপিএটি স্বাভাবিক পিএইচপি-পিয়ার প্যাকেজ সহ আসে যা পিএইচপি উভয় সংস্করণের জন্য পেকল কমান্ড সরবরাহ করে, তাই পিইসিএল এর মাধ্যমে উপলব্ধ যে কোনও এক্সটেনশনগুলি সাধারণ উপায়ে ইনস্টল করা যায়। আপনার প্রাসঙ্গিক হেডারগুলিরও প্রয়োজন হবে যাতে php5.6-dev বা php7.0-dev ইনস্টল করা উচিত।

যখন পিসিএল ইনস্টলেশনটি সম্পূর্ণ হয়, আপনি আপনার php.ini এ * .so ফাইল যুক্ত করার জন্য একটি নোট পাবেন; প্রকৃতপক্ষে এখানে করণীয় সর্বোত্তম জিনিস হ'ল কী রয়েছে তা /etc/php/mods-available। ইতিমধ্যে এখানে কিছু মডিউল থাকবে, প্রতিটি নিজস্ব ফাইলটিতে এক্সটেনশানটির নামে এবং .ini এ শেষ হবে। আপনি একটি টেম্পলেট হিসাবে ব্যবহার করতে বা নিজের তৈরি করতে এবং এটিতে এক্সটেনশনের জন্য সমস্ত প্রাসঙ্গিক কনফিগারেশন রাখতে পারেন (সর্বনিম্ন হিসাবে আপনার প্রয়োজন extension=[extensionName].so) করতে পারেন copy

নতুন এক্সটেনশানটি একবার মোডগুলিতে পাওয়া গেলে সক্ষম করুন এবং তারপরে এটি পরীক্ষা করে দেখুন:

sudo phpenmod extension  
php -m  

এটি এই বর্তমান মডিউলটি লোড করার জন্য আপনার পিএইচপি-র বর্তমান সংস্করণটির জন্য সঠিক জায়গায় প্রতিলিঙ্ক তৈরি করবে এবং আপনার দ্বারা এটি মডিউল আউটপুটের তালিকায় দেখতে হবে php -m। প্রো টিপ: যদি আপনি এটি আউটপুটে না দেখেন তবে আউটপুটটির শীর্ষে সমস্ত দিকটি স্ক্রোল করুন এবং সেখানে কোনও কার্যকর ত্রুটির বার্তা আছে কিনা তা দেখুন।


3

এই পোস্টটি থেকে , আমি কেবল আদেশগুলি সাজিয়ে রেখেছি এবং পরিবেশন করার সাথে সাথে যথাযথভাবে ব্যাখ্যা করছি (উবুন্টু 12.04)

এই পদ্ধতিটি আপনাকে দেয়:

  1. মেনু সহ স্ক্রিপ্ট, পিএইচপি সংস্করণ ইনস্টল করা (অনুমতি একই সাথে উভয়ই নয়)

  2. আপনার সার্ভারে ইনস্টল করা বিভিন্ন পিএইচপি সংস্করণ

  3. বিভক্ত কনফ ফাইল

আপনার প্রয়োজনীয় সমস্ত সংস্করণ ইনস্টল করুন (আমার দুটি আছে)

নির্ভরতা ইনস্টল করুন:

sudo apt-get install flex apache2-threaded-dev libxml2-dev apache2 apache2-mpm-prefork apache2-threaded-dev apache2-utils apache2.2-bin apache2.2-common

পিএইচপি 5.3 প্রথম বার ইনস্টল করুন। পিএইচপি উত্স ডাউনলোড করুন

md5sum Downloads/php-5.3.10.tar.bz2
mkdir ~/Sources
cd ~Sources/
cp -Rf ../Downloads/php-5.3.10.tar.bz2 .
tar xjf php-5.3.10.tar.bz2
cd php-5.3.10/
sudo mkdir /usr/local/php/php_5.3.10

PHP5.6 প্রথমবার ইনস্টল করুন। পিএইচপি উত্স ডাউনলোড করুন

md5sum Downloads/php-5.6.11.tar.bz2
mkdir ~/Sources
cd ~Sources/
cp -Rf ../Downloads/php-5.6.11.tar.bz2 .
tar xjf php-5.6.11.tar.bz2
cd php-5.6.11/
sudo mkdir /usr/local/php/php-5.6.11

স্ক্রিপ্ট ম্যানেজার সংস্করণ পিএইচপি: কল করা একটি ফাইল তৈরি করুন php.shএবং এতে রেখে দিন /bin/:

#!/bin/bash
opcion=0
cat << CABECERAMENU
Opciones del menu
1 => PHP 5.3.10
2 => PHP 5.6.11
CABECERAMENU
echo -n "Ingrese su eleccion: "
read opcion
echo
case $opcion in
    "1")
        rm /etc/apache2/php.conf
        ln -s /usr/local/php/php_5.3.10.conf /etc/apache2/php.conf
        /etc/init.d/apache2 restart
    ;;
    "2")
        rm /etc/apache2/php.conf
        ln -s /usr/local/php/php_5.6.11.conf /etc/apache2/php.conf
        /etc/init.d/apache2 restart
    ;;
    *)
        echo "Opcion no valida"
    ;;
esac

পিএইচপি 5.3 সংকলন এবং ইনস্টল করুন:

cd ~/Sources/php-5.3.10/
sudo ./configure --prefix=/usr/local/php/php_5.3.10 --with-config-file-path=/usr/local/php/php_5.3.10/lib --with-mysql --with-libdir=/lib/x86_64-linux-gnu --with-apxs2=/usr/bin/apxs2 --enable-zip --with-gd --with-curl --with-xmlrpc --with-freetype-dir=/usr/lib/x86_64-linux-gnu  --with-jpeg-dir=/usr/lib/x86_64-linux-gnu --with-pdo-mysql --with-pdo-pgsql --enable-soap
sudo make clean
sudo make
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/lib/apache2/modules/libphp5.*
sudo make install
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/local/php/php-5.3.10/modules/libphp5.so
sudo mv /usr/lib/apache2/modules/libphp5.so /usr/local/php/php_5.3.10/modules/
ls -lhart /usr/local/php/php_5.3.10/modules/
sudo a2dismod php5
sudo service apache2 restart

পিএইচপি 5.6 সংকলন এবং ইনস্টল করুন

cd ~/Sources/php-5.6.11
sudo ./configure --prefix=/usr/local/php/php_5.6.11 --with-config-file-path=/usr/local/php/php_5.6.11/lib --with-mysql --with-libdir=/lib/x86_64-linux-gnu --with-apxs2=/usr/bin/apxs2 --enable-zip --with-gd --with-curl --with-xmlrpc --enable-calendar --enable-sockets --with-freetype-dir=/usr/lib/x86_64-linux-gnu  --with-jpeg-dir=/usr/lib/x86_64-linux-gnu --with-pdo-mysql  --with-pdo-pgsql --enable-soap
sudo make clean
sudo make
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/lib/apache2/modules/libphp5.*
sudo make install
sudo ls -lhart /usr/lib/apache2/modules/libphp5.*
sudo rm -rf /usr/local/php/php_5.6.11/modules/libphp5.so
sudo mv /usr/lib/apache2/modules/libphp5.so /usr/local/php/php_5.6.11/modules
ls -lhart /usr/local/php/php_5.6.11/modules
sudo a2dismod php5
sudo service apache2 restart

আসুন সেগুলি ব্যবহার করুন:

$ sudo php.sh
Opciones del menu
1 => PHP 5.3.10
2 => PHP 5.6.11
Ingrese su eleccion: 1

 * Restarting web server apache2                                                                                                                                                                                                                                        apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

2

সমস্যা:

  1. একক অ্যাপাচি উদাহরণ দুটি পৃথক পিএইচপি সংস্করণ একসাথে চালাতে পারে না (কমপক্ষে যতদূর আমি এটি জানি)।

  2. প্যাকেজগুলি থেকে দুটি পৃথক পিএইচপি সংস্করণ ইনস্টল করা যাবে না কারণ এগুলির বিরোধ হবে (এবং একই ডিরেক্টরিগুলি ওভাররাইট করার চেষ্টা করুন)।

সমাধান:

  • খ) উত্স থেকে ম্যানুয়ালি (অন্যটি) পিএইচপি সংস্করণটি সংকলন করুন (বা আপনি যদি পছন্দ করেন তবে উপযুক্ত প্যাকেজের উত্সটি গ্রহণ করুন এবং বিরোধগুলি এড়াতে এবং ইনস্টল করার পথগুলিকে সংশোধন করতে) এটি সংশোধন করুন)

  • এর জন্য) বিভিন্ন মডিউল পাথ এবং পৃথক স্টার্টআপ স্ক্রিপ্ট সহ অ্যাপাচে আলাদা আলাদা কনফিগার সেট তৈরি করুন। এবং অবশ্যই এটি পৃথক বন্দরে চালান।


এই একাধিক সমান্তরাল পিএইচপি উদাহরণ সংকলন করার জন্য কোনও প্রাক-প্যাকেজ লিপি নেই? এটি কেবল ম্যানুয়ালি করতে এবং পাথগুলি প্যাচ করতে হবে? সুতরাং এর অর্থ এই যে সমস্ত হোস্টিং সংস্থাগুলি এই সমান্তরাল সংস্করণটি চালানোর জন্য সেখানে কাস্টম স্ক্রিপ্টগুলি বিকাশ করে এবং তাদের প্রচেষ্টাটি ভাগ করে না।
লেনজাই

4
একটি একা অ্যাপাচি উদাহরণ একবারে 2 পিএইচপি সংস্করণ চালাতে পারে
Nanne

1

একাধিক করার পরিবর্তে VirtualHostআমি আমার .htaccessফাইলে নীচের কোডটি যুক্ত করেছি এবং আশ্চর্যরকমভাবে এটি কাজ করেছে,

<FilesMatch \.php$>
    SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
</FilesMatch>

নোড: php7.2-fpmকোডটি ব্যবহারের আগে আমি ইতিমধ্যে ইনস্টল করেছি ।


0

আপনি যদি একই সময়ে চালনা করতে চান তবে আপনার দুটি পৃথক বন্দর দরকার need সম্ভবত আপনি কেবল একটি সহজ স্ক্রিপ্ট দিয়ে আপনার অ্যাপাচি কনফিগারেশন (httpd.conf) পরিবর্তন করতে পারেন যা অ্যাপাচি শুরু করার আগে এক বা অন্য সংস্করণটিকে সঠিক অবস্থানে নিয়ে যায়।


1
আমি ইতিমধ্যে পিএইচপি 5.3.5 ইনস্টল করা আছে। আমি কীভাবে পিএইচপি 5.2.17 ইনস্টল করতে পারি? আপনি দয়া করে আমাকে বলতে পারেন যে এই দুটি সংস্করণের মধ্যে স্যুইচ করতে আমাকে কোথায় এবং কী পরিবর্তন করতে হবে? আমার ইনস্টলেশনটিতে httpd.conf ফাইলটি খালি।
দেবিপ্রসাদ

0

আপনি প্রতিটি ওয়েবসাইট ডাইফেরেন্টস ব্যবহারকারীদের সাথে চালাতে পারেন। অধিক নিরাপদ.

এই অ্যাপ্রোচ আমি একবার ব্যবহার করেছি।

http://blog.servergrove.com/2011/08/22/how-to-setup-multiple-php-versions-on-apache/

এখন আমি মনে করি পিএইচপি-এফপিএম ব্যবহার করা আরও ভাল ... তবে একাধিক পিএইচপি সংস্করণ কনফিগার করতে এটি আরও জটিল।

একে অপরকে ব্যবহারের জন্য বহুগুণ পিএইচপি-এফপিএমএস চালাতে হবে এবং অ্যাপাচি সেট করতে হবে।


3
উবুন্টুকে জিজ্ঞাসা করুন স্বাগতম! যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
ব্যবহারকারী 98085

আপনারা যেমন বলেছিলেন তেমন করার মতো সময় আমার হাতে নেই। আমার ধারণা, আমি কেবল একটি উপায় দেখাতে চেয়েছিলাম স্টিলকে কীভাবে ফর্মিং স্টাফ ব্যবহার করতে হয় তা শিখতে হবে। যাই হোক ধন্যবাদ!
হেনরিক ফার্নান্দেস

0

আমি একটি বাশ স্ক্রিপ্ট লিখেছিলাম যা আমাকে সহজেই আমার বাক্সে ইনস্টল করা পিএইচপি সংস্করণগুলির মধ্যে স্যুইচ করতে দেয়। আমি বেশ কয়েকটি ভার্চুয়াল হোস্ট চালাচ্ছি কারণ গ্রাহকদের সাথে আমার পুরানো এবং নতুন প্রোগ্রাম রয়েছে এমন বেশ কয়েকটি ওয়েব প্রকল্প রয়েছে। এর মধ্যে কয়েকটি প্রকল্পের পিএইচপি এর পুরানো সংস্করণ প্রয়োজন এবং অন্যান্য প্রকল্পগুলির জন্য পিএইচপি 7.0 প্রয়োজন।

আমার মন্তব্যগুলি পড়ুন এবং নিশ্চিত হয়ে নিন যে এটি ব্যবহারের আগে কী চলছে understand

#!/bin/bash
# This file is for switching php versions.  
# To run this file you must use bash, not sh
# 
# OS: Ubuntu 14.04 but should work on any linux
# Example: bash phpswitch.sh 7.0
# Written by Daniel Pflieger
# growlingflea at g mail dot com

NEWVERSION=$1  #this is the git directory target

#get the active php enabled mod by getting the array of files and store
#it to a variable
VAR=$(ls /etc/apache2/mods-enabled/php*)

#parse the returned variables and get the version of php that is active.
IFS=' ' read -r -a array <<< "$VAR"
array[0]=${array[0]#*php}
array[0]=${array[0]%.conf}


#confirm that the newversion veriable isn't empty.. if it is tell user 
#current version and exit
if [ "$NEWVERSION" = "" ]; then
echo current version is ${array[0]}.  To change version please use argument
exit 1
fi 

OLDVERSION=${array[0]}
#confirm to the user this is what they want to do
echo "Update php"  ${OLDVERSION} to ${NEWVERSION}


#give the user the opportunity to use CTRL-C to exit ot just hit return
read x

#call a2dismod function: this deactivate the current php version
sudo a2dismod php${OLDVERSION}

#call the a2enmod version.  This enables the new mode
sudo a2enmod php${NEWVERSION} 

echo "Restart service??"
read x

#restart apache
sudo service apache2 restart

0

আমি একাধিক প্রকল্প পরিচালনা করার সময় আমার একই সমস্যা ছিল। আমি এই নিবন্ধটি উল্লেখ করেছি তবে এটি প্রতিবারের মতো ছিল যখন প্রয়োজন অনুসারে সংস্করণগুলি স্যুইচ করা দরকার তবে এটি ক্লাইম এবং ওয়েবকে আলাদাভাবে নমনীয়তা দেয়।

পিএইচপি 5.6 থেকে পিএইচপি 7.0 এ চলেছে

অ্যাপাচি-র জন্য আমরা কমান্ডটি ব্যবহার করতে পারি:

sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart

সি এল এলির জন্য আমরা কমান্ডটি ব্যবহার করতে পারি:

sudo update-alternatives --set php /usr/bin/php7.0

পিএইচপি 7.0 থেকে পিএইচপি 5.6 এ সরানো হচ্ছে

অ্যাপাচি-র জন্য আমরা কমান্ডটি ব্যবহার করতে পারি:

sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart

সি এল এলির জন্য আমরা কমান্ডটি ব্যবহার করতে পারি:

sudo update-alternatives --set php /usr/bin/php5.6

যদিও এই লিঙ্কটি প্রশ্নের উত্তর দিতে পারে, উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্কটি সরবরাহ করা ভাল। লিঙ্কযুক্ত পৃষ্ঠাগুলি পরিবর্তিত হলে লিঙ্ক-শুধুমাত্র উত্তরগুলি অবৈধ হতে পারে। - পর্যালোচনা থেকে
ওয়ালটিনেটর

@ ওয়ালটিনেটর পর্যালোচনার জন্য ধন্যবাদ, নিশ্চিত এটি যত্ন নেবে
শিবধ্বজ পান্ডে

0

এটি পিএইচপি- এর নতুন সংস্করণটি অক্ষম ও সক্ষম করে করা যেতে পারে-

  • পুরানো সংস্করণে স্যুইচ করুন -
    a2dismod php7.0
    পরিষেবা অ্যাপাচি 2 পুনঃসূচনা
  • নতুন সংস্করণ
    a2enmod php7.0
    পরিষেবা অ্যাপাচি 2 পুনঃসূচনাতে স্যুইচ করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.