導航:首頁 > 編程語言 > nginxphpfpm啟動

nginxphpfpm啟動

發布時間:2024-04-18 07:46:05

linux怎麼快速安裝nginx和php,不用安裝資料庫

Linux下如果要搭建nginx和php環境,需要安裝三個軟體包:

nginx,php,php-fpm

比如說如果是centos的話:

yuminstallnginxphpphp-fpm

可能軟體包名有差別,這個查查就知道了。

然後配置nginx,修改nginx.conf,如果用sock就這樣寫,如果是埠就些埠:

location~.php${
fastcgi_passunix:/var/run/php-fpm/php-fpm.sock;
fastcgi_indexindex.php;
includefastcgi.conf;
}

然後啟動服務,以centos7為例:

systemctlstartnginx
systemctlstartphp-fpm

Ⅱ 瑙e喅nginx+php-fpm鏃犳硶涓婁紶鏂囦歡闂棰

瑙e喅鍔炴硶
location ~ .php$ {
root /var/www/html/public;
client_max_body_size 50M;
client_body_temp_path /tmp;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
闄勶細涓嶈佹壘浜嗭紝緗戜笂璇寸殑寰堝氭垜閮借瘯榪!涓鐩存彁紺篎irebug 杈懼埌浜 Post 璇鋒眰澶у皬闄愬埗
淇鏀筆HP.ini涓璸ost_max_size upload_max_filesize max_execution_time max_input_time
鎵撳紑php.ini鏂囦歡錛屼慨鏀瑰畬姣曞悗閲嶅惎鏈嶅姟鍣ㄣ傛祴璇曚笅涓婁紶鏂囦歡銆傘傘傘(鍢誨樆錛屾槸涓嶆槸浼犱笂浜嗗緢澶х殑鏂囦歡?)
1銆佹枃浠朵笂浼犳椂瀛樻斁鏂囦歡鐨勪復鏃剁洰褰曘傚繀欏繪槸 PHP 榪涚▼鎵鏈夎呯敤鎴峰彲鍐欑殑鐩褰曘傚傛灉鏈鎸囧畾鍒 PHP 浣跨敤緋葷粺榛樿ゅ紁hp.ini鏂囦歡涓璾pload_tmp_dir鐢ㄦ潵璇存槑PHP涓婁紶鐨勬枃浠舵斁緗鐨勪復鏃剁洰褰曘
瑕佹兂涓婁紶鏂囦歡錛屽緱淇濊瘉鏈嶅姟鍣ㄦ病鏈夊叧闂涓存椂鏂囦歡鍜屾湁瀵規枃浠跺す鐨勫啓鏉冮檺
2銆乵ax_execution_time
鍙橀噺max_execution_time璁劇疆浜嗗湪寮哄埗緇堟㈣剼鏈鍓峆HP絳夊緟鑴氭湰鎵ц屽畬姣曠殑鏃墮棿錛屾ゆ椂闂翠互縐掕$畻銆傚綋鑴氭湰榪涘叆浜嗕竴涓鏃犻檺寰鐜鐘舵 鏃舵ゅ彉閲忛潪甯告湁鐢ㄣ傜劧鑰岋紝褰撳瓨鍦ㄤ竴涓闇瑕佸緢闀挎椂闂村畬鎴愮殑鍚堟硶媧誨姩鏃(渚嬪備笂浼犲ぇ鍨嬫枃浠)錛岃繖欏瑰姛鑳戒篃浼氬艱嚧鎿嶄綔澶辮觸銆傚湪榪欐牱鐨勬儏鍐典笅蹇呴』鑰冭檻灝嗘ゅ彉閲忓煎 鍔狅紝浠ラ伩鍏峆HP鍦ㄨ剼鏈姝e湪鎵ц屾煇浜涢噸瑕佽繃紼嬬殑鏃跺欏皢鑴氭湰鍏抽棴銆
淇鏀逛負錛歮ax_execution_time =800
3銆乫ile_uploads = On(鍘熸潵闂寮灝變笉鐢ㄨ劇疆浜)
4銆乽pload_max_filesize =2M淇鏀逛負800M
5銆佸悓琛ㄥ崟鎻愪氦鐩稿叧鐨勪竴涓鍙橀噺鏄痯ost_max_size錛屽畠灝嗘帶鍒跺湪閲囩敤POST鏂規硶榪涜屼竴嬈¤〃鍗曟彁浜や腑PHP鎵鑳藉熸帴鏀剁殑鏈澶ф暟鎹閲忋備技涔庝笉澶 鍙鑳介渶瑕佸皢榛樿ょ殑8 MB鏀瑰緱鏇村ぇ銆傜浉鍙嶏紝搴斿綋閫傚綋灝嗗叾闄嶅埌鏇翠負瀹為檯鐨勬暟鍊箋備絾濡傛灉甯屾湜浣跨敤PHP鏂囦歡涓婁紶鍔熻兘錛屽垯闇瑕佸皢姝ゅ兼敼涓烘瘮upload_max_filesize榪 瑕佸ぇ銆
涔熶慨鏀逛負錛歱ost_max_size =900M
6銆乵ax_input_time
姝ゅ彉閲忓彲浠ヤ互縐掍負鍗曚綅瀵歸氳繃POST銆丟ET浠ュ強PUT鏂瑰紡鎺ユ敹鏁版嵁鏃墮棿榪涜岄檺鍒躲傚傛灉搴旂敤紼嬪簭鎵榪愯岀幆澧冨勫湪浣庨熼摼璺涓婏紝鍒欓渶瑕佸炲姞姝ゅ間互閫傚簲鎺ユ敹鏁版嵁鎵闇鐨勬洿澶氭椂闂.
淇鏀逛負錛歮ax_input_time =900
7銆乵emory_limit =10M
涓轟簡閬垮厤姝e湪榪愯岀殑鑴氭湰澶ч噺浣跨敤緋葷粺鍙鐢ㄥ唴瀛橈紝PHP鍏佽稿畾涔夊唴瀛樹嬌鐢ㄩ檺棰濄傞氳繃memory_limit鍙橀噺鏉ユ寚瀹氬崟涓鑴氭湰紼嬪簭鍙浠ヤ嬌鐢ㄧ殑鏈澶у唴瀛樺歸噺
鍙橀噺memory_limit鐨勫(涓嶈佽秴鍑烘湇鍔″櫒鍐呭告渶澶у)
淇鏀逛負錛歮emory_limit =128M

Ⅲ PHP nginx閰嶇疆榛戝悕鍗

寰堟槑鏄撅紝浣犵殑nginx閰嶇疆鏂囦歡絎38琛屽啓閿欎簡銆
鍙鑳芥槸鍐欓敊鏂囦歡鍚嶆垨鑰呮槸鍐欓敊璺寰勪簡銆

濡傛灉闇瑕佽繘涓姝ュ府鍔╃殑璇濊鋒埅鍥句笂鏉ャ

雲伺服器如何配置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;
}

