Nginx फ़ाइलों को डाउनलोड करने के बजाय उन्हें निष्पादित करने के बजाय .php फ़ाइलें परोसता है


151

मैं एक छोटी बूंद (डिजिटल महासागर) में एक वेबसाइट स्थापित कर रहा हूं। मैं ठीक से PHP के साथ NGINX स्थापित करने के लिए एक मुद्दा है। मैंने एक ट्यूटोरियल किया https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04 लेकिन जब मैं कुछ चलाने की कोशिश नहीं करता .php फ़ाइल यह केवल इसे डाउनलोड कर रहा है ... उदाहरण के लिए ... http://5.101.99.123/info.phpयह काम कर रहा है लेकिन ... अगर मैं मुख्य पर http://5.101.99.123जाता हूं तो यह मेरी index.php डाउनलोड कर रहा है: /

कोई उपाय?

-rw-r--r--  1 agitar_user www-data   418 Jul 31 18:27 index.php
-rw-r--r--  1 agitar_user www-data    21 Aug 31 11:20 info.php

मेरा / etc / nginx / साइट-उपलब्ध / डिफ़ॉल्ट

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/html;
        index index.html index.htm index.php;

        # Make site accessible from http://localhost/
        server_name agitarycompartir.com;

               location ~ \.php$ {
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #               # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #               # With php5-cgi alone:
    #               fastcgi_pass 127.0.0.1:9000;
    #               # With php5-fpm:
                    fastcgi_pass unix:/var/run/php5-fpm.sock;
                    fastcgi_index index.php;
                    include fastcgi_params;
            }


              location / {

                    try_files $uri $uri/ =404;
                    # Uncomment to enable naxsi on this location
                    # include /etc/nginx/naxsi.rules
            }

... अन्य "स्थान" टिप्पणी की गई है (#)


4
हां ... आपने Nginx के साथ PHP-FPM को सही तरीके से सेट नहीं किया है। हालांकि यह सब हम आपको बता सकते हैं, क्योंकि आपने हमें अपना कोई भी विन्यास नहीं दिखाया है ।
ब्रैड

आप कौन सी फाइल देखना चाहते हैं? धन्यवाद @Brad
Apeiron

आप जिस भी फाइल (या फाइल) में अपना कॉन्फिगर डालते हैं। वह प्रासंगिक हिस्सा ... जहां आप अपने नगीन कॉन्फिग में PHP-FPM सेट करते हैं।
ब्रैड

2
गुग्लिंग के एक घंटे के बाद इस askubuntu.com/a/601996/89455 को मिला - यदि आपके पास कैश को साफ़ करने से पहले खराब कॉन्फ़िगरेशन था - यहाँ काम किया!
tm_lv

1
समान प्रश्न / उत्तर PHP7 के लिए stackoverflow.com/q/42664080/287948 पर देखें
पीटर

जवाबों:


131

इसे इस्तेमाल करे:

  1. संपादित करें /etc/nginx/sites-available/default

  2. Ncomx को पोर्ट 80 IPv4 और IPv6 पर सुनने के लिए, दोनों की बिनती सुनो।

    listen   80; ## listen for ipv4; this line is default and implied
    listen   [::]:80 default_server ipv6only=on; ## listen for ipv6
  3. server_nameअकेला छोड़ दो

    # Make site accessible (...)
    server_name localhost;
  4. जोड़े index.phpको indexलाइन

    root /usr/share/nginx/www;
    index index.php index.html index.htm;
  5. टिप्पणी हटाएं location ~ \.php$ {}

    # pass the PHP scripts to FastCGI server listening on (...)
    #
    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    
            # With php5-cgi alone:
            #fastcgi_pass 127.0.0.1:9000;
            # With php5-fpm:
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }
  6. संपादित करें /etc/php5/fpm/php.iniऔर सुनिश्चित करें cgi.fix_pathinfoकि सेट किया गया है0

  7. नग्नेक्स और php5-fpm को पुनः आरंभ करें sudo service nginx restart && sudo service php5-fpm restart


