Nginx + php5-fpm = "ফাইল খুঁজে পাওয়া যায় নি"


14

আমি এনজিএনএক্স / এফপিএম ব্যবহার করে কোনও সাইট সেটআপ করার সময় একটি প্রাচীর আঘাত করেছি। পৃষ্ঠাটি "ফাইল খুঁজে পাওয়া যায় নি" প্রদর্শন করে এবং এটি এনজিন্স ত্রুটিতে উপস্থিত হয় log

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream

আমি এনজিনেক্স এবং এফএমপি উভয় ক্ষেত্রেই নতুন, এবং ত্রুটি বার্তাটি আমার কাছে কিছুই বোঝায় না (এমনকি গুগল মেশিনটিও সহায়তা করে নি!)। কি ঘটতে পারে তার উপর কোনও আলোকপাত করতে পারে?


আপনি নিজের এনজিএনএক্স কনফিগারেশনের অংশটি যেখানে পিএইচপি হ্যান্ডলিংয়ের সাথে সংশোধন করতে পারবেন?
ক্রিস্টোফার পেরিন

আমার জন্য নিম্নলিখিত নিবন্ধটি সহায়তা করেছে: nginxlibrary.com/resolving-no-input-file-specified-error । সাধারণত সমস্যা থাকলে সমস্যা হয় SCRIPT_FILENAME
সাদা_জেকো

উত্তর:


18

আপনি একটি থাকতে হবে locationএই একইভাবে কনফিগার পিএইচপি অনুরোধ পরিচালনা করতে অধ্যায়:

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include         fastcgi_params;
    }

(অতিরিক্ত try_filesকোনও সুরক্ষা দুর্বলতার সমাধান করে যা স্বেচ্ছাসেবী ফাইলগুলিকে পিএইচপি হিসাবে সম্পাদন করতে দেয়))

তাছাড়া, আপনার rootসংজ্ঞায়িত করা উচিত serverকনফিগারেশন ফাইল, বিভাগে নাlocation অধ্যায়। এটি সর্বাধিক সাধারণ এনগিনেক্সের ভুল কনফিগারেশনগুলির মধ্যে একটি


এই ভুল কনফিগারেশন নিবন্ধের জন্য +1 - সত্যই যদি আপনি এনগিনেক্স শিখছেন তবে একটি পাঠ্য মূল্যবান। বেশ কয়েকটি দুর্দান্ত টিপস সহ ভাল লিখেছেন, এন্ট্রি-লেভেল!
বেন

2

এটি যাত্রী ইনস্টলের জন্য একটি নোট।

আমি যাত্রীর মাধ্যমে উত্স থেকে এনগিনেক্স ইনস্টল করেছি যা পিএইচপি 5-এফপিএম নিয়ে সমস্যা সৃষ্টি করেছে। মাইকেল হ্যাম্পটন দ্বারা বর্ণিত সমস্যাটিকে ডিফল্ট nginx.conf ব্যবহার করে। সমাধানটি হ'ল মূল এবং সূচক নির্দেশকের চারপাশের ব্লকটি সরিয়ে ফেলা, তাই:

location / {
    root html
    index index.html index.htm
}

হয়ে:

root html
index index.html index.htm

তবুও পিএইচপি ব্লকটি ভুলভাবে সেট আপ হয়েছে। এর সঠিক উপায়ের জন্য মাইকেল হ্যাম্পটনের উত্তর দেখুন।

অতিরিক্ত নোটটি হ'ল পিএইচপি 5-এফএমপি যদি সকেটগুলি ব্যবহার করার জন্য সেট করা থাকে তবে পিএইচপি ব্লকের ফাস্টগি_পাস প্যারামিটারটি nginx.conf এ /etc/php5/fpm/pool.d/www.conf- এ সকেট সেটআপ করতে হবে।


2

এনজিএনএক্সের নতুন সংস্করণে আমার এই সমস্যাটি ছিল। (কনফিগারেশনটি পুরানো সংস্করণ থেকে নেওয়া হয়েছে)

আমি কি কি ছিল জায়গা ছিল include fastcgi_params;আমার কাস্টম উপরে SCRIPT_FILENAMEভালো:

location @web {
        try_files $uri =404;
        include         fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_param   SCRIPT_FILENAME  $document_root/index.php;
}

হিসাবে SCRIPT_FILENAMEওভাররাইট হচ্ছে।


