Nginx, APC এবং PostgreSQL দিয়ে পিএইচপি কীভাবে সেটআপ করবেন?


9

আমি উবুন্টু সার্ভার 10.10 ব্যবহার করি এবং আমি এনগিনএক্স , পিএইচপি 5.3.3 , পোস্টগ্রিসকিউএল এবং পছন্দমতো এপিসি এবং পিএইচপি সুহসিনের সাথে একটি ওয়েব সার্ভার পরিবেশ স্থাপন করতে চাই ।

আমি ইতিমধ্যে PostgreSQL apt-get install postgresqlএবং Nginx এর সাথে সেট আপ করেছি apt-get install nginx

তবে আমি কীভাবে এইগুলির জন্য পিএইচপি সেট আপ করব? আমি কি এটি ব্যবহার করে apt-get installকরতে পারি বা আমাকে উত্সগুলি ডাউনলোড করে সংকলন করতে হবে? আমি এটি ব্যবহার করে করতে পছন্দ করব apt-get

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

Nginx, APC এবং PostgreSQL দিয়ে কীভাবে আমি পিএইচপি সেটআপ করব? বা কমপক্ষে পিএইচপি-এফপিএম + এনগিনেক্স?


হালনাগাদ

আমি এখন একটি তাজা ইনস্টল উবুন্টু সার্ভার 10.10 এবং কমান্ড কার্যকর করা পিটার প্রস্তাব সঙ্গে php5-suhosinযোগ করা হয়েছে। এর পরে এনগিনেক্স সূক্ষ্মভাবে কাজ করে, তারপরে আমি উত্পন্ন কনফিগারেশন ফাইলটি নীচের মতো করে সম্পাদনা করি। নতুন কনফিগারেশন ফাইলটি পুনরায় লোড করার পরে, এনগিনেক্স এখনও একটি index.htmlফাইল ব্যবহার করে সূক্ষ্মভাবে কাজ করে , তবে আমি যখন কোনও index.phpফাইল যুক্ত করি তখন এটি কাজ করা বন্ধ করে দেয়। আমি অনুমান করি যে এটি পিএইচপি-এফপিএম, এপিসি বা পিএইচপি সম্পর্কিত কোনও কিছুর সাথে সম্পর্কযুক্ত। তবে এটি পিএইচপি-এফপিএম-এর জন্য কনফিগারেশন ফাইলও হতে পারে।

এখানে আমি ব্যবহার করছি এনগিনেক্সের কনফিগারেশন ফাইল, তার বেশিরভাগই ডিফল্টরূপে উত্পন্ন হয়। আমি মন্তব্য এড়িয়ে গেছি।

server {

    listen 80;
    listen [::]:80 default ipv6only=on;

    server_name localhost;

    access_log /var/log/nginx/localhost.access.log;

    location /favicon.ico {
        empty_gif;
    }

    location / {
        root     /var/www;
        index    index.php index.html index.htm;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

}

দয়া করে এটি একটি উত্তর করুন এবং তারপরে এটি গ্রহণ করুন, আমরা উভয়কে সম্মিলিত সমাধান হিসাবে একসাথে ভোট দিতে পারি।
জর্জি কাস্ত্রো

@ জর্জি: এটি কোনও উত্তর নয়, আমি কেবল আমার কনফিগারেশন ফাইলটি দেখছি যা কাজ করে না । পিটার স্মিথ মন্তব্যগুলির সাথে মিলিত সঠিক সমাধান পোস্ট করেছেন এবং আমি এটি একটি উত্তর হিসাবে গ্রহণ করেছি।
জোনাস

আহ আমার ভুল, রক!
হোর্হে কাস্ত্রো

উত্তর:


8

উবুন্টু ১০.১০ থেকে শুরু করে এটি নতুন পিএইচপি 5-এফপিএম প্যাকেজটির সাথে তুচ্ছ

নিম্নলিখিত প্যাকেজগুলি আপনার প্রয়োজনীয় সমস্ত কিছু করে

  • nginx - ওয়েব সার্ভার
  • php5-fpm - দ্রুত-সিজিআই পিএইচপি সার্ভার
  • php-apc - পিএইচপি জন্য এপিসি প্যাকেজ
  • php5-pgsql - পিএইচপি জন্য PostgreSQL মডিউল
  • postgresql - PostgreSQL ডাটাবেস সার্ভার

সব একসাথে sudo apt-get install nginx php5-fpm php-apc php5-pgsql postgresql

এছাড়াও আমি অ্যাপাচি 2 ইনস্টল করা আছে কিনা তা যাচাই করার পরামর্শ দিই। যদি তা হয় তবে sudo apt-get remove apache280 কে পোর্টের জন্য প্রতিযোগিতা করে অ্যাপাচি এবং এনগিনেক্স এড়ানোর জন্য এটি দিয়ে মুছুন ।

আরও মনে রাখবেন যে এক্সডিবাগ স্ট্যান্ডার্ডটিও পিএইচপি 5-এফএমপিএম এর মতো 9000 পোর্ট ব্যবহার করতে চায়। সুতরাং আপনি যদি xdebug ব্যবহার করেন তবে সেই বন্দরটি উদাহরণস্বরূপ 9001 এ পরিবর্তন করুন

এবং বোনাস হিসাবে উদাহরণস্বরূপ এনজিএনএক্স কনফিগারেশন (এটিকে / etc / nginx / সাইটগুলিতে রাখুন এবং এটিকে / etc / nginx / সাইট-সক্ষম করাতে সিমিলিং করুন)

server {
  listen 80;
  server_name site.com;
  access_log /data/log/www/site.com/access.log;
  error_log /data/log/www/site.com/error.log;

  root /data/www_data/site.com/public;
  index index.php;

  location = /favicon.ico {
    empty_gif;
    #return 204;
  }

  location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass 127.0.0.1:9000;
  }
}

