導航:首頁 > 編程語言 > nginx調用php

nginx調用php

發布時間:2023-09-09 05:51:47

1. nginx配置支持php

nginx本身不支持php解析,需要配合php-fpm來配置。

location~.php${
root/var/www;#指定php的根目錄
fastcgi_pass127.0.0.1:9000;#php-fpm的默認埠是9000
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includefastcgi_params;
}

centos下安裝php-fpm (php及其它組件已經安裝過的情況)

yuminstallphp-fpm

啟動php-fpm 並設置開機啟動 (centos 7)

systemctlstartphp-fpm
systemctlenablephp-fpm

2. 雲伺服器如何配置nginx支持php

[root@redhat7 ~]# wget http://am1.php.net/get/php-7.1.2.tar.gz/from/this/mirror
[root@redhat7 ~]# tar xzvf php-7.1.2.tar.gz
[root@redhat7 ~]# cd php-7.1.2/
[root@redhat7 ~]# ./configure --prefix=/usr/local/php --enable-fpm
[root@redhat7 php-7.1.2]# make&&make install
查看是否成功編譯安裝PHP
[root@redhat7 php-7.1.2]# php -v
PHP 7.1.2 (fpm-fcgi) (built: Apr 14 2017 20:21:53)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

編譯安裝完成後PHP不具備配置文件php.ini,此時只需復制php.ini-proction到 /usr/local/lib/php.ini即可,php.ini文件一般在/usr/local/lib/和/etc目錄下

[root@localhost php-7.1.2]# cp php.ini-proction /usr/local/lib/php.ini
[root@redhat7 php]# /usr/local/php/sbin/php-fpm
[14-Apr-2017 20:59:49] ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)
[14-Apr-2017 20:59:49] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
[14-Apr-2017 20:59:49] ERROR: FPM initialization failed
啟動php-fpm發現缺乏配置文件/usr/local/php/etc/php-fpm.conf
此時只需復制php-fpm的配置文件在安裝php時提供的配置文件的模版/usr/local/php/etc/php-fpm.conf.default到相應/usr/local/php/etc/php-fpm.conf即可

[root@redhat7 etc]# /usr/local/php/sbin/php-fpm
[14-Apr-2017 21:14:32] WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/﹡.conf' from /usr/local/php/etc/php-fpm.conf at line 125.
[14-Apr-2017 21:14:32] ERROR: No pool defined. at least one pool section must be specified in config file
[14-Apr-2017 21:14:32] ERROR: failed to post process the configuration
[14-Apr-2017 21:14:32] ERROR: FPM initialization failed

[root@redhat7 etc]# cp php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

[root@redhat7 etc]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
[root@redhat7 etc]# /etc/init.d/php-fpm
[14-Apr-2017 21:23:02] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
[14-Apr-2017 21:23:02] ERROR: FPM initialization failed
[root@redhat7 etc]# netstat -nldp|grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3721/php-fpm: maste
[root@redhat7 php-7.1.2]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# chmod a+x /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# ll /etc/init.d/php-fpm
-rwxr-xr-x 1 root root 2401 4月 14 21:26 /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# /etc/init.d/php-fpm start
Starting php-fpm [14-Apr-2017 21:28:09] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
[14-Apr-2017 21:28:09] ERROR: FPM initialization failed
failed
[root@redhat7 php-7.1.2]# netstat -nldp |grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3721/php-fpm: maste
[root@redhat7 php-7.1.2]# kill 3721
[root@redhat7 php-7.1.2]# netstat -nldp |grep 9000
[root@redhat7 php-7.1.2]# /etc/init.d/php-fpm start
Starting php-fpm done
[root@redhat7 php-7.1.2]# service php-fpm status
php-fpm (pid 3927) is running...
[root@redhat7 php-7.1.2]# chkconfig --add php-fpm
[root@redhat7 php-7.1.2]# chkconfig php-fpm --level 345 on