मैंने अभी एक हफ्ते पहले लिनक्स का उपयोग करना शुरू किया है, इसलिए मुझे वास्तव में इस पर आपकी मदद करने की उम्मीद है। मैं फ़ाइलों को संपादित करने के लिए नैनो पाठ संपादक का उपयोग कर रहा हूं। अगर आपके पास नहीं है तो एन्टो-गेट स्थापित नैनो चलाएं। अधिक जानने के लिए इस पर Google


14
service nginx restart && service php5-fpm restart
ड्यूक

8
nginx -s reload
ड्यूक

2
PHP7-fpm के साथ है: सेवा php7.0-fpm पुनः आरंभ
एलेक्स

1
@ जोय, आपके सुझाव की कोशिश की लेकिन यह काम नहीं किया। Fastcgi_pass यूनिक्स का उपयोग करना था: /run/php/php7.0-fpm.sock;
jdstaerk

1
Php7.2 के लिए: (एक और घोंसले के शिकार में ) unix:/var/run/php5-fpm.sock;परिवर्तित करेंunix:/var/run/php/php7.2-fpm.sock;/php
ओलेग रेम जूल

50

Nginx सर्वर पर php फ़ाइलों को निष्पादित करने के लिए आपको इसे / etc / nginx / साइट्स-सक्षम / डिफ़ॉल्ट में जोड़ना होगा:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

SCRIPT_FILENAME क्या है?
एमपीआर

2
यदि आप PHP 7.0 का उपयोग कर रहे हैं, तो यह सही है:fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
एंड्रयू फॉक्स

1
@ AndrewFox- मेरी फ़ाइल नाम है php7.0-fpm.pidऔर न php7.0-fpm.sockमें /var/run/php/ क्या मतलब है?
विस्कॉन्सिन

@vsync इसे आज़माएँ। sudo service php7.0-fpm restart। यदि जुर्राब याद आ रहा है तो यह इंगित करता है कि php प्रक्रिया चलाई जा रही है।
जिस्म

1
@Pathros - मैंने पाया कि वर्डप्रेस (मेरे मामले में) के पास एक अन्य फ़ोल्डर में सर्वर कॉन्फिग फाइल है, और उन लोगों को संपादित करने की आवश्यकता थी/etc/nginx/conf.d/wordpress_https.conf
vsync

43

मुझे इसी तरह की समस्या थी जिसे ब्राउज़र कैश को खाली करने से हल किया गया था (विभिन्न ब्राउज़र के साथ ठीक काम भी किया गया था)।


5
मुझे लगता है कि पुनरारंभ और गुप्त मोड ने मेरी मदद की। हम कर सकते हैं noobness के लिए एक टन धन्यवाद।
स्वप्निल म्हस्के

4
बहुत बहुत धन्यवाद। आपने मेरा दिन बचाया) यह भी +1 गुप्त के लिए!
एडी

3
यह मेरे लिए बनाया, यह भी घंटे के बाद सुझाव दिया अन्य समाधान का एक बहुत कोशिश कर रहा है।
क्लेग

1
यह मेरे लिए अजीब था कि मेरी साइट ने IE और क्रोम पर काम किया जबकि मोज़िला में इसे निष्पादित करने के लिए साइट को डाउनलाइड किया। यह मोज़िला का कैश दोष था।
विक्टर जोरास

3
आपने मेरा समय बचा लिया भाई।
अमीर कफ्तरी

12

Nginx config / etc / nginx / sites-available / default या अपनी config फाइल अपडेट करें

यदि आप php7 का उपयोग कर रहे हैं तो इसका उपयोग करें

    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;      
    }

यदि आप php5 का उपयोग कर रहे हैं तो इसका उपयोग करें

    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }

पूरी जानकारी विस्तार के लिए यहाँ पर जाएँ


