টার্মিনালের মাধ্যমে উবুন্টু 12.04 তে পিএইচপি ফাস্টপিজিআই হিসাবে চালাতে আপাচি কীভাবে কনফিগার করবেন?


35

আমি ইউনিক্স কমান্ড লাইন ওয়েব সার্ভার পরিচালনা / প্রশাসনের বিশ্বে তুলনামূলকভাবে নতুন।

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

সর্বাধিক সাধারণ বিকল্পগুলি:

  • অ্যাপাচি মডিউল
  • সিজিআই অ্যাপ্লিকেশন
  • ফাস্টসিজিআই অ্যাপ্লিকেশন

আমার প্রশ্নটি সহজভাবে, আপনি কমান্ড লাইনের মাধ্যমে কীভাবে এটি পরিবর্তন করবেন? আমি জানি অ্যাপাচি এর জন্য অনেকগুলি কনফিগারেশন ফাইল রয়েছে।

আমি সবচেয়ে কাছের জিনিসটি খুঁজে পেয়েছি এই প্রশ্নটি , তবে ডিরেক্টরি কাঠামোটি আমার ওএস (উবুন্টু 12.04) এর সাথে মেলে না বলে মনে হচ্ছে।

আমি যথেষ্ট বিস্মিত হয়েছি যে সেখানে কীভাবে পরিষ্কার গাইড বলে মনে হচ্ছে না যে আমি এই প্রক্রিয়াটি এমন সাধারণ কিছু বলে মনে করি যাতে এই প্রক্রিয়াটি বিশদভাবে পাওয়া যায়। যদি এটি উপস্থিত থাকে তবে আমাকে ক্ষমা করুন ... যদি থাকে তবে দয়া করে আমাকে সঠিক দিকে নির্দেশ করুন।


আমি যে নিকটতম জিনিসটি পেয়েছি তা হ'ল এসও-তে এই প্রশ্নটি ওয়েবসাইটটি স্ট্যাক ওভারফ্লো নয়।
ta.speot.is

1
এটি ফাস্টসিগি এটি বেশ ভালভাবে ব্যাখ্যা করে।

1
@ ta.speot.is ক্ষমা, আবেদন। থ্যাঙ্কস ম্যাট, অবশ্যই আমি ফাস্টসিজি ডট কমকে দেখেছি, তবে আমি সেই নির্দেশাবলীর অনুসরণ করতে কিছুটা অসুবিধা পেয়েছি।
ইভান ম্যাটসন

@ ta.speot.is, সরল টাইপ তার অর্থ "এসই" নয় "এসও"।
পেসারিয়ার

উত্তর:


49

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

এফওয়াইআই আমি উবুন্টু ১৪.০৪, অ্যাপাচি ২.৪ চালাচ্ছি এবং ডিফল্টরূপে মোডফ্পও চলছিল, পূর্ববর্তী নির্দেশাবলীতে মোডেফ্প অক্ষম করার প্রয়োজনীয়তাও ছিল না।

আমি খুব তথ্যপূর্ণ এবং সোজা হতে http://blog.starcklin.com/2013/08/install-mod-fastcgi-and-php5-fpm-on-ubuntu/ এও পেয়েছি ।

একের পর এক টার্মিনালে নিম্নলিখিত কমান্ডগুলি চালান।

প্রথমে প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করুন (আমি পিএইচপি 5 ছেড়ে দিয়েছি এটি ইতিমধ্যে ইনস্টল করে ধরে নিয়েছে, এটি প্রথমবার ইনস্টলের জন্য আবার যুক্ত করুন)। এছাড়াও অ্যাপাচি ২.৪ থেকে নোট করুন আপনি কর্মী পরিবর্তে ইভেন্ট-এমএমপি ব্যবহার করতে পারেন দেখুন http://www.vps.net/blog/2013/04/08/apache-mpms-prefork-worker-and-event/ । আমার উদাহরণটি কর্মী দেখায়, তবে আপনি যদি এটির ব্যবহার করতে চান তবে কেবল কর্মী শব্দটিকে ইভেন্টের সাথে প্রতিস্থাপন করুন।

sudo apt-get install apache2-mpm-worker

sudo apt-get install libapache2-mod-fastcgi php5-fpm

এখন আপনার প্রয়োজনীয় মোডগুলি সক্ষম করুন এবং আপনার যা প্রয়োজন তা অক্ষম করুন।

sudo a2dismod php5 mpm_prefork

sudo a2enmod actions fastcgi alias mpm_worker

