এনগিনেক্স / পিএইচপি-এফপিএম "অ্যাক্সেস অস্বীকার করা হয়েছে।" ত্রুটি


14

আমি একটি নতুন ইনস্টল করা উবুন্টু (12.04) সার্ভার সেট আপ করার চেষ্টা করছি, কিন্তু পিএইচপি ফাইলগুলি পিএইচপি-এফএমপি দিয়ে চলতে পারি না। আমি যাই করি না কেন, আমি সর্বদা একটি "অ্যাক্সেস অস্বীকৃত" পাই। পৃষ্ঠা (সাধারণ পাঠ্য, এইচটিএমএল বা কিছুই নয়)।

ইনস্টল করা প্যাকেজগুলি:

nginx
nginx-common
nginx-full
php5
php5-cli
php5-common
php5-fpm

কনফিগারেশন বিশদ:

পিএইচপি-FPM:

user = www-data
group = www-data
listen = /var/run/php5-fpm.sock

nginx:

user www-data;
worker_processes 3;
events { worker_connections 1024; }

ডিফল্ট / পরীক্ষার ডোমেন:

server {
    listen       80;
    server_name  localhost;
    root         /extra/htdocs/default;
    index        index.html index.php

    access_log   /extra/logs/default/access.log;
    error_log    /extra/logs/default/error.log;

    location / {
        try_files  $uri $uri/ /index.html;
    }

    location ~ \.php
    {
        fastcgi_split_path_info  ^(.+\.php)(/.+)$;

        include fastcgi_params;

        fastcgi_index   index.php;
        fastcgi_pass    unix:/var/run/php5-fpm.sock;
        fastcgi_param   PATH_INFO         $fastcgi_path_info;
        fastcgi_param   PATH_TRANSLATED   $document_root$fastcgi_path_info;
        fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name;
    }
}

/extra/htdocs/default/index.php:

<?php
phpinfo();

অন্য সব কিছুই ডিফল্ট। উভয় Nginx এবং php-fpm লগ কোনও ত্রুটি দেখায় না। তবুও আমি লোড করার সময় আমি http://<server-ip>/index.php"অ্যাক্সেস অস্বীকৃত" পৃষ্ঠাটি পাই।

সমস্যা সমাধান:

  • Index.html ফাইলটি ঠিক কাজ করে। অতএব এটি অবশ্যই পিএইচপি-এফএমপি হতে হবে, বা এনগিনেক্স এবং পিএইচপি-এফপিএম এর মধ্যে ফাস্টসিগি বাঁধাই হতে হবে।
  • আমি নিশ্চিত হয়েছি যে আমি পুরো /extraডিরেক্টরিটির মালিকানা (ব্যবহারকারী এবং গোষ্ঠী উভয়ই) www-dataএবং ownership 777 এর মালিকানা সেট করে রেখেছি (অবশ্যই এটি সম্পাদন করার পরে আমি এটিটি টোন করব)। সুতরাং এটি অবশ্যই কোনও অনুমতির সমস্যা নয়
  • এটি সিকিউরিটি নয় lim লিমিট_ এক্সটেনশনগুলি যে আমি অনেক কিছু দেখছি: ডিফল্টরূপে। Php এ সেট করা আছে, যা ঠিক আমি অনুরোধ করছি। আমি .php .htmlএকই ফলাফল সহ স্পষ্টভাবে সেট করেছি ।

আমি সত্যিই এতে ক্লান্ত হয়ে পড়েছি, আমি এই সেটআপটি ইতিমধ্যে দু'বার ইনস্টল করেছি (যদিও ওএসএক্স মেশিনে থাকা), এবং সবকিছু নির্বিঘ্নে কাজ করেছিল। আমি কি কিছু উপেক্ষা করছি?

লগ বিষয়বস্তু:

Nginx ত্রুটি লগ খালি।

Nginx অ্যাক্সেস লগ (অপসারণ আইপি):

<ip> - - [17/Jul/2012:11:21:25 +0200] "GET /favicon.ico HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
<ip> - - [17/Jul/2012:11:21:28 +0200] "GET /index.php HTTP/1.1" 403 46 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
<ip> - - [17/Jul/2012:11:21:34 +0200] "-" 400 0 "-" "-"

পিএইচপি-এফপিএম লগ:

[17-Jul-2012 10:44:14] NOTICE: fpm is running, pid 4969
[17-Jul-2012 10:44:14] NOTICE: ready to handle connections

উত্তর:


33

অবশেষে এটি স্থির।

অপরাধীটি আমার কনফিগারেশনে এই লাইনটি ছিল:

fastcgi_param   PATH_TRANSLATED     $document_root$fastcgi_path_info;

যদি আমি এই লাইনটি মন্তব্য করি তবে সবকিছু ঠিকঠাক কাজ করেছে। যাইহোক আমি প্রায় প্রতিটি পোস্টে এটি দেখেছি এনজিনেক্স কনফিগারেশনগুলি সম্পর্কে, তাই এটি আমাকে বিরক্ত করেছিল। মিলিয়নতম বারের জন্য আমার কনফিগারগুলির দিকে তাকানোর সময়, আমি এটি দেখতে পেয়েছিcgi.fix_pathinfo (ইন php.ini) 0 তে সেট করা হয়েছিল, যেখানে এটি হওয়া উচিত ছিল 1, পিএইচপি ব্যবহার করা ডিফল্ট মানটিও 1, তাই আমি অবশ্যই আমার ডিবাগিংয়ের সময় এটি পরিবর্তন করেছিলাম কারণ আমি এই মান সম্পর্কে পড়া মনে রাখবেন, এবং ভেবেছিলেন এটি সঠিক হয়েছে।

যাইহোক, সম্ভবত এটি এই সমস্যার জন্য কাউকে গুগলিংয়ে সহায়তা করে।


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

লিঙ্কটির জন্য ধন্যবাদ, আমি কয়েক বার এসেছি এবং সেই নির্দেশাবলী প্রয়োগ করেছি। ভুলটি আমার ডিবাগিংয়ের ক্রোধে সম্ভবত আমার নিজের ছিল (x ঘন্টা পরে আপনি পরিবর্তন হওয়া কিছু জিনিসের ট্র্যাক হারাতে শুরু করেন)।
পিটার ক্রুইথফ

আমার একটি chownসমস্যা ছিল ।
জর্জেন পল

তোমাকে অনেক ধন্যবাদ. এই সমস্যাটির জন্য কয়েক ঘন্টা কাজ করা এবং cgi.fix_pathinfo0 (ডিফল্ট কনফিগারেশন) এ সেট করা সমস্যা ছিল।
মাউভিস লেডফোর্ড

2
cgi.fix_pathinfo = 0টিউটোরিয়াল প্রচুর দ্বারা সুপারিশ করা হয় কারণ এটি দুর্বলতাগুলি হ্রাস করতে সাহায্য করে, বিশেষত দুর্বলতাগুলি স্বেচ্ছাসেবী ফাইলের মাধ্যমে পিএইচপি কোড চালায়। সুতরাং আপনি যদি 1 এ সেট করেন তবে আপনি কী করছেন তা নিশ্চিত হয়ে নিন বা এটির জন্য অন্যান্য পদক্ষেপগুলি নির্দিষ্ট করতে পারেন। আমি এই পোস্টটিতে এই বিষয়টির একটি ভাল ব্যাখ্যা পেয়েছি
মাইকেড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.