এনজিনেক্স সহ উবুন্টুতে পিএইচপি 5 এর পাশে চালানোর জন্য পিএইচপি 7 ইনস্টল করবেন কীভাবে


9

আমি পিএইচপি 7 চেষ্টা করতে চাই এবং আমার সাইটটি পিএইচপি 7 এ একই সময়ে অন্যান্য সাইটগুলিকে পিএইচপি 5 এ কাজ করে রাখার ক্ষেত্রে কাজ করতে চাই। যাতে ডোমেন ভার্চুয়াল হোস্ট কনফিগার থেকে আমি সিদ্ধান্ত নিতে পারি যে কোন পিএইচপি চালানো উচিত।

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

উত্তর:


11

প্রথমত, আপনাকে সহ-ইনস্টলযোগ্য পিএইচপি 5 এবং পিএইচপি 7.0 এর জন্য ওনডেজ সুরের পিপিএ ইনস্টল করতে হবে php5-fpmএবং php7.0-fpmথেকে নিতে হবে। :

sudo apt-get install python-software-properties
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php

তারপরে আমরা nginxএফপিএম প্যাকেজগুলি ব্যবহার করার পরামর্শ দিই । সুতরাং, সেই অনুযায়ী প্যাকেজগুলি ইনস্টল করুন:

sudo apt-get update

# We need to ***remove*** php5 packages, so we can use php5.6 packages
# from the PPA instead
sudo apt-get remove php5-common
sudo apt-get autoremove

# Now we install php5.6 packages.
sudo apt-get install php5.6-fpm

# Now, install php7.0-fpm.  You may need to install separate PHP plugins
# for databases, extensions, etc. later.
sudo apt-get install php7.0-fpm

উত্স: "পিএইচপি 7 কীভাবে ইনস্টল করবেন?" এর একটি উত্তর প্রশ্ন , এবং কাস্টম মন্তব্য এবং নিজের থেকে পরিবর্তন।


দ্বিতীয়ত nginx,। nginxআপনার কনফিগারেশনের মতোই দুর্দান্ত হতে সক্ষম। আপনার খুব সম্ভবত আপনার এনগিনেক্স সার্ভার ব্লকে ('ডিফল্ট' উদাহরণ কনফিগারেশন থেকে) এর মতো একটি পিএইচপি হ্যান্ডলিং ব্লক রয়েছে:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
}

এই কনফিগারেশনটি কেবল পাস হবে php5-fpm। কার্যকরভাবে, এটি আপনার পুরো সার্ভার ব্লকের জন্য প্রযোজ্য। এটির সর্বাধিক সহজ উপায় হ'ল দ্বিতীয় সার্ভার ব্লক (যেমন, বলুন test.domain.tld), এবং এর পরিবর্তে পিএইচপি 7.0 fastcgi_passগন্তব্য সরবরাহ করা। জেনিয়ালে পিএইচপি .0.০-তে, এই জাতীয় কিছু শেষ হতে চলেছে (সম্প্রতি জেনিয়াল এনজিনেক্স প্যাকেজে আপলোড করা একটি ফিক্স থেকে বের করা), তবে আমি ওঁদ্রেজের প্যাকেজের লেআউটটি জানি না তাই আমি সেখানে যথাযথ বিবরণ দিতে পারি না (চেক /etc/php7.0/fpm/pool.d/www.confবা এটি কোথায় শুনছে তা নির্ধারণ করার মতো):

location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php7.0-fpm:
    fastcgi_pass unix:/var/run/php7.0-fpm.sock;
}

অন্তর্নির্মিত সকেটের পরিবর্তে সকেটগুলি ব্যবহার করা হয় php5যা যাচাই করতে (যা আমরা সরিয়েছি) যাচাই করতে আপনাকে আপনার ব্লকের জন্য অনুরূপ কিছু করতে হবে ।php5.6php5

তারপরে, পরীক্ষা চালানোর জন্য দ্বিতীয় পরীক্ষার ডোমেন ব্যবহার করুন php7.0। আপনি যদি এটি করতে চান তবে আপনার সাইটের অনুলিপি তৈরির বিষয়টি নিশ্চিত করুন - এটির একটি পৃথক পরীক্ষার অনুলিপি থাকা প্রয়োজন হবে যাতে এটি কাজ শেষ করার পরে php7.0আপনি কেবল 'স্যুইচ ওভার' না করেই পারেন সমস্যা.

দুর্ভাগ্যক্রমে, একই সার্ভার ব্লকের মধ্যে তৈরি php5এবং php7.0কাজ করার সহজ উপায় নেই , আপনার সাইটের জন্য অ্যাপ্লিকেশন ইত্যাদির জন্য আপনার পাথ পরিবর্তন না করেই একটি php5এবং এর জন্য একটি php7.0; সাইটগুলির এই ধরনের পুনর্নির্মাণ কদর্য পেতে পারে, তাই সাইট কোডের দুটি পৃথক অনুলিপি চালানোর পরামর্শ, একটি php7.0স্থানান্তরকরণের জন্য এবং একটি php5উত্পাদন ক্ষেত্রে for


আপনি যদি এইভাবে বাছাই করেন, তবে আপনার *php5.6*ওন্ডেজ যে প্যাকেজগুলি সরবরাহ করে তা ব্যবহার করতে হবে এবং প্লে প্যাকেজগুলি অপসারণ করতে হবে php5
মারু

@ মুরু সম্ভবত ঠিক আছে, আমি এটি লিখব
টমাস ওয়ার্ড

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

এফপিএম মোজাটির নামে একটি 5.6 ছিল।
টস্টার-সিএক্স

প্রায় 2018 হিসাবে, এনজিআইএনএক্সের পিএইচপি 5.6 কনফিগারেশনটি হ'লfastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
এক্সটার্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.