Php5.fcgi ফাইলটি তৈরি করুন এবং এটি ব্যবহার করার জন্য ওয়েব সার্ভারকে অনুমতি দিন।

sudo touch /usr/lib/cgi-bin/php5.fcgi

sudo chown -R www-data:www-data /usr/lib/cgi-bin

Php5-fpm এর জন্য একটি গ্লোবাল কনফিগারেশন তৈরি করুন

sudo nano /etc/apache2/conf-available/php5-fpm.conf

নিম্নলিখিতটি পেস্ট করুন (আমরা আইপি ঠিকানার পরিবর্তে একটি সকেট ব্যবহার করব)

<IfModule mod_fastcgi.c> 
   AddHandler php5.fcgi .php 
   Action php5.fcgi /php5.fcgi 
   Alias /php5.fcgi /usr/lib/cgi-bin/php5.fcgi 
   FastCgiExternalServer /usr/lib/cgi-bin/php5.fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 3600 
   <Directory /usr/lib/cgi-bin>
       Require all granted
   </Directory> 
</IfModule>

Php5-fpm কনফারেন্স সক্ষম করুন

sudo a2enconf php5-fpm

অ্যাপাচি এবং এফপিএম পুনরায় চালু করুন

sudo service apache2 restart && sudo service php5-fpm restart

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

<?php phpinfo();

একটি ওয়েব ব্রাউজারে আপনি কেবল সম্পাদিত ফাইলটি খুলুন, আপনি যদি সার্ভার এপিআইয়ের পাশে "এফপিএম / ফাস্টসিজিআই" দেখতে পান তবে আপনি এখন ফাস্টপিজিআই দিয়ে পিএইচপি পরিবেশন করছেন!


4
এটি একটি জীবনরক্ষক। পুরানো অ্যাপাচি নির্দেশাবলী উবুন্টু 14.04, এবং অ্যাপাচি 2.4 এ কাজ করে না; তবে এই একজন কবজির মতো কাজ করেছিল। +100 !!
ভাভিন দোশি

আমি ঠিক এটি অনুসরণ করেছি, তবুও ত্রুটিটি পেয়েছি 'আপনার / / php5.fcgi/index অ্যাক্সেস করার অনুমতি নেই' ... এবং ত্রুটি লগতে, 'ক্লায়েন্ট সার্ভার কনফিগারেশন দ্বারা অস্বীকৃত: / usr / lib / cgi-bin / php5.fcgi '... কোন ধারণা?
মাত্র ভাগ্যবান সত্যিই

এটিকে বুঝিয়েছি ... আমি কোনও কারণে মূলের জন্য পুরানো 'অর্ডার অস্বীকার করুন, অনুমতি দিন' কনফিগারেশনটি ব্যবহার করছিলাম ... সব এখন ঠিক আছে: ডি
জাস্ট লাকী সত্যই

প্যাকেজ ইনস্টল করার পরে আমি নিম্নলিখিত ত্রুটি পেয়েছি এবং "অ্যাপাচি 2: /etc/apache2/apache2.conf এর 216 লাইনটিতে সিনট্যাক্স ত্রুটি: /etc/apache2/conf-enabled/php5-fpm.conf এর 9 লাইন সিনট্যাক্স ত্রুটি: প্রত্যাশিত </directory> তবে দেখেছেন </ ifModule> "
ফারুক


20

আমি অবশেষে ঠিক এটি করতে আগ্রহী একটি দুর্দান্ত টিউটোরিয়াল পেয়েছি। আমি ইতিমধ্যে আমার এলএএমপি স্ট্যাক ইনস্টল করায় আমি যে পদক্ষেপগুলি নিয়েছি তা রূপরেখা করব তবে পুরো টিউটোরিয়ালটি এখানে পাওয়া যাবে

নতুন জন্য নোট:

টিউটোরিয়ালে এটির সাহায্যে মূল ব্যবহারকারীকে পরিবর্তন করে শুরু করা হয়:

sudo su

আমার ক্ষেত্রে আমি sudoব্যবহারকারীদের স্যুইচ করার পরিবর্তে এই কমান্ডগুলি কেবল উপসর্গযুক্ত করেছি , সুতরাং আমি আমার পদক্ষেপগুলি সেভাবে নথিভুক্ত করব।

শুরু করা

প্রথম পদক্ষেপ: অ্যাপাচি কর্মী এমপিএম ইনস্টল করুন (মাল্টি-প্রসেসিং মডিউল)

sudo apt-get install apache2-mpm-worker

এটি আমার ইনস্টল করা প্রিফরেকটি প্রতিস্থাপন করে যা অ্যাপাচি ইনস্টল করার সময় পূর্বনির্ধারিত।

