Nginx 403 ত্রুটি: [ফোল্ডার] এর ডিরেক্টরি সূচক নিষিদ্ধ


183

আমার কাছে 3 টি ডোমেন নাম রয়েছে এবং এনগিনেক্স ব্যবহার করে একটি সার্ভারে (একটি ডিজিটাল ওশিয়ান ড্রপলেট) সমস্ত 3 সাইট হোস্ট করার চেষ্টা করছি।

mysite1.name mysite2.name mysite3.name

তাদের মধ্যে মাত্র 1 জন কাজ করে। অন্যান্য দুটি ফলাফল 403 ত্রুটি (একইভাবে) এ ঘটে।

আমার nginx ত্রুটি লগ এ, আমি দেখতে: [error] 13108#0: *1 directory index of "/usr/share/nginx/mysite2.name/live/" is forbidden

আমার সাইট-সক্ষম কনফিগারেশনটি হ'ল:

server {
        server_name www.mysite2.name;
        return 301 $scheme://mysite2.name$request_uri;
}
server {
        server_name     mysite2.name;

        root /usr/share/nginx/mysite2.name/live/;
        index index.html index.htm index.php;

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

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

সমস্ত 3 সাইটে প্রায় একই ধরণের কনফিগার ফাইল রয়েছে।

প্রতিটি সাইটের ফাইলগুলি /usr/share/nginx/mysite1.name/someFolder এর মতো ফোল্ডারগুলিতে থাকে এবং তারপরে /usr/share/nginx/mysite1.name/live সেটির জন্য একটি সিমিলিঙ্ক। (মাইসাইট 2 এবং মাইসাইট 3 এর জন্য একই।)

আমি সমস্ত ফাইলের জন্য নিষিদ্ধ হওয়া এনগিনেক্স 403 দেখেছি কিন্তু এটি কোনও ফল দেয় না।

ভুল হতে পারে কোন ধারণা?


24
আমি মনে করি আপনার কাছে index.html index.phpফাইলগুলি অনুপস্থিত রয়েছে, আপনি কি নিশ্চিত যে সেগুলি ফোল্ডারে রয়েছে?
মোহাম্মদ আবুশাদি

ওহ আপনি ঠিক বলেছেন; যে দুটি সাইট কাজ করছে না সেগুলি হ'ল একটি লারাভেল প্রকল্প (যার একটি / পাবলিক সাবফোল্ডারে ইনডেক্স.এফপি রয়েছে) এবং একটি পুরাতন কোডইগিনিটার প্রকল্প (যার একটি / public_web সাবফোল্ডারটিতে index.php রয়েছে)। তবে আমি নিশ্চিত না যে সাইটগুলিকে কাজ করতে আমার কনফিগারেশনটি কীভাবে পরিবর্তন করা যায়।
রায়ান

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

আমি শুধু এই ত্রুটি আবার পেয়েছিলাম, কিন্তু এই সময় সমস্যা হল আমি ঘটনাক্রমে সেট চাই ছিল rootহতে /Users/myUsername/code/appপরিবর্তে /Users/myUsername/code/app/public
রায়ান

সার্ভার প্রশাসকরা যখন জ্বলে। বিশদ
ওল্ডফার্ট

উত্তর:


168

আপনার যদি ডিরেক্টরি সূচক বন্ধ করে রাখে এবং যদি এই সমস্যাটি থেকে থাকে তবে এটি সম্ভবত কারণ আপনি ব্যবহার করছেন ট্রাইফাইলে একটি ডিরেক্টরি বিকল্প রয়েছে:

location / {
  try_files $uri $uri/ /index.html index.php;
}                 ^ that is the issue

এটি সরান এবং এটি কাজ করা উচিত:

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

কেন এমন হয়

টিএল; ডিআর: এনজিনেক্স ডিরেক্টরিটি সূচীকরণের চেষ্টা করবে এবং নিজেই অবরুদ্ধ থাকবে বলে এটি ঘটে। ওপি দ্বারা উল্লিখিত ত্রুটি নিক্ষেপ করা।

try_files $uri $uri/এর অর্থ, রুট ডিরেক্টরি থেকে, নির্দেশিত ফাইলটি চেষ্টা করুন uri, যদি তা বিদ্যমান না থাকে, তার পরিবর্তে একটি ডিরেক্টরি চেষ্টা করুন (সুতরাং /) the যখন এনজিনেক্স কোনও ডিরেক্টরি অ্যাক্সেস করে তখন এটি এডেক্স করার চেষ্টা করে এবং এর ভিতরে থাকা ফাইলগুলির তালিকা ব্রাউজার / ক্লায়েন্টের কাছে ফিরিয়ে আনার চেষ্টা করে, তবে ডিফল্ট ডিরেক্টরি অনুসারে ইনডেক্সিং অক্ষম থাকে এবং তাই এটি ত্রুটিটি ফিরিয়ে দেয় "এনগিনেক্স 403 ত্রুটি: ডিরেক্টরি ফোল্ডারের] নিষিদ্ধ".

ডিরেক্টরি ইনডেক্সিং autoindexবিকল্প দ্বারা নিয়ন্ত্রিত হয় : https://nginx.org/en/docs/http/ngx_http_autoindex_module.html


আমার ঠিক এই সমস্যাটি ছিল। কেন বুঝতে পারছিলাম না আমি বুঝতে পারি try_filesনা index.php, আমি কেবল "ডিরেক্টরি সূচক ... ... নিষিদ্ধ" দিয়ে 403 পেয়ে চলেছি
ট্র্যাভিস ডি

4
@ জেসিএম, আপনি কেন$uri/ সমস্যা তৈরি করছেন তার ব্যাখ্যা যুক্ত করতে আপত্তি করবেন ?
ইয়ান ডান

আমারও সমাধান হয়েছে
আলারিভা

1
আমারও ত্রুটি ছিল আমার দুটি সাইট ছিল, একটি সাবডোমেইনে উভয়ই। $ ইউরি / অপসারণটি কৌশলটি করেছে। ধন্যবাদ!
জীবনরিজ

5
@ লুমিনল try_files $uri $uri/মানে, ওয়েব রুট থেকে, ইউরি দ্বারা নির্দেশিত ফাইলটি চেষ্টা করুন, যদি তা বিদ্যমান না থাকে, তবে পরিবর্তে একটি ডিরেক্টরি চেষ্টা করুন (সুতরাং /)। যখন এনজিনেক্স কোনও ডিরেক্টরি অ্যাক্সেস করে তখন এটি এডেক্স করার চেষ্টা করে এবং এর ভিতরে থাকা ফাইলগুলির তালিকা ব্রাউজার / ক্লায়েন্টের কাছে ফিরিয়ে আনার চেষ্টা করে, তবে ডিফল্ট ডিরেক্টরি অনুসারে ইনডেক্সিং অক্ষম থাকে এবং তাই এটি ত্রুটিটি ফিরিয়ে দেয় "এনগিনেক্স 403 ত্রুটি: ডিরেক্টরি ফোল্ডারের] নিষিদ্ধ". ডিরেক্টরি সূচীকরণটিautoindex বিকল্প দ্বারা নিয়ন্ত্রিত হয় : nginx.org/en/docs/http/ngx_http_autoindex_module.html
JCM

66

এই কনফিগারেশনটি এখানে কাজ করে:

server {
    server_name www.mysite2.name;
    return 301 $scheme://mysite2.name$request_uri;
}
server {
    #This config is based on https://github.com/daylerees/laravel-website-configs/blob/6db24701073dbe34d2d58fea3a3c6b3c0cd5685b/nginx.conf
    server_name mysite2.name;

     # The location of our project's public directory.
    root /usr/share/nginx/mysite2/live/public/;

     # Point index to the Laravel front controller.
    index           index.php;

    location / {
        # URLs to attempt, including pretty ones.
        try_files   $uri $uri/ /index.php?$query_string;
    }

    # Remove trailing slash to please routing system.
    if (!-d $request_filename) {
            rewrite     ^/(.+)/$ /$1 permanent;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #   # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #   # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param                   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

}

তারপরে ব্রাউজারের একমাত্র আউটপুটটি ছিল লারাভেল ত্রুটি: "ওফফ, দেখে মনে হচ্ছে কিছু ভুল হয়েছে” "

চালাবেন না chmod -R 777 app/storage( দ্রষ্টব্য ) বিশ্ব-লিখনযোগ্য কিছু করা খারাপ সুরক্ষা।

chmod -R 755 app/storage কাজ করে এবং আরও সুরক্ষিত।


1
হ্যাঁ, আপনি ছেলেরা ঠিক বলেছেন; এটি একটি খারাপ ধারণা আমি আমার উত্তর আপডেট করব। লোকেরা স্ট্যাকওভারফ্লো.com
রায়ান

1
আপনার ফোল্ডার গ্রুপকে এনজিনেক্স গ্রুপে অর্থাৎ www-dataডিবিয়ানে পরিবর্তন করার বিকল্প থাকতে পারে । তারপরে ফোল্ডারে এমনকি আরও কঠোর অনুমতি নির্ধারণ করুন: chmod -R 640 app/storageতারপরে chown -R :www-data app/storage। এইভাবে ফাইলগুলি কেবল অ্যাপের মালিক এবং ওয়েব সার্ভারের কাছে দৃশ্যমান। এবং মোটেও কেউ স্টোর করা কোনও (সম্ভবত আপলোড করা) ফাইল সরাসরি চালাতে পারে না। ফাইলগুলি অ্যাক্সেস করার জন্য এনগিনেক্সের কেবল পঠনের অনুমতি প্রয়োজন।
সামঞ্জস্যপূর্ণ

3
নিজের জন্য নোট: আমি শুধু এই nginx 403 পেয়েছিলাম আবার এবং আবার সমস্যা হলো আমি ঘটনাক্রমে বন্ধ করেছিলাম সেখান থেকে ছিল public/উপর root /usr/share/nginx/mysitename/public/;। যোগ public/এবং চলমান পরে service nginx restart, এটি কাজ করে।
রায়ান

জানালা সম্পর্কে কি?
হিমাংশু বানসাল

58

আপনি যদি কেবল ডিরেক্টরি সামগ্রীর ব্যবহারের তালিকাটি চেষ্টা করতে autoindex on;চান তবে:

location /somedir {
       autoindex on;
}

server {
        listen   80;
        server_name  domain.com www.domain.com;
        access_log  /var/...........................;
        root   /path/to/root;
        location / {
                index  index.php index.html index.htm;
        }
        location /somedir {
               autoindex on;
        }
}

9
আমি অবশ্যই চাই না autoindex on; আমার ডিরেক্টরি সামগ্রীর জনগণের কাছে প্রকাশ করা খারাপ ধারণা হবে be
রায়ান

5
@ রায়ান এটি সর্বদা নেমে আসে "আপনি কী করতে চান?"
ভার্গব নানেকালভা

13
এটি পুরোপুরি স্পষ্ট যে তিনি 403 ত্রুটিগুলি মুছে ফেলতে এবং ওয়েব ডিরেক্টরিগুলি সম্পূর্ণ ডিরেক্টরি
সামগ্রীতে

21

আমি ওয়েব পৃষ্ঠায় অনুরূপ ত্রুটি
--- "403 নিষিদ্ধ" এর মুখোমুখি হয়েছি
--- "13: অনুমতি অস্বীকার করা হয়েছে" /var/log/nginx/error.log এ ত্রুটি লগ এ

3 টি পদক্ষেপের নীচে আমার জন্য কাজ করেছে:

1: ওপেন টার্মিনাল, নীচের মত কিছু দেখেছি

user1@comp1:/home/www/

সুতরাং, আমার ব্যবহারকারীর নাম "ব্যবহারকারী 1" (উপরে থেকে)

2: /etc/nginx/nginx.conf এ ব্যবহারকারী পরিবর্তিত হয়েছে

# user www-data;
user user1;

3: nginx পুনরায় লোড

sudo nginx -s reload  

অতিরিক্ত হিসাবে, আমি ফাইল / ফোল্ডারের অনুমতিগুলি প্রয়োগ করেছি (আমি আমার 3 টি পদক্ষেপের আগে)
(আমার ডিরেক্টরিতে 755, / dir1 / বলুন / এবং সেই ডিরেক্টরিতে থাকা ফাইলগুলির জন্য 644):
(আমি নিশ্চিত নই, এই অতিরিক্ত পদক্ষেপটি সত্যই যদি হয় প্রয়োজনীয়, মাত্র 3 ধাপ উপরে হতে পারে):

chmod 755 ./dir1/
chmod 644 ./dir1/*.*

আশা করি এটি দ্রুত কাউকে সহায়তা করে। ভাগ্য সুপ্রসন্ন হোক.


1
ধন্যবাদ ভাই, আমারও একই সমস্যা ছিল, এবং এটি অনুমতিগুলির কারণে হয়েছিল। আমি ফোল্ডার এবং ফাইল অনুমতি সেট করেছি, এবং এখন এটি ঠিকঠাক কাজ করছে।
আলতাফ হুসেন

2
শুনে আমি আনন্দিত (অন্য কিছুকে, আপনার পরিচিত ডোমেইনে, কোনও ফিরতি প্রত্যাশা না করে আপনার ফ্রি সময়ে, সম্ভব হলে)
মনোহর রেড্ডি পোরেডি

শুনে খুশী হলাম এটি।
মনোহর রেড্ডি পোরেডি

10

আসলে আপনার কয়েকটি জিনিস যাচাই করতে হবে। 1. আপনার nginx চলমান স্থিতি পরীক্ষা করুন

ps -ef|grep nginx

ps aux|grep nginx|grep -v grep

এখানে আমাদের পরীক্ষা করা দরকার যে কে এনজিএনএক্স চলছে। ব্যবহারকারী এবং গোষ্ঠী মনে রাখবেন

  1. ফোল্ডারের অ্যাক্সেসের স্থিতি পরীক্ষা করুন

    ls -alt

  2. nginx এর সাথে ফোল্ডারের স্থিতির সাথে তুলনা করুন

(1) যদি ফোল্ডারের অ্যাক্সেসের স্থিতি ঠিক না থাকে

sudo chmod 755 /your_folder_path

(২) যদি ফোল্ডারের ব্যবহারকারী এবং গোষ্ঠী এনজিনেক্সের চলমানগুলির সাথে এক না হয়

sudo chown your_user_name:your_group_name /your_folder_path

এবং nginx এর চলমান ব্যবহারকারীর নাম এবং গোষ্ঠী পরিবর্তন করুন

nginx -h

nginx কনফিগারেশন ফাইলটি কোথায় রয়েছে তা সন্ধান করতে

sudo vi /your_nginx_configuration_file

//in the file change its user and group
user your_user_name your_group_name;

//restart your nginx
sudo nginx -s reload

কারণ এনজিনেক্সের ডিফল্ট চলমান ব্যবহারকারীর কেউ নেই এবং গোষ্ঠী কেউ নেই। যদি আমরা এই ব্যবহারকারী এবং গোষ্ঠীকে লক্ষ্য না করি তবে 403 টি চালু করা হবে।


8

আমার একই সমস্যা ছিল, লগফাইলে আমাকে এই ত্রুটিটি দেখায়:

2016/03/30 14:35:51 [error] 11915#0: *3 directory index of "path_scripts/viewerjs/" is forbidden, client: IP.IP.IP.IP,     server: domain.com, request: "GET /scripts/viewerjs/ HTTP/1.1", host: "domain", referrer: "domain.com/new_project/do_update"

আমি কোডইনিটার ফ্রেমওয়ার্ক সহ একটি পিএইচপি অ্যাপ্লিকেশন হোস্ট করছি। আমি যখন আপলোড হওয়া ফাইলগুলি দেখতে চাই তখন আমি একটি পেয়েছি 403 Error

সমস্যাটি ছিল, এটি nginx.conf সঠিকভাবে সংজ্ঞায়িত হয়নি। পরিবর্তে

index index.html index.htm index.php

আমি শুধুমাত্র অন্তর্ভুক্ত

index index.php

আমার শিকড়টিতে একটি index.php আছে এবং আমি ভেবেছিলাম যে যথেষ্ট ছিল, আমি ভুল ছিল;) ইঙ্গিতটি আমাকে দিয়েছে এনগিনএক্স লাইবারি


থ্যাঙ্কস ম্যান .. আমি একই নৌকো সহ ছিলাম .. আমার ওয়ার্ডপ্রেস কেন কাজ করে না তা নির্ধারণের জন্য আমি কয়েক ঘন্টা ব্যয় করেছি! আমার ওয়ার্ডপ্রেস ইনস্টলেশনটি কাজ করার জন্য include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; index index.html index.htm index.php;
এনগিনেক্সের

6

আপনি এটি এনগিনেক্স নীতিমালার কারণে পেতে পারেন (উদা। "অস্বীকার করুন"), বা আপনি এনগিনেক্সের ভুল কনফিগারেশনের কারণে এটি পেতে পারেন বা ফাইল সিস্টেম বিধিনিষেধের কারণে আপনি এটি পেতে পারেন।

আপনি এটি নির্ধারণ করতে পারেন যদি এটি পরে হয় (এবং সম্ভবত স্ট্রেস ব্যবহার করে কোনও ভুল কনফিগারেশনের প্রমাণ দেখতে পারা যায় (বাদে ওপিতে এর অ্যাক্সেস থাকবে না):

# pidof nginx
11853 11852

# strace -p 11853 -p 11852 -e trace=file -f
Process 11853 attached - interrupt to quit
Process 11852 attached - interrupt to quit
[pid 11853] stat("/var/www/html/kibanaindex.html", 0x7ffe04e93000) = -1 ENOENT (No such file or directory)
[pid 11853] stat("/var/www/html/kibana", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
^CProcess 11853 detached
Process 11852 detached

এখানে আমি পরীক্ষা চালানোর সময় এনজিএনএক্স দ্বারা করা ফাইল সিস্টেমের ক্রিয়াকলাপটি পরীক্ষা করছি (আমার মতো আপনারও ত্রুটি ছিল)।

এখানে আমার কনফিগারেশনের একটি নির্বাচিত অংশ এখানে

    location /kibana/3/ {
        alias /var/www/html/kibana;
        index index.html;
    }

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

    location /kibana/3/ {
        alias /var/www/html/kibana/;
        index index.html;
    }

এর জন্য ধন্যবাদ. আমি জানতাম আমার কাছে কোনও অনুমতি সমস্যা নেই এবং আপনার মন্তব্য আমাকে সমাধান খুঁজতে সহায়তা করেছে। আমি আমার উরফের শেষে একটি "/" যুক্ত করেছি এবং এটি দুর্দান্ত কাজ করে।
kzahel

তুমি আমার হিরো @Cameron কের, আমার অভিজ্ঞতার উপর ভিত্তি করে সমস্যা nginx ওরফে ডিরেক্টরির যেমন খুঁজে পাওয়া যায় ফাইলের জন্য 403 বাড়াতে হয় /home/web/public। এনজিএনএক্স কেন এই সন্ধান পাওয়া যায় না এমন ফাইলগুলিতে অ্যাক্সেস করার চেষ্টা করে কারণ আমি এই লাইনটি সরিয়ে দিতে ভুলে গেছি index index.html index.htm index.nginx-debian.html;কারণ থাটগুলি ফাইলগুলি আমার পাবলিক ডিয়ারের মধ্যে নেই।
আগুং প্রসত্যও

4

দেখে মনে হচ্ছে কিছু অনুমতি সমস্যার মতো।

আপনি মাইসাইট 1 তে অন্যান্য সাইটের মতো করে দিয়েছিলেন এমন সমস্ত অনুমতি সেট করার চেষ্টা করুন।

ডিফল্টরূপে ফাইলের অনুমতিগুলি 644 এবং ডায়ার 755 হওয়া উচিত n এছাড়াও এনজিএনএক্স চালিত ব্যবহারকারীর সেই ফাইল এবং ডায়ার পড়ার অনুমতি আছে কিনা তাও পরীক্ষা করে দেখুন।


3

"লারাভেল" -তে try_filesআপনি যে index.phpপথটির দিকে নির্দেশ করেছেন সেটি পরিবর্তিত করুন এটি এমন কিছু হওয়া উচিত

location / {
    try_files $uri $uri/ /public/index.php$request_uri;
}

এবং "কোডাইনজিটার" প্রকল্পে এটির মতো চেষ্টা করুন

location / {
    try_files $uri $uri/ /public_web/index.php$request_uri;
}

3

যেহেতু আপনি ব্যবহার করছেন php-fpm, আপনার নিশ্চিত হওয়া উচিত যে php-fpmব্যবহারকারীর ব্যবহারকারীর সমান nginx

/etc/php-fpm.d/www.confপিএইচপি ব্যবহারকারী এবং গোষ্ঠীটি nginxতা না থাকলে চেক করে সেট করুন ।

php-fpmব্যবহারকারী লেখার অনুমতির প্রয়োজন।


2

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


1
আমি মনে করি তাঁর কেবল এনজিনেক্স প্রক্রিয়াটি পড়ার অনুমতি প্রয়োজন?

2
location ~* \.php$ {
    ...
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    
}

ডিফল্ট পরিবর্তন করুন

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

প্রতি

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

আমার সমস্যা সমাধান


1
6833#0: *1 directory index of "/path/to/your/app" is forbidden, client: 127.0.0.1, server: lol.com, request: "GET / HTTP/1.1", host: "localhost"    

আমি উবুন্টু 15.10 চালাচ্ছি এবং একটি সাধারণ কারণে 403 নিষিদ্ধ ত্রুটির মুখোমুখি হয়েছি। Nginx.conf (nginx এর জন্য কনফিগারেশন ফাইল), ব্যবহারকারী ছিলেন 'www-ডেটা'। একবার আমি ব্যবহারকারীর নামটি [আমার ব্যবহারকারীর নাম] এ পরিবর্তন করে ফেললাম, এটি অনুমান করে যে এটি আমার ব্যবহারকারীর নামটিতে প্রয়োজনীয় অনুমতিগুলি দেওয়া হয়েছিল তা ধরে নিয়ে কাজ করে। আমার অনুসরণিত পদক্ষেপগুলি:

chmod 755 /path/to/your/app    

আমার কনফিগারেশন ফাইলটি দেখতে এমন দেখাচ্ছে:

**user [my username]**;#I made the change here.
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# SSL Settings
##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;


server {
    listen 80;

    server_name My_Server;

    access_log  /var/log/nginx/access.log;
    error_log  /var/log/nginx/error.log;

    location / {
        proxy_pass         http://127.0.0.1:8000;
        proxy_redirect     off;

        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}
}

1

আমার জন্য সমস্যাটি হ'ল বেস রুট ব্যতীত অন্য কোনও রুট কাজ করছিল, এই লাইনটি যুক্ত করা আমার সমস্যার সমাধান করেছিল:

index           index.php;

সম্পূর্ণ জিনিস:

server {

    server_name example.dev;
    root /var/www/example/public;
    index           index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

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

1

এই সমস্যাটি সমাধান করার জন্য আমি একটি পুরো রাত কাটিয়েছি। এই গল্পে আমার দুটি সেন্ট এখানে,

আপনি পিএইচপি ইন্টারপ্রেটার হিসাবে hhvm ব্যবহার করছেন কিনা তা পরীক্ষা করে দেখুন । তারপরে এটি সম্ভব যে এটি 9000 পোর্টে শোনা যাচ্ছে যাতে আপনাকে আপনার ওয়েব সার্ভারের কনফিগারেশনটি পরিবর্তন করতে হবে।

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


0

আমি আমার সমস্যার সমাধান করেছি, যদি আমি অনুসরণের মতো কনফিগার করি:

location = /login {
    index  login2.html;
}

এটি 403 ত্রুটিটি প্রদর্শন করবে।

[error] 4212#2916: *2 directory index of "D:\path/to/login/" is forbidden

আমি চেষ্টা করেছি autoindex on, কিন্তু কাজ করছি না। যদি আমি এইভাবে আমার কনফিগারটি পরিবর্তন করি তবে এটি কার্যকর হয়।

location = /login/ {
    index  login2.html;
}

আমি মনে করি সঠিক মিল, যদি এটি একটি পাথ একটি ডিরেক্টরি হতে হবে।


0

আপনি যখন ডিরেক্টরি বিকল্প রাখতে চান, আপনি index.phpটিকে $ uri এর আগে রাখতে পারেন।

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