本文目錄一覽:
- 1、如何在Nginx下配置PHP程序環境
- 2、kubernetes 啟用 PHP + Nginx 網頁環境
- 3、如何在windows下搭建Nginx+MySQL+PHP環境
- 4、Win7搭建nginx+php+mysql開發環境,可是PHP文件無法解釋?
- 5、如何正確配置Nginx + PHP
- 6、如何搭建Nginx+PHP環境
如何在Nginx下配置PHP程序環境
Linux 系統 php 在編譯的時候 可以選擇開啟php-fpm 這個模塊就是支持Nginx 的。也可以加入支持apache的模塊 apx2 ,php編譯成功之後,Nginx建立虛擬主機的配置文件 只需要加入php的解析模塊就可以了。
kubernetes 啟用 PHP + Nginx 網頁環境
傳統安裝方式進行安裝步驟較多,使用kubernetes可以實現快速啟用環境,在測試或者線上都可以做到 快速 啟用
如何在windows下搭建Nginx+MySQL+PHP環境
第一步:在D盤建立文件夾Nginx+php+Mysql,路徑為:D:\Nginx+php+Mysql
第二步:安裝Nginx,安裝目錄為:D:\Nginx+php+Mysql\nginx
1.打開D:\Nginx+php+Mysql\nginx目錄,運行該文件夾下的nginx.exe
2.測試是否啟動nginx。打開瀏覽器訪問 或 ,看看是否出現「Welcome to nginx!」,出現的證明已經啟動成功了。
若啟動不成功,查看是否埠被佔用。
安裝PHP,安裝目錄為:D:\Nginx+php+Mysql\php
安裝mySQL,安裝目錄為: D:\Nginx+php+Mysql\mysql
第三步:修改Nginx的conf文件:目錄為D:\Nginx+php+Mysql\nginx\conf
文件名為:nginx.conf
1. 去掉worker_processes前的#號,開啟一個進程
2. 添加events
3. 設置http-設置server-支持php
Win7搭建nginx+php+mysql開發環境,可是PHP文件無法解釋?
開發環境建議使用集成環境,比如寶塔或者小皮,不建議非運維搭建環境
如何正確配置Nginx + PHP
先上配置的過程,下面是解釋。
1.首先,我們有必要先了解一下Nginx配置文件里指令的繼承關係:
Nginx配置文件分為好多塊,常見的從外到內依次是「http」、「server」、「location」等等,預設的繼承關係是從外到內,也就是說內層塊會自動獲取外層塊的值作為預設值。
讓我們先從「index」指令入手吧
在問題配置中它是在「location」中定義的:
一旦未來需要加入新的「location」,必然會出現重複定義的「index」指令,這是因為多個「location」是平級的關係,不存在繼承,此時應該在「server」里定義「index」,藉助繼承關係,「index」指令在所有的「location」中都能生效。
2.接下來看看「if」指令
說它是大家誤解最深的Nginx指令毫不為過:
很多人喜歡用「if」指令做一系列的檢查,不過這實際上是「try_files」指令的職責:
try_files $uri $uri/ /index.php;
除此以外,初學者往往會認為「if」指令是內核級的指令,但是實際上它是rewrite模塊的一部分,加上Nginx配置實際上是聲明式的,而非過程式的,所以當其和非rewrite模塊的指令混用時,結果可能會非你所願。
3.下面看看「fastcgi_params」配置文件
include fastcgi_params;
Nginx有兩份fastcgi配置文件,分別是「fastcgi_params」和「fastcgi.conf」,它們沒有太大的差異,唯一的區別是後者比前者多了一行「SCRIPT_FILENAME」的定義:
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
注意:$document_root 和 $fastcgi_script_name 之間沒有
/。
原本Nginx只有「fastcgi_params」,後來發現很多人在定義「SCRIPT_FILENAME」時使用了硬編碼的方式,於是為了規範用法便引入了「fastcgi.conf」。
不過這樣的話就產生一個疑問:為什麼一定要引入一個新的配置文件,而不是修改舊的配置文件?這是因為「fastcgi_param」指令是數組型的,和普通指令相同的是:內層替換外層;和普通指令不同的是:當在同級多次使用的時候,是新增而不是替換。換句話說,如果在同級定義兩次「SCRIPT_FILENAME」,那麼它們都會被發送到後端,這可能會導致一些潛在的問題,為了避免此類情況,便引入了一個新的配置文件。
此外,我們還需要考慮一個安全問題:在PHP開啟「cgi.fix_pathinfo」的情況下,PHP可能會把錯誤的文件類型當作PHP文件來解析。如果Nginx和PHP安裝在同一台伺服器上的話,那麼最簡單的解決方法是用「try_files」指令做一次過濾:
try_files $uri =404;
4.下面就是如何配置的過程:
如何搭建Nginx+PHP環境
1、首先需要準備的應用程序包。
nginx:nginx/Windows-1.0.4
php:php-5.2.16-nts-Win32-VC6-x86.zip (nginx下php是以FastCGI的方式運行,所以我們下載非線程安全也就是nts的php包)
(還會用到)RunHiddenConsole:RunHiddenConsole.zip
2、安裝與配置。
1)php的安裝與配置。
直接解壓下載好的php包,到D盤wnmp目錄(D:\wnmp),這裡把解壓出來的文件夾重命名成php5。進入文件夾修改php.ini-recommended文件為php.ini,並用Editplus或者Notepad++打開來。找到
extension_dir = “./ext”
更改為
extension_dir = “D:/wnmp/php5/ext”
往下看,再找到
;extension=php_mysql.dll
;extension=php_mysqli.dll
前面指定了php的ext路徑後,只要把需要的擴展包前面所對應的「;」去掉,就可以了。這裡打開php_mysql.dll和php_mysqli.dll,讓php支持mysql。當然不要忘掉很重要的一步就是,把php5目錄下的libmysql.dll文件複製到C:\Windows目錄下,也可以在系統變數裡面指定路徑,當然這裡我選擇了更為方便的方法^_^。
到這裡,php已經可以支持mysql了。
接下來我們來配置php,讓php能夠與nginx結合。找到
;cgi.fix_pathinfo=1
我們去掉這裡的封號。
cgi.fix_pathinfo=1
這一步非常重要,這裡是php的CGI的設置。
2)nginx的安裝與配置。
把下載好的nginx-1.0.4的包同樣解壓到D盤的wnmp目錄下,並重命名為nginx。接下來,我們來配置nginx,讓它能夠和php協同工作。進入nginx的conf目錄,打開nginx的配置文件nginx.conf,找到
location / {
root html;#這裡是站點的根目錄
index index.html index.htm;
}
將root html;改為root D:/wnmp/www;
再往下,找到
複製代碼
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
複製代碼
先將前面的「#」去掉,同樣將root html;改為root D:/wnmp/www;。再把標記為紅色的/scripts改為「$document_root」,這裡的「$document_root」就是指前面「root」所指的站點路徑,這是改完後的:
複製代碼
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root D:/wnmp/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
複製代碼
保存配置文件,就可以了。
nginx+php的環境就初步配置好了,來跑跑看。我們可以輸入命令
來啟動php,並手動啟動nginx,當然也可以利用腳本來實現。
首先把下載好的RunHiddenConsole.zip包解壓到nginx目錄內,RunHiddenConsole.exe的作用是在執行完命令行腳本後可以自動關閉腳本,而從腳本中開啟的進程不被關閉。然後來創建腳本,命名為「start_nginx.bat」,我們在Notepad++里來編輯它
複製代碼
@echo off
REM Windows 下無效
REM set PHP_FCGI_CHILDREN=5
REM 每個進程處理的最大請求數,或設置為 Windows 環境變數
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI…
RunHiddenConsole D:/wnmp/php5/php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/php5/php.ini
echo Starting nginx…
RunHiddenConsole D:/wnmp/nginx/nginx.exe -p D:/wnmp/nginx
複製代碼
再另外創建一個名為stop_nginx.bat的腳本用來關閉nginx
@echo off
echo Stopping nginx…
taskkill /F /IM nginx.exe nul
echo Stopping PHP FastCGI…
taskkill /F /IM php-cgi.exe nul
exit
做好後,是這樣的
這樣,我們的服務腳本也都創建完畢了。雙擊start_nginx.bat看看進程管理器是不是有兩個nginx.exe的進程和一個php-cgi.exe的進程呢?
這樣nginx服務就啟動了,而且php也以fastCGI的方式運行了。
到站點目錄下,新建一個phpinfo.php的文件,在裡面編輯
?php
phpinfo();
?
保存後,打開瀏覽器輸入「」,如果看到
就說明,nginx+php的環境已經配置好了,呵呵~
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/309043.html