nginx訪問php提示an(nginx運行php)

本文目錄一覽:

我的freebsd系統下Nginx PHP提示出現The page you are looking for is temporarily unavailable錯誤?

1.先檢查PHP FastCGI進程數是否夠用:

netstat -anpo|grep 「php-cgi」|wc -l

如果輸出為0的話,則表示FastCGI 進程數夠大,

2.此時則修改scgi_params文件,找到:

scgi_param SCGI 1;

把它改為:

scgi_param SCGI 5;

3.PHP程序如果的執行時間超過了Nginx的等待時間,就可適當地增加nginx.conf配置文件中FastCGI的timeout時間,例如:

http

{

……

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k

fastcgi_buffers 4 64k

……

}

4.重啟FastCGI

先殺掉進程:# pkill -9 php-cgi

然後重啟:# /usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/local/bin/php-cgi

5.重啟Nginx

先殺掉進程:# killall -9 nginx

然後重啟:# /usr/local/sbin/nginx

其它可能情況:

1)訪問任意PHP文件,出現

The page you are looking for is temporarily unavailable.

Please try again later.

2)訪問html頁面,正常

原因:

nginx不能正常通過FastCGI結果訪問PHP

1)如果是以tcp socket形式,可能是進程用戶權限設置得不對

spawn-fcgi -a 127.0.0.1 -p 9000 -C 2 -u www-data -g www-data -f /usr/bin/php-cgi

可以改為 www-data 或者 nobody, 重啟php-cgi進程

2)如果是unix socket,可能 socket文件權限沒有寫入能力

srwxrwxr-x 1 gavin gavin 0 11-12 10:18 php-fcgi.sock

為其他用戶添加寫入能力

chmod o+w php-fcgi.sock

nginx PHP文件不能正常訪問.

       一般nginx默認配置中會是這個樣子的。這裡有一個SCRIPT_FILENAME變量,但是fastcgi_params這個文件中是不包含該變量的,改變量的定義實際上是在fastcgi.conf文件中。

      實際上可以把配置修改成如下的配置。

location ~ \.php$ {

    root /usr/share/nginx/html;

    fastcgi_pass   127.0.0.1:9000;

    fastcgi_index  index.php;

    fastcgi_intercept_errors on;

    include fast_cgi.conf;

    

    #可以增加rewrite,也可以不增加。

}

      按如上的配置,如果訪問127.0.0.1:9000/a.php,則實際上根據root指令和fast_cgi.conf配置,nginx會通過fast_pass指令訪問/usr/share/nginx/html/a.php這個文件。

      記得用root指令,指定站點的文檔根路徑。

安裝nginx+php後,Php頁面訪問時提示404,但頁面是存在的是怎麼回事?

安裝nginx+php後,Php頁面訪問時提示404,但頁面是存在的,應該是下面的原因造成的:

這個是因為index.html 文件目錄是nginx默認安裝目錄 /usr/local/nginx/html,而info.php 把它放到了 /data/web 下造成的,可以在nginx.conf配置文檔裏面找到相應的問題。

可以按照下面測試更改:

location ~ \.php$ {

root           /data/web;

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

include        fastcgi_params;

}

nginx -t nginx -s reload

nginx+php的運行原理:

nginx的worker進程直接管理每一個請求到nginx的網絡請求。

對於php而言,由於在整個網絡請求的過程中php是一個cgi程序的角色,所以採用名為php-fpm的進程管理程序來對這些被請求的php程序進行管理。php-fpm程序也如同nginx一樣,需要監聽端口,並且有master和worker進程。worker進程直接管理每一個php進程。

關於fastcgi:fastcgi是一種進程管理器,管理cgi進程。市面上有多種實現了fastcgi功能的進程管理器,php-fpm就是其中的一種。php-fpm作為一種fast-cgi進程管理服務,會監聽端口,一般默認監聽9000端口,並且是監聽本機,也就是只接收來自本機的端口請求,所以通常輸入命令netstat -nlpt|grep php-fpm 會得到:

tcp       0      0 127.0.0.1:9000            0.0.0.0:*             LISTEN      1057/php-fpm

這裡的127.0.0.1:9000 就是監聽本機9000端口的意思。

關於fastcgi的配置文件,fastcgi的配置文件一般放在nginx.conf同級目錄下,配置文件形式,一般有兩種:fastcgi.conf  和 fastcgi_params。不同的nginx版本會有不同的配置文件,這兩個配置文件有一個非常重要的區別:fastcgi_parames文件中缺少下列配置:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

可以打開fastcgi_parames文件加上上述行,也可以在要使用配置的地方動態添加,使該配置生效。

當需要處理php請求時,nginx的worker進程會將請求移交給php-fpm的worker進程進行處理,也就是最開頭所說的nginx調用了php,其實嚴格得講是nginx間接調用php。

nginx 反向代理後為什麼訪問php文件 會提示404

在Nginx的配置文件vhost.conf中,加入以下代碼實現rewrite。

若開啟所有規則.則添加如下代碼:

if ($request_filename !~* (.*)\.(css|js|gif|jpg|png|xml))

{

# 修改以下語句中的 /HDwiki 為你的HDwiki目錄地址,如果程序放在根目錄中,請將 /HDwiki 修改為 /

rewrite ^(/HDwiki)/(.*)$ $1/index.php?$2;

}

linux nginx 網站訪問提示502 Bad Gateway怎麼操作?

1、FastCGI進程是否已經啟動

ps aux | grep php

查看是否啟動了php-fpm服務;

2、FastCGI worker進程數是否不夠

運行linux命令:

netstat -anpo | grep 「php-cgi」 | wc -l

判斷是否接近FastCGI進程,接近配置文件中設置的數值,表明worker進程數設置太少;

3、FastCGI執行時間過長

根據實際情況調高以下參數值

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

4、FastCGI Buffer不夠

nginx和apache一樣,有前端緩衝限制,可以調整緩衝參數

fastcgi_buffer_size 32k;

fastcgi_buffers 8 32k;

5、其它原因

出現502的情況太多了,(例如:你服務器目前的配置支撐不了你現有的業務。我有一個朋友服務器是4核8G的,經常一會出現502 Bad Gatewa,又一會正常。CPU和內存經常爆滿接近100%,負載也接近4。最後,配置升級成8核16G後變就變正常了。)遠遠不只是博主所說的這幾種!這幾種只能說是最常用的吧!具體的原因一定要去查看服務器的日誌;

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/129997.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • 如何解決WPS保存提示會導致宏不可用的問題

    如果您使用過WPS,可能會碰到在保存的時候提示「文件中含有宏,保存將導致宏不可用」的問題。這個問題是因為WPS在默認情況下不允許保存帶有宏的文件,為了解決這個問題,本篇文章將從多個…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 金融閱讀器提示配置文件無法識別

    在使用金融閱讀器過程中,有時會遇到提示配置文件無法識別的情況。這種情況通常是由於配置文件中存在錯誤或不完整所導致的。本文將從多個方面對此問題進行詳細的闡述,並提供相應解決方法。 一…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • Java如何從Nginx下載文件

    本文將從以下幾個方面詳細介紹如何使用Java從Nginx下載文件。 一、準備工作 在Java中下載文件需要使用到Apache HttpClient庫,這個庫是一個基於Java的HT…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web服務器。nginx是一個高性能的反向代理web服務器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25

發表回復

登錄後才能評論