配置nginx支持PHP
修改nginx的配置文件,支持php文件的解析,找到location的添加位置,在後面添加下面這個location
location ~ .php$ {
root /usr/share/nginx/html; #指定php的根目錄
fastcgi_pass 127.0.0.1:9000;#php-fpm的默認埠是9000
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

3. 一台機linux器裝nginx一台裝PHP,怎麼能夠用nginx訪問php頁面

nginx通過fastcgi模式調用另一台的php解釋器,然後將php程序執行後的結果傳給nginx,nginx再輸出就可以了

4. 怎麼在nginx中運行php文件

nginx本身不能處理php,它只是個web伺服器,當接收到請求後,如果是php請求,則發給php解釋器處理,並把結果返回給客戶端。
nginx一般是把請求發fastcgi管理進程處理,fascgi管理進程選擇cgi子進程處理結果並返回給nginx本文以php-fpm為例介紹如何使nginx支持php.

5. php和nginx之間是如何工作的

Nginx+php-fpm實現原理 Nginx本身不會對PHP進行解析,終端對PHP頁面的請求將會被Nginx交給FastCGI進程監聽的IP地址及埠,由php-fpm作為動態解析伺服器處理,最後將處理結果再返回給nginx。其實,Nginx就是一個反向代理伺服器。Nginx通過反向代理功能將動態請求轉向後端php-fpm,從而實現對PHP的解析支持,這就是Nginx實現PHP動態解析的原理。 Nginx不支持對外部程序的直接調用或者解析,所有的外部程序(包括PHP)必須通過FastCGI介面來調用。FastCGI介面在Linux下是socket(這個socket可以是文件socket,也可以是ip socket)。為了調用CGI程序,還需要一個FastCGI的wrapper(wrapper可以理解為用於啟動另一個程序的程序),這個wrapper綁定在某個固定socket上,如埠或者文件socket。當Nginx將CGI請求發送給這個socket的時候,通過FastCGI介面,wrapper接收到請求,然後派生出一個新的線程,這個線程調用解釋器或者外部程序處理腳本並讀取返回數據;接著,wrapper再將返回的數據通過FastCGI介面,沿著固定的socket傳遞給Nginx;最後,Nginx將返回的數據發送給客戶端。
當nginx接收到一個http請求時,通過配置文件找到對應的server。然後匹配server中的所有location,找到最匹配的。而在location中的命令會啟動不同的模塊去完成工作,比如rewrite模塊、index模塊。因此在nginx中模塊可以看作真正的勞動工作者。nginx的模塊是被編譯到nginx中的,屬於靜態方式。啟動nginx時,模塊被自動載入。

6. mac配置php-fpm,nginx運行多版本php

1、brew 安裝 php5.6 php5.7 nginx

2、配置php-conf

3、配置虛擬主機

安裝好brew

用brew 命令安裝,如果速度太慢或訪問不了,自行goole brew 換源

brew search php  查看可用的php版本

brew install [email protected]  安裝php5.6

brew install [email protected] 安裝php5.6

brew install nginx       安裝nginx

1、修改php5.6 php-fpm的埠為9056

    cd usr/local/etc/php/5.6 # 到php5.6的目錄下

    vi    php-fpm.conf # 修改文件

        listen = 127.0.0.1:9056  # 修改此埠

        daemonize = yes # 修改為允許後台啟動php-fpm

2、修改php5.6 php-fpm的埠為9070

    cd /usr/local/etc/php/7.1/php-fpm.d # 到php7.1的目錄下

    vi www.conf # 修改埠

        listen = 127.0.0.1:9056  # 修改此埠    

    vi    php-fpm.conf  # 修改文件

         daemonize = yes # 修改為允許後台啟動php-fpm

3、啟動php-fpm

    cd /usr/local/sbin # 到此目錄,建立兩個軟鏈接指向不同版本的php

切換到root用戶

./php-fpm56 

./php-fpm71

啟動後可看到php-fpm的進程,則成功

ps-ef | grep php-fpm

cd /usr/local/etc/nginx/  # 到nginx的目錄下

復制默認的配置文件到server下(此目錄用來存虛擬主機文件)

這里我在server創建了這兩個

vi local.phpinfo56.com.conf # 修改本地域名和nginx代理到php-fpm埠,按照這種方法修改另一個

nginx # 啟動nginx

nginx -s reload # 修改配置文件,重新載入nginx

vi /etc /hosts  # 修改host 加上映射關系

cd  /usr /local/var/www # 在此目錄下建立一個index.php

echo "<?php phpinfo();" > index.php

在瀏覽器訪問可看到

7. 如何nginx啟動php伺服器

安裝
PHP

nginx
後,無法解析
PHP
文件。
其中,PHP

nginx
的編譯安裝
configure
如下:
#
PHP
5.3.9
./configure
--prefix=/usr/local/php
--
enable-fpm
#
nginx
1.0.11
./configure
--prefix=usr/local/nginx
#
成功安裝後,創建
php-fpm.conf
配置文件,刪除
nginx.conf
中「pass
the
PHP
scripts
to
FastCGI
server
listening
on
127.0.0.1:9000」部分的注釋
cd
/usr/local/php/etc
mv
php-fpm.conf.default
php-fpm.conf
vi
/usr/local/nginx/conf/nginx.conf
#
刪除如下部分的注釋,保存退出

閱讀全文

與nginx調用php相關的資料

熱點內容
java的webxml配置 瀏覽:957
如何封包遠程注入伺服器 瀏覽:860
監測機構資金動向源碼 瀏覽:961
android狀態欄字體50 瀏覽:763
python如何判斷文件後綴 瀏覽:125
龍空app哪裡下 瀏覽:348
阿里雲伺服器搭建網盤 瀏覽:689
京東軟體程序員 瀏覽:805
php游戲伺服器框架 瀏覽:391
導航開發演算法 瀏覽:430
為什麼30歲還想轉行程序員 瀏覽:380
推薦演算法的使用 瀏覽:40
javaswing表格 瀏覽:470
sql和python處理excel 瀏覽:107
家用材料製作解壓玩具 瀏覽:912
c盤解壓失敗可以用空間嗎 瀏覽:466
3d循環音樂哪個app好 瀏覽:770
壓縮文件zip怎麼解壓不了 瀏覽:392
如何看蘋果appstore軟體是否收費 瀏覽:463
android發送字元串 瀏覽:14