পদক্ষেপ 2: পিএইচপি 5 এবং প্রয়োজনীয় মডিউল ইনস্টল করুন

sudo apt-get install libapache2-mod-fastcgi php5-fpm php5

এই মুহুর্তে আপনি 'libapache2-mod-fastcgi' ইনস্টল করতে একটি ত্রুটি পেতে পারেন:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libapache2-mod-fastcgi is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source

E: Package 'libapache2-mod-fastcgi' has no installation candidate

এই অংশটি উপরের টিউটোরিয়ালে নেই

এটি পুনর্মিলন করার জন্য, multiverseসংগ্রহস্থলকে যথাযথ উত্সগুলিতে যুক্ত করতে হবে।

এটা করতে:

sudo nano /etc/apt/sources.list

যা আমি নিম্নলিখিত লাইন সংযুক্ত:

deb http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb http://security.ubuntu.com/ubuntu precise-security multiverse

preciseএই ক্ষেত্রে আমার উবুন্টু " যথার্থ প্যাঙ্গোলিন " এর সংস্করণ বোঝায় ।

সুতরাং এখন, এই পরিবর্তনগুলি সংরক্ষণ করুন এবং টার্মিনালে ফিরে:

sudo apt-get update

এবং আবার:

sudo apt-get install libapache2-mod-fastcgi php5-fpm php5

যা (এখন) কাজ করবে।

এখন এই অ্যাপাচি মডিউলগুলি সক্ষম করুন:

sudo a2enmod actions fastcgi alias

অ্যাপাচি পুনরায় চালু করুন

sudo service apache2 restart

পদক্ষেপ 3: অ্যাপাচি কনফিগারেশন

পিএইচপি-এফপিএম দিয়ে অ্যাপাচিকে কাজ করতে আমাদের নিম্নলিখিত কনফিগারেশনটি প্রয়োজন:

<IfModule mod_fastcgi.c>
    AddHandler php5-fcgi .php
    Action php5-fcgi /php5-fcgi
    Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
    FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
    <Directory /usr/lib/cgi-bin>
        Require all granted 
    </Directory>
    #directory statement mult be on multiple lines
</IfModule>

বিঃদ্রঃ:

যদি আপনি অ্যাপাচি (২.৩.x বা তার বেশি পুরানো) এর পুরানো সংস্করণ ব্যবহার করেন তবে লাইনটি ছেড়ে দিন leave

   <Directory /usr/lib/cgi-bin> Require all granted </Directory>

কমান্ডটি দিয়ে আপনি আপনার ইনস্টল করা সংস্করণটি পরীক্ষা করতে পারেন

apache2 -version

আপনি এটি বিশ্বব্যাপী অ্যাপাচি কনফিগারেশনে রাখতে পারেন (সুতরাং এটি সমস্ত vhosts এর জন্য সক্ষম), উদাহরণস্বরূপ /etc/apache2/conf.d/php5-fpm.conf(এই ফাইলটি বিদ্যমান নেই, সুতরাং আপনাকে এটি তৈরি করতে হবে), বা আপনি পিএইচপি-এফপিএম ব্যবহার করা উচিত এমন প্রতিটি vhost এ স্থাপন করতে পারেন।

আমি বিশ্ব পথে যেতে পছন্দ করি, তাই:

sudo nano /etc/apache2/conf.d/php5-fpm.conf

উপরের কোড ব্লকে পেস্ট করুন, এবং সংরক্ষণ করুন, প্রস্থান করুন। এই নতুন ফাইলটি স্বয়ংক্রিয়ভাবে অ্যাপাচের ডিফল্ট কনফিগারেশন দ্বারা লোড হবে যা /etc/apache2/conf.d/ডিরেক্টরিতে সমস্ত ফাইল লোড করে ।

অ্যাপাচি পুনরায় চালু করুন:

sudo service apache2 restart

এখন নথির রুটে নিম্নলিখিত পিএইচপি ফাইলটি তৈরি করুন /var/www:

sudo nano /var/www/info.php

যোগ করুন

<?php phpinfo();

সংরক্ষণ করুন এবং প্রস্থান করুন।