1

আপনি যদি নিজের অবস্থানের ব্লকগুলিতে এলিয়াস ব্যবহার করছেন তবে একটি অযথিত 404 ত্রুটিও এই আচরণটি প্রদর্শন করতে পারে। আপনি এটি দেখতে পারেন যদি ব্রাউজারে প্রদর্শিত পৃষ্ঠাটি প্রাইটিয়ার ফর্ম্যাটেড (কেন্দ্রিক) nginx 404 পৃষ্ঠার বিপরীতে সরল পাঠ্য "ফাইল পাওয়া যায় না" হয়। মূলত, এটি সত্যিই বলছে 404 পৃষ্ঠাটি পাওয়া যাবে না।

সমাধানের জন্য, try_files $uri =404আপনার অবস্থান ব্লকে একটি অতিরিক্ত লাইন যুক্ত করুন এবং এনজিনেক্স কনফিগারেশনটি পুনরায় লোড করুন। মাইকেল হ্যাম্পটন একটি সুনির্দিষ্ট সুরক্ষার দুর্বলতা সমাধান করার বিষয়ে যা বলেছিল তা ছাড়াও , এটি ফাস্টসিগি হ্যান্ডলারটি ওরফে সংজ্ঞাটিকে ওভাররাইড করতে এবং ডিফল্ট লোকেশনটিতে 404 স্ক্রিপ্টটি সন্ধান করতে দেয়।


1
sudo vim /etc/php-fpm.conf

লাইন 149 সম্পর্কে, পিএইচপি ব্যবহারকারী এবং & ব্যবহারকারী গ্রুপ পরিবর্তন করুন

আমি এখন এটি সফল পরীক্ষা।


এই উপায় ঠিক! আরে মানুষ, আপনি এটি চেষ্টা করতে পারেন!
ভালবাসা

আপনি যখন ব্যবহারকারী এবং গোষ্ঠী পরিবর্তন করেন, আপনি পিএইচপি-এফপিএম পুনরায় আরম্ভ করতে ভুলে যান না I আপনি যদি সেন্টোস 6 ব্যবহার করেন তবে আপনি এই কমান্ডটি ব্যবহার করতে পারেন: সুডো সার্ভিস পিএইচপি-এফপিএম পুনঃসূচনা
ভালবাসা

0

আমি দেখেছি :

ফাস্টসিজিআই স্টাডারে প্রেরণ করেছে: উজান থেকে প্রতিক্রিয়া শিরোনাম পড়ার সময় "প্রাথমিক স্ক্রিপ্ট অজানা"

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

আমি বুঝতে পারি এটি অনুমানমূলক তবে এটি অবশ্যই আমার দৃশ্যের সাথে খাপ খায় এবং এটি অন্য কারও জন্যও সহায়তা করতে পারে।


0

ধন্যবাদ @ হোমওয়ে, আপনার উত্তর আমাকে অনুপ্রাণিত করে। আপনাকে অনেক ধন্যবাদ!

আমি একই প্রশ্নের সাথে দেখা করি, তবে অন্যান্য পদ্ধতি আমাকে প্রশ্নটি সমাধান করতে সহায়তা করে নি!

আমি এটি সমাধান করেছি, আমি কীটিটি পেয়েছি তা হল: লিনাক্স ব্যবহারকারী ডানদিকে যাচ্ছেন প্রশ্নের উত্তর: ফাস্টসিজিআই স্টাডারে প্রেরণ করেছে: "প্রাথমিক স্ক্রিপ্ট অজানা"

কারণ পিএইচপি-এফপিএম ডিফল্ট ব্যবহারকারী: গোষ্ঠীটি আপাচি: অ্যাপাচি, তবে আপনার কোড দির কিছুটা বডি: কিছুবাডি। সুতরাং আপনার সঠিক ব্যবহারকারী পরিবর্তন করা উচিত!

এই প্রশ্নটি সমাধান করার জন্য আমি একটি ব্লগ লিখি, আপনি এই ব্লগটি দেখতে পারেন:

[এনগিনেক্স ফাস্টসিজিআই স্টাডারে প্রেরণ করা হয়েছে: "প্রাথমিক স্ক্রিপ্ট অজানা"] [1] `[1]: http://geekhades.blogspot.com/2017/06/nginx-fastcgi-mitted-in-stderr-primary.html

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