PHP को nginx पर सक्षम करने का सबसे आसान तरीका क्या है?


130

Ubuntu 12.04 पर nginx पर PHP को सक्षम करने का सबसे आसान तरीका क्या है?

सबसे अच्छा समाधान वह है जो न्यूनतम काम का अनुरोध करता है, आदर्श रूप से सिर्फ एक पैकेज स्थापना :)

जवाबों:


141

निम्न विधि आपको उबंटू 12.04 पर तेजी से शुरू हो जाएगी:

निर्भरता स्थापित करें:

sudo apt-get install php5-common php5-cli php5-fpm

Nginx स्थापित करें:

sudo apt-get install nginx

शुरू करें:

sudo service nginx start

परीक्षण करें कि यह काम कर रहा है (देखना चाहिए "nginx में आपका स्वागत है!")

sudo service nginx stop

अपने nginx साइट कॉन्फ़िगरेशन (/ etc / nginx / साइट्स-उपलब्ध / डिफ़ॉल्ट) में, सर्वर {} अनुभाग में लाइन को संशोधित करें

index index.html index.htmको index index.php index.html index.htm

सर्वर {} सेक्शन के साथ शुरू होने वाली लाइनों को अनलॉक करें

listen ipv4 / ipv6 दोनों के लिए।

नीचे स्क्रॉल करें, जहां यह कहता है कि "स्थान ~ .php {" और अनलमिटेशन लाइनें इसलिए यह इस तरह दिखता है:

location ~ \.php$ {
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi_params;
}

sudo service php5-fpm restart sudo service nginx restart

आपका डिफ़ॉल्ट वेब रूट / usr / share / nginx / www (प्रति फ़ाइल के अनुसार) में स्थित है। (देखroot /usr/share/nginx/www;

(नोट: उबंटू 12.10 या नए के लिए, आप को बदलने के लिए की आवश्यकता होगी fastcgi_pass 127.0.0.1:9000;यह काम करने के लिए इस के साथ लाइन: fastcgi_pass unix:/var/run/php5-fpm.sock;)


1
एक लेट साइड नोट के रूप में, आप 12.04 बना सकते हैं जैसे 12.10+ की तरह UNIX सॉकेट का उपयोग करें /etc/php5/fpm/pool.d/www.confऔर सुनने की लाइन को एडिट और बदलकर listen = /var/run/php5-fpm.sock, फिर लाइन @ThomasW का उपयोग करें। उल्लेख किया।
पॉवरलॉर्ड

@Powerlord NGINX डिफ़ॉल्ट सेटअप में दोनों पंक्तियाँ हैं और दोनों के बीच के अंतर को बताते हैं, बजाय इसके कि PHP कैसे चलती है इसे बदलने के लिए आप बस NGINX में कॉन्फ़िगरेशन लाइन को तेजी से बदल सकते हैं, और सभी काम करते हैं।
थॉमस वार्ड

@ThomasW। एनजीआईएनएक्स ने 12.04 में दोनों लाइनों के सेटअप के विवरण को भी गलत बताया है। php5-fpm को 12.04 में php5-fpm कैसे कॉन्फ़िगर किया गया है, इस कारण से पहली विधि की आवश्यकता है। यह 12.10 तक दूसरी विधि में नहीं बदला। दस्तावेज के रूप में nginx के साथ php5-fpm काम करने के लिए, आपको मेरे पिछले संदेश में उल्लिखित fpm के www.conf को संशोधित करना होगा।
पॉवरलॉर्ड

@Powerlord आप सही हैं यह एक समस्या है, जिसे डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल में प्रलेखन को बदलकर ठीक किया जा सकता है। इस बग को देखें जो मैंने इस मुद्दे पर बनाया है । मुझे अभी तक बगफिक्स प्रस्तावित करने का मौका नहीं मिला है।
थॉमस वार्ड

1
यह मेरे लिए ubuntu 14.04 पर काम नहीं कर रहा है। nginx कहता है "एक त्रुटि हुई, जिस पृष्ठ को आप ढूंढ रहे हैं वह नहीं मिला है", क्या करना है?
user3459110

46

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


Papashou के जवाब वर्ष Ubuntu 12.04 पर सही है। Ubuntu 12.10 के बाद से, कॉन्फ़िगरेशन थोड़ा अलग है। मैंने जो किया था यह रहा:

इंस्टॉल करें I

sudo apt-get install nginx php5-fpm

PHP सक्षम करें

कॉन्फ़िगरेशन फ़ाइल में निम्न पंक्तियों को रद्द करें /etc/nginx/sites-available/default

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;
}

प्रारंभ (या पुनरारंभ करें)

sudo service php5-fpm restart
sudo service nginx restart

परीक्षा nginx

इस लिंक http://localhostको खोलने पर "nginx में आपका स्वागत है!"

परीक्षा php

एक php फ़ाइल बनाएँ:

  • लक्ष्य पथ का आउटपुट है

    awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default
    

    जैसे /usr/share/nginx/www

  • इसके info.phpसाथ एक फ़ाइल लिखें :

    echo '<?php phpinfo(); ?>' | \
        sudo tee /usr/share/nginx/www/info.php
    

    या वन-लाइनर के रूप में

    echo '<?php phpinfo(); ?>' | \
        sudo tee "$(awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default)/info.php"
    

खुलने http://localhost/info.phpपर PHP जानकारी पृष्ठ प्रदर्शित करना चाहिए।


3
इसके लिए धन्यवाद। यहां एक और उपयोगी लिंक दिया गया है: digitalocean.com/community/tutorials/… । और ध्यान दें कि यदि आप MySQL को स्थापित करना चाहते हैं, तो आपको apt-get install php5-mysql(MySQL को स्थापित करने के अलावा) चलाने की भी आवश्यकता होगी ।
मैट ब्राउन ने

1
उबंटू 16 के लिए उपरोक्त लेख का एक नया संस्करण है: digitalocean.com/community/tutorials/…
Matt Browne
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.