এখন আমরা সেই ফাইলটিকে একটি ব্রাউজারে কল করি (যেমন http://your-server-ip/info.php)

উপরে সার্ভার এপিআই এর নীচে আপনার দেখতে হবে FPM/FastCGI

সফল!

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


আমাকে এটি আগে যোগ করতে হয়েছিল </ iMMuleule>: <ডিরেক্টরি / usr / lib / cgi-bin> সমস্ত অনুমোদিত মঞ্জুরি </ ডিরেক্টরি>
রিমু অ্যাটকিনসন

@ রিমু অ্যাটকিনসন সঠিক, ডিফল্টরূপে সমস্ত ডিরেক্টরি নতুন সংস্করণে নিষিদ্ধ করা হবে, সুতরাং আপনাকে বিশেষত সিজি-বিন ডিরেক্টরিতে অ্যাক্সেস দিতে হবে। এটি উত্তরে যুক্ত করা উচিত, এটি না করে আপনি একটি 403 পেয়ে
যাবেন

কিভাবে এই জন্য ধন্যবাদ! নোট করুন যে Require all grantedজিনিসটি কেবল অ্যাপাচি ২.৪ থেকে প্রয়োজনীয়। যদি আমি এটি অ্যাপাচি ২.২ দিয়ে কনফিগারেশন ফাইলে রাখি তবে এটি ব্যর্থ হয়।
লীমস

আমি একটি নোট যোগ করেছি। (এটা জরিমানা-সম্পাদনা নির্দ্বিধায় এটা আপনার পোস্ট এর;।)) বিস্তারিত জানার জন্য দেখুন stackoverflow.com/a/22040167/592323
leemes

1
এই উত্তরটি উবুন্টু 14.04 এ কাজ করে না। এটি 14.04 এ করার জন্য জেডাওজি দ্বারা উত্তরটি দেখুন।
ভাভিন দোশি

1

উবুন্টুতে 14.04-এ গৃহীত উত্তরের পদক্ষেপগুলি করার পরে / etc/apache2/conf- উপলভ্য / php5-fpm.conf সম্পাদনা করুন

<IfModule mod_fastcgi.c>
    AddHandler php5-fcgi .php
    Action php5-fcgi /php5-fcgi
    Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
    FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 3600
    <Directory /usr/lib/cgi-bin>
        Require all granted
    </Directory>
</IfModule>

তারপরে মৃত্যুদণ্ড কার্যকর করুন

#sudo a2enconf php5-fpm
#sudo apache2 restart

0

যদি কেউ উবুন্টু ১.0.০৪ তে এটি করছে এবং পিএইচপি 7 থেকে পিএইচপি 5.6 (ওয়ানড্রেজ) এ নামিয়েছে, আপনাকে কিছু লাইন প্রতিস্থাপন করতে হবে (জেডোগের উত্তরের ভিত্তিতে):

sudo apt-get libapache2-mod-fastcgi php5-fpm ইনস্টল করুন:

sudo apt-get install libapache2-mod-fastcgi php5.6-fpm 

sudo a2dismod পিএইচপি 5 এমপিএম_প্রিয়ত থেকে:

sudo a2dismod php5.6 mpm_prefork

sudo ন্যানো /etc/apache2/conf- উপলব্ধ / php5-fpm.conf থেকে:

sudo vim /etc/apache2/conf-available/php5.6-fpm.conf

পিএইচপি 5-এফপিএম এর ইনস্টলেশন প্রক্রিয়া ইতিমধ্যে ফাইল তৈরি করেছে, সুতরাং এটি তৈরি করার দরকার নেই। যাইহোক, আমি সেই ফাইলের সমস্ত বিদ্যমান পাঠ্য সরিয়ে দিয়েছি কারণ এটি Mod_php5 এর জন্য বোঝানো হয়েছিল।

<IfModule mod_fastcgi.c> 
   AddHandler php5.fcgi .php 
   Action php5.fcgi /php5.fcgi 
   Alias /php5.fcgi /usr/lib/cgi-bin/php5.fcgi 
   FastCgiExternalServer /usr/lib/cgi-bin/php5.fcgi -socket /var/run/php/php5.6-fpm.sock -pass-header Authorization -idle-timeout 3600 
   <Directory /usr/lib/cgi-bin>
       Require all granted
   </Directory> 
</IfModule>

ফাইলটি অবস্থিত হওয়ায় আমি /var/run/php5-fpm.sock থেকে /var/run/php/php5.6-fpm.sock এ পথ পরিবর্তন করেছি।

sudo a2enconf php5-fpm to:

sudo a2enconf php5.6-fpm

সুডো সার্ভিস অ্যাপাচি 2 রিস্টার্ট && sudo পরিষেবা পিএইচপি 5-এফএমপি পুনরায় চালু করুন:

sudo service apache2 restart && sudo service php5.6-fpm restart

আমি আশা করি এটি আমার মতো অন্যান্য নবজাতকদের সহায়তা করবে :)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.