আমি এখন এটি করেছি এবং আমি একটি সাধারণ test.phpফাইল তৈরি করেছি , তবে এটি কার্যকর হয় না। আমার ব্রাউজারটি "ভাঙা লিঙ্ক" বলে এবং এনগিনেক্স ত্রুটি লগটিতে "ফেভিকন.ইকো" সম্পর্কে কেবল একটি প্রবেশ রয়েছে। আমার ধারণা আমার কনফিগারেশন ফাইলটিতে কিছু আছে তবে আমার সত্যিই কোনও ধারণা নেই এবং ত্রুটিটি খুঁজে পাওয়া বেশ কঠিন।
জোনাস

@ জোনাস এটি হতে পারে যে এনগিনেক্স এবং পিএইচপি 5-এফপিএম এখনও শুরু হয়নি। সেক্ষেত্রে, sudo service nginx startএবং sudo service php5-fpm startকাজ করা উচিত নয়। অবশ্যই, তারা যে কোনও ত্রুটি দিতে পারে তা সন্ধান করুন।
পিটার স্মিট

@ জোনাস আপনার ত্রুটি লগটিতে ফেভিকন.ইকো থাকা উচিত নয়, যদি আপনি আমার সমাধান থেকে খালি_জিফ অংশটি অনুলিপি করেন তবে তা নয় not এছাড়াও, পরিবর্তনের (সর্বদা sudo service nginx reload) পরে সর্বদা পুনরায় চালু করতে ভুলবেন না । অন্য সমস্ত কিছু যদি ব্যর্থ হয়, তবে আপনি আপনার প্রশ্নে আপনার কনফিগারেশন ফাইলটি যুক্ত করতে পারেন।
পিটার স্মিট

আমি এনগিনেক্সের জন্য কনফিগারেশন ফাইলটি দিয়ে প্রশ্নটি আপডেট করেছি, পিএইচপি সেটআপে কিছু ভুল আছে বলে মনে হচ্ছে। আমার কনফিগারেশন ফাইলে ফেভিকন সম্পর্কে আপনার লাইনগুলি যুক্ত করার পরে আমি আর Nginx ত্রুটি লগতে কোনও ত্রুটি পাই না। এনগিনেক্স .htmlফাইলগুলির সাথে কাজ করে তবে এটি ফাইলগুলির পক্ষে কাজ করে না .php
জোনাস

1
@ জোনাস এমন একটি পৃষ্ঠা যা আমাকে 'ক্লিন' কনফিগারেশন ফাইলগুলি তৈরি করতে সহায়তা করেছিল সেটি হ'ল wiki.nginx.org/Pitfalls , তবে আপনি যে পরিবর্তনগুলি বুঝতে পারছেন না সেগুলি বাস্তবায়নের বিষয়ে সতর্কতাটিকে উপেক্ষা করবেন না।
পিটার স্মিত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.