आर्क लाइन पर PHP के साथ Nginx सेटअप नहीं कर सकते


2

मैंने कुछ समय के लिए आर्क लिनक्स पर एक LEMP सर्वर (Nginx, PHP, MySQL) स्थापित करने की कोशिश की है, और कुछ अलग ऑनलाइन ट्यूटोरियल की कोशिश की है। हाल ही में मैंने कोशिश की: http://www.adminempire.com/how-to-insta ... mysql-php /।

यह ट्यूट मुझे / etc / nginx / में एक अलग php.conf फ़ाइल बनाने और जोड़ने के लिए कहता है:

location ~ \.(php|html|htm)$ {
  try_files      $uri = 404;
  fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
  fastcgi_index  index.php;
  include        fastcgi.conf;
}

फिर /etc/nginx/nginx.conf में जोड़ें, सर्वर वर्ग के पास: php.copf को शामिल करें;

पहले मुझे गोटो http://localhost, यह सुनिश्चित करने के लिए परीक्षण करने के लिए कि निग्नेक्स चल रहा है, और फिर मैं परीक्षण करता हूं http://localhost/phpinfo.phpऔर मुझे 404 त्रुटि मिलती है, मैंने नेगेंक्स (बिना किसी त्रुटि के) को रोक दिया है, और php-fpm (मैंने अपने सिस्टम को फिर से शुरू किया है) को फिर से शुरू किया है। अभी भी 404 मिल रहा है।

ट्यूटोरियल ने phpinfo.php फ़ाइल /srv/http/phpinfo.php डालने के लिए कहा, लेकिन nginx.conf को देखने पर:

location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
}

इसलिए मैंने /usr/share/nginx/html/phpinfo.php में कोशिश की, और अभी भी एक 404 मिलता है

जवाबों:


4

अपनी /srv/httpनिर्देशिका में, एक phpinfo.phpफ़ाइल बनाएं जिसमें सम्‍मिलित है

<? phpinfo(); ?>

फिर अपनी /etc/nginx/nginx.confफ़ाइल को संशोधित करें

server {
    listen       80;
    server_name  localhost;
    root         /srv/http;

    location / {
        index  index.html index.htm index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include /etc/nginx/fastcgi.conf;
    }
}

अंत में, पुनः आरंभ करें nginxऔर php-fpmनिम्न url का प्रयास करें http://localhost/phpinfo.php और यह काम करना चाहिए!


धन्यवाद, मेरे द्वारा देखे गए ट्यूटोरियल की तुलना में बहुत सरल। पूरी तरह से काम किया।
डैनियल टोबी

1

स्थापना का परीक्षण करने के संबंध में phpinfo(), मैं आपको <?phpशुरुआती ब्रैकेट के लिए उपयोग करने की सलाह देता हूं , क्योंकि <?हो सकता है कि यह हमेशा इस आधार पर काम न करे कि आपका php डिफ़ॉल्ट रूप से कैसे कॉन्फ़िगर हो।

सुनिश्चित करें कि 'रूट' स्पेसिफायर सीधे 'सर्वर' के तहत है, क्योंकि यह डिफ़ॉल्ट कॉन्फिगरेशन में पहले 'लोकेशन' के तहत है।

वेबसाइट के रूट में पथ को शामिल करने के /php/php.iniलिए मुझे विशेषांक के लिए मान को संशोधित करना पड़ा open_basedir

यह आर्क Linux पर php 5.5.13-1, php-fpm 5.5.13-1, और nginx 1.6.0-4 के साथ है।

मेरा नगीन विन्यास:

server {
    listen       80;

    server_name  sitename.domain;

    error_log    /var/log/nginx/error.log info;

    root   /srv/www/sitename;

    location / {
        index  index.html index.htm index.php;
    }

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

मेरा /etc/php/php.ini:

...
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/srv/www/
...

और जब वेब ब्राउज़र के साथ परीक्षण किया जाता है, तो सुनिश्चित करें कि हर बार जब आप URL को php फ़ाइल में पुनः लोड करने का प्रयास करते हैं, तो ब्राउज़र कैश से पुनः लोड न करें, या ब्राउज़र सोचता रहेगा कि आपकी php फ़ाइल एक सादा संग्रहित संसाधन है और वह सहेजने का प्रयास करता रहेगा यह एक नियमित फ़ाइल डाउनलोड की तरह है। यह Chrome / Chromium 34 पर डिफ़ॉल्ट रूप से हो सकता है जब तक कि आपके पास DevTools खुला न हो, और सेटिंग के साथ "अक्षम करें (जबकि DevTools खुला है) सक्षम"। मेरे अनुभव में फ़ायरफ़ॉक्स 24.5 ने php सक्षम होने के परीक्षण के लिए बेहतर काम किया।

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