मैंने कोशिश की कि यह मेरे लिए काम नहीं करता, मैं ubuntu 14.04 और php 7.0 का उपयोग कर रहा हूं मैं इस मुद्दे को कैसे ठीक कर सकता हूं?
किशोर

उपरोक्त साझा लिंक "पूर्ण विवरण" टूट गया है
किशोर

क्या मतलब है include snippets/fastcgi-php.conf;?
तिमो

9

मैं ऊपर बहुत सारे समाधान देखता हूं और कई ने मेरे लिए सही ढंग से काम किया है, लेकिन मुझे समझ नहीं आया कि वे क्या कर रहे थे और कोड को चिपकाते हुए चिंतित थे, विशेष रूप से, फास्टगि । तो यहाँ मेरे 2 सेंट हैं,

  1. nginx एक वेब सर्वर है (और एप्लिकेशन सर्वर नहीं है ) और इस प्रकार, यह केवल स्थैतिक पृष्ठों की सेवा कर सकता है।
  2. जब भी, हम .php फ़ाइल को रेंडर करने / वापस करने का प्रयास करते हैं, उदाहरण के लिए index.php, nginx को नहीं पता कि क्या करना है, क्योंकि यह सिर्फ .php फ़ाइल (या उस मामले के लिए कोई चुनिंदा के अलावा कोई एक्सटेंशन नहीं समझ सकता है)। जैसे .html, .js आदि जो स्टैटिक फाइल्स हैं)
  3. इस प्रकार अन्य प्रकार की फ़ाइलों को चलाने के लिए हमें कुछ ऐसी चीज़ की आवश्यकता होती है जो कि नगीनक्स और एप्लिकेशन (यहाँ php एप्लीकेशन) के बीच में बैठती है। यह वह जगह है जहाँ कॉमन गेटवे इंटरफ़ेस (CGI) आता है। यह एक सॉफ्टवेयर का टुकड़ा है जो इस संचार का प्रबंधन करता है। CGI को किसी भी संभावित भाषा Python (uWSGI), PHP (FPM) और यहां तक ​​कि C. FastCGI में भी लागू किया जा सकता है, जो मूल रूप से CGI का उन्नत संस्करण है, जो CGI से बहुत अधिक तेज़ है।

कुछ के लिए, अपाचे जैसे सर्वर, PHP की व्याख्या करने के लिए समर्थन में बनाया गया है और इस तरह एक CGI की कोई आवश्यकता नहीं है।

यह डिजिटल महासागर लिंक , FPM को अच्छी तरह से स्थापित करने के चरणों की व्याख्या करता है और मैं php फ़ाइलों के मुद्दे को हल करने के लिए आवश्यक चरणों को नहीं लिख रहा हूं क्योंकि प्रतिपादन के बजाय डाउनलोड किया जा रहा है क्योंकि अन्य जवाब IMHO बहुत अच्छा है।


अच्छा समझानेवाला। धन्यवाद।
जॉन

1
nginx एक वेब सर्वर है जो ब्राउज़र नहीं है, कृपया इसे ठीक करें।
जीकोड

8

मेरे पास एक ही मुद्दा था और किसी भी जवाब से समस्या हल नहीं हुई।

मैं भागा:

sudo nginx -t

/ etc / nginx / sites-available / default पर कॉन्फ़िग फ़ाइल का परीक्षण करने के लिए।

इसने मुझे ये त्रुटियां दीं:

nginx: [emerg] unexpected end of file, expecting "}" in /etc/nginx/sites-enabled/default:115
nginx: configuration file /etc/nginx/nginx.conf test failed

इसलिए मैं कॉन्फिग फाइल में गया और आखिरी लाइन पर था

#}

मैंने अनफिट किया, फिर से टेस्ट कमांड चलाया और यह काम किया


समस्या को ठीक करने के लिए सलाह के अलावा टेस्ट-कमांड सिंटैक्स को शामिल करना अच्छा है।
ग्रेबर्ड