Ⅳ nginx和php-fpm之間是怎樣通信的

FastCGI原理
FastCGI是一個運用於Http Server和動態腳本語言間通信的介面,多數流行的Http Server都支持FastCGI,包括Apache、Nginx和lighttpd等。同時,FastCGI也被許多腳本語言支持,其中就有PHP。
FastCGI介面方式採用C/S結構,可以將HttP伺服器和腳本解析伺服器分開,同時在腳本解析伺服器上啟動一個或者多個腳本解析守護進程。當HttP伺服器每次遇到動態程序時,可以將其直接交付給FastCGI進程來執行,然後將得到的結果返回給客戶端。這種方式可以讓HttP伺服器專一地處理靜態請求或者將動態腳本伺服器的結果返回給客戶端,這在很大程度上提高了整個應用系統的性能。

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 簡單配置
location ~ \.php$ {
root /home/admin/web/nginx/html/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/admin/web/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

閱讀全文

與nginxphpfpm啟動相關的資料

熱點內容
韓國十大禁止播放片 瀏覽:365
養貓解壓視頻大全集 瀏覽:737
隱私圖片保存文件伺服器什麼查看 瀏覽:493
etc命令全稱 瀏覽:157
海神號真實結局 瀏覽:898
收母的都市 瀏覽:47
網頁能直接看的那種 瀏覽:695
python獲取目錄名 瀏覽:379
利用冰箱壓縮機給空調抽真空 瀏覽:902
法國啄木鳥有哪些作品 瀏覽:553
法國阿爾法公司電影有哪些 瀏覽:669
工商銀行app哪裡能體現出名字 瀏覽:885
如何把手機app添加到車載 瀏覽:648
十部經典籃球教練小說 瀏覽:193
最美壁紙安卓叫什麼 瀏覽:477
達虎電影網最新官網 瀏覽:878
python就業形勢 瀏覽:434
自製解壓游戲手工 瀏覽:498
m1代碼編譯 瀏覽:679
華為怎麼安裝安卓app 瀏覽:553