首頁  >  問答  >  主體

php-nginx - 設定nginx + php + spwan-fcgi,報錯 502 Bad Gateway以及php-fcgi無法啟動

首先我已經設定好了nginx

在linux裡面使用指令 service nginx start,可以啟動,並且登陸localhost可以看到歡迎頁。

然後依照網路上的教學修改default檔案

在修改過程中,我在server中加入了index.php,
root 還是 /usr/share/nginx/html,沒有做改變。

我將/usr/share/nginx/html/index.html 修改成了index.php

當我打開localhost的時候 報502 bad gateway的錯誤。

啟動php-fcgi,顯示child exited with: 127

依照網路上的說法,什麼快取不夠,線程不夠,我都實驗過了。應該不是php-fpm的問題。我在想是不是因為php-fcgi沒有啟動的原因?

黄舟黄舟2691 天前631

全部回覆(4)我來回復

  • 迷茫

    迷茫2017-05-16 17:25:13

    我自問自答一下,說說我的解決方法。
    一樓的答案說的沒錯,但啟動php-cgi不知道為什麼在我的機器上一直不行,於是我下載了spwan-fcgi,是一款管理php-cgi的軟體。
    安裝成功後,輸入指令spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi(其中粗體字要依照自己的位置來修改。 )啟動之後就可以了。
    我現在也不知道為什麼php-fpm無法啟動。 。 。

    回覆
    0
  • 漂亮男人

    漂亮男人2017-05-16 17:25:13

    php-cgi都沒啟動,絕對不行,解決方法就是啟動php-cgi

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 17:25:13

    PHP-FPM是獨立運作的程式,不依賴PHP-CGI.
    PHP-FPM主流程就能管理自己的工作流程,所以也不需要spwan-fcgi.
    Ubuntu/Debian上的安裝方法:

    sudo apt-get install nginx php5-fpm php5-mysqlnd mysql-server
    服务管理:
    sudo /etc/init.d/nginx start|stop|restart
    sudo /etc/init.d/php5-fpm start|stop|restart
    sudo /etc/init.d/mysql start|stop|restart
    配置目录:
    Nginx:   /etc/nginx/
    PHP-FPM: /etc/php5/fpm
    

    設定方法可以參考:
    http://huoding.com/2013/10/23/290

    server {
        listen 80;
        server_name foo.com;
    
        root /path;
        index index.html index.htm index.php;
    
        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }
    
        location ~ \.php$ {
            try_files $uri =404;
            include fastcgi.conf;
            fastcgi_pass 127.0.0.1:9000;
        }
    }
    

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-16 17:25:13

    nginx下php需要使用php-fpm 在編譯php的時候加上

    --enable-fpm

    ,
    然後需要在php的etc目錄下建立php-fpm的設定檔php-fpm.conf(設定參考:http://qiananhua.com/22#title-4)
    接著就可以啟動php-fpm

    /usr/local/php/sbin/php-fpm -t

    回覆
    0
  • 取消回覆