7

इसने मेरे लिए काम किया।

1) MyApp फ़ाइल

vi / etc / nginx / sites-available / myApp

server {
  listen 80;
  listen [::]:80;

  root /var/www/myApp;
  index index.php index.html index.htm;

  location ~ \.php$ {
      try_files $uri =404;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass unix:/run/php/php7.0-fpm.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
      }
}

PHP5 उपयोगकर्ता

परिवर्तन

fastcgi_pass unix:/run/php/php7.0-fpm.sock;

सेवा

fastcgi_pass unix:/var/run/php5-fpm.sock;

2) cgi.fix_pathinfo कॉन्फ़िगर करें

Cgi.fix_pathinfo को 0 पर सेट करें

स्थान:

PHP5 /etc/php5/fpm/php.ini

PHP7 /etc/php/7.0/fpm/php.ini


3) सेवाओं को पुनरारंभ करें

एफ पी एम

PHP5 sudo service php5-fpm restart

php7 sudo service php7.0-fpm restart

nginx

sudo service nginx restart

fastcgi_pass unix: /run/php/php7.0-fpm.sock; गलत है। यह /var/run/php/php7.0-fpm.sock होना चाहिए; और आपको निर्दिष्ट php संस्करण को अपडेट करने की ज़रूरत है जो आपने स्थापित किया है, उदाहरण के लिए: /var/run/php/php7.2-fpm.sock;
वनअल्बर्ट

4

मेरे लिए यह ?$query_stringनीचे की तरह /index.php के अंत में जोड़ने में मदद करता है :

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

3

यदि प्रस्तावित उत्तरों में से कोई भी काम नहीं कर रहा है, तो यह प्रयास करें:

1. में www.conf आदि / php5 / fpm / pool.d:

listen = 127.0.0.1:9000;(delete all line contain listen= )

2. usr / स्थानीय / nginx / conf में उपसर्ग nginx.conf:

remove server block server{} (if exist) in block html{} because we use server{} in default (config file in etc/nginx/site-available) which was included in nginx.conf.

3. आदि / nginx / साइट-उपलब्ध में डिफ़ॉल्ट फ़ाइल को ठीक करें

location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; }

4. नार्टेक्स सेवा प्रदान करें

sudo सेवा nginx पुनरारंभ

5. पीएचपी सेवा प्रदान करें

सेवा php5-fpm पुनः आरंभ

6.Enjoy

/ Usr / share / nginx / html में कोई भी php फ़ाइल बनाएं और "server_name / file_name.php" में चलाएं (server_name आपके कॉन्फिग पर निर्भर है, normaly लोकलहोस्ट है, file_name.php उस फाइल का नाम है जो / usr / share / nginx में बनाई गई है / html)।

मैं Ubuntu 14.04 का उपयोग कर रहा हूं


2

ऊपर दिए गए जवाब से मुझे जो समाधान मिला, उसके लिए बहुत अधिक टिप्पणी करना उचित था। यह मेरी फ़ाइल की तरह दिखाई देती है:

/ Etc / nginx / साइटों से उपलब्ध / डिफ़ॉल्ट

location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}

आशा है कि यह कुछ लोगों को मदद करता है जो रविवार दोपहर को निराश होते हैं (सी:


2
server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/html;
    index index.php index.html index.htm;

    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }
}

उपरोक्त स्निपेट्स ने मेरे लिए php7.2 के मामले में काम किया


1

किसी के लिए PHP 7 के साथ एक ही समस्या है, यह वही है जो मैंने nginx को निष्पादित करने के लिए किया php फ़ाइलों को ठीक से CentOS 7 में, किसी की समस्या के मामले में यहाँ पोस्ट किया गया है:

  • डिजिटल महासागर पर इस दस्तावेज़ को चरण-दर-चरण का पालन करें ।

  • खोलें /etc/nginx/conf.d/default.conf(डिफ़ॉल्ट रूप से मेरे पास साइट-सक्षम और न ही साइट-उपलब्ध नहीं हैं, आप तदनुसार संपादित कर सकते हैं)।

  • locationनीचे दिए गए पैरामीटर को संपादित करें :

default.conf :

location ~ \.php$ {
    try_files $uri =404;
    #fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

    #instruct nginx execute php7 files instead download them :D
    fastcgi_pass unix:/var/run/php-fpm/www.sock;

    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}
  • Nginx और PHP सेवाओं को पुनरारंभ करें sudo systemctl restart php-fpmऔर sudo systemctl restart nginx

  • अंतिम लेकिन सबसे महत्वपूर्ण, स्पष्ट ब्राउज़र कैश या में चल रहा है incognito (Chrome)या Private Browsing (Firefox)आदि ...

आशा है कि यह उपयोगी और खुश कोडिंग


1

मेरा समाधान जोड़ना था

    location ~ \.php$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;

मेरे कस्टम कॉन्फ़िगरेशन फ़ाइल के लिए, उदाहरण के लिए etc/nginx/sites-available/example.com.conf

/etc/nginx/sites-available/defaultमेरे लिए काम नहीं करने के लिए जोड़ना ।


1

मेरा मामला मैं उपयोग नहीं कर /etc/nginx/sites-available/defaultरहा था मैं एक अलग सर्वर ब्लॉक कॉन्फ़िगरेशन फ़ाइल (उदाहरण example.com) का उपयोग कर रहा था, और जिस तरह से मैं इस समस्या को ठीक करने में सक्षम था वह डिफ़ॉल्ट सर्वर ब्लॉक कॉन्फ़िगरेशन फ़ाइल प्रतीकात्मक लिंक को हटाकर है:

$ rm /etc/nginx/sites-enabled/default

फिर पुन: लोड कर रहा है Nginx:

$ sudo systemctl reload nginx

1

मैंने इस कोड के साथ अब अपनी समस्या हल कर ली (अपना आईपी बदलें):

location / {
access_log off;
    log_not_found  off;
    client_max_body_size    2000m;
    client_body_buffer_size 512k;
    proxy_buffering on;
    proxy_send_timeout 300s;
    proxy_read_timeout 300s;
    proxy_buffer_size 64k;
    proxy_buffers 32 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    proxy_connect_timeout 300s;
    proxy_http_version 1.1;
    proxy_set_header Range "";
    proxy_pass   https://123.123.123.123:444;
    proxy_set_header   Host   $host;
    proxy_set_header   X-Real-IP  $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_redirect     off;
}

0

मेरे लिए Ubuntu 16.04 के साथ काम किया और php7 इस लाइन को हटा रहा था

fastcgi_split_path_info ^(.+\.php)(/.+)$;

इसने उसके बाद php फाइल्स डाउनलोड करना बंद कर दिया।


0

/ Etc / nginx / साइट्स-उपलब्ध / डिफ़ॉल्ट में .php स्थान .com

sudo vi / etc / nginx / साइट्स-उपलब्ध / डिफ़ॉल्ट:

location ~ \.php$ {
            include snippets/fastcgi-php.conf;

            # With php5-cgi alone:
    #       fastcgi_pass 127.0.0.1:9000;
            # With php5-fpm:
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

0

अगर कुछ और आपकी मदद नहीं करता है। और हो सकता है कि इससे पहले आपने apache2 को info.php परीक्षण फ़ाइल के साथ स्थापित किया हो। लोकलहोस्ट के लिए बस स्पष्ट ऐप डेटा (कैश, कुकी)।


0

अपने nginx config फ़ाइल एक्सटेंशन की जांच करें * .conf।
उदाहरण के लिए: /etc/nginx/conf.d/myfoo.conf

मुझे भी वही स्थिति मिली। के बाद मैं अपने config फ़ाइल myfoo से myfoo.conf करने के लिए नाम बदलें, यह तय हो गया। नाम बदलने के बाद नंगेक्स को पुनः आरंभ करना न भूलें।


0

सबसे पहले आपको Remove cacheअपने ब्राउज़र में होना चाहिए

फिर टर्मिनल खोलें और निम्न कमांड चलाएँ:

sudo apt-get install php-gettext
sudo nano /etc/nginx/sites-available/default

फिर defaultफ़ाइल में निम्न कोड जोड़ें :

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    server_name localhost;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

यदि कोई भी मिसमैच सिर्फ करेक्शन करता है और निगंक्स को टर्मिनल से निम्न कमांड द्वारा रीस्टार्ट करता है

sudo systemctl पुनरारंभ नग्नेक्स

फिर ब्राउज़र पर जाएं और आनंद लें ...


0

मेरे लिए यह पंक्ति थी: fastcgi_pass unix: /var/run/php5-fpm.sock;

जिसे बस होना था: fastcgi_pass unix: /run/php5-fpm.sock;


0

मैं इसे ठीक करने के लिए मानसिक रूप से जाने की कोशिश कर रहा था, मेरे लिए मुद्दा यह था कि Cloudflare ने php फ़ाइल को कैश कर दिया था और मुझे इसे बनाना जारी रखा था।

मेरे लिए यह तय था कि मैं क्लाउडफ्लेयर पर कैश को शुद्ध करूं।


शायद आप हमें बताना चाहते हैं कि कैसे?
थोरस्टेन स्टैक

0

मुझे एक ही समस्या हो रही थी कि यह क्या हल किया गया था इस सर्वर ब्लॉक में अन्य ब्लॉक के ऊपर भी यह ब्लॉक है यदि आपके पास सीएसएस नहीं लोडिंग मुद्दे हैं। जिसे मैंने अपनी साइटों-उपलब्ध गोपनीय फ़ाइल में जोड़ा है।

location ~ [^/]\.php(/|$) {
fastcgi_split_path_info  ^(.+\.php)(/.+)$;
fastcgi_index            index.php;
fastcgi_pass             unix:/var/run/php/php7.3-fpm.sock;
include                  fastcgi_params;
fastcgi_param   PATH_INFO       $fastcgi_path_info;
fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

0

तो यह वही है जो मेरे मामले में आखिरकार नियमों को फिर से लिखने के रूप में काम करता है जहां अपराधी
मैंने नग्नेक्स फिर से लिखे नियमों को बदल दिया है।

   location /vendors { rewrite ^/vendors/?$ /vendors.php break; } 

हो जाता है ...

  location /vendors { rewrite ^/vendors/?$ /vendors.php last; }

अंतिम कीवर्ड के बिना , अनुरोध पुनः आरंभ नहीं हुआ, इसलिए यह .phpस्थान खंड से कभी नहीं टकराया , और केवल एक डाउनलोड के रूप में व्याख्या की गई थी -


0

एक रिकॉर्ड के लिए, मैंने पाया कि मेरा php-fpm नहीं चल रहा था और मैंने इसे ठीक कर लिया service php7.2-fpm stop


0

जाँच करने के लिए एक और बात: यदि आपने HTTPS एक्सेस सेट किया है PHP स्थापित से पहले स्थापना की है - मैंने सर्टिफिकेट का उपयोग किया है - आपको दो बार / etc / nginx / sites- उपलब्ध / डिफ़ॉल्ट में परिवर्तन करने की आवश्यकता होगी क्योंकि दो होंगे सर्वर ब्लॉक (पोर्ट 80 पर एक सुन रहा है और एक पोर्ट 443 पर सुन रहा है)।

(मैं इस सर्वर को प्राथमिक रूप से ईमेल के लिए सेट कर रहा था और PHP के लिए कोई उपयोग नहीं था, जब मैंने पहली बार nginx को केवल अधिक आसानी से सर्टिफिकेट चलाने के तरीके के रूप में स्थापित किया था।)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.