1. 程式人生 > 實用技巧 >windows下php與niginx配置

windows下php與niginx配置

寫在前面

因為需要配置伺服器的時候很少,所以老記不住,這次參考簡書文章(https://www.jianshu.com/p/40106c58f353),回顧了一下,順便做個筆記(下次偷懶)。
nginx是反向代理,所以需要利用php的fastcgi作為真實的web伺服器。即nginx下php是以FastCGI的方式執行,所以我們php要下載非執行緒安全版本。

1、下載nginx和php

不多說,直接放官方下載地址
php下載地址
ngin下載地址

2、nginx使用

下載了nginx直接解壓點選裡面的nginx.exe檔案即可執行。此時位址列輸入http://127.0.0.1或http://localhost,看到“welcome to nginx”,就說明已經成功了。

3、php的使用

php的話,解壓後找到php.ini-development檔案,複製一份在當前目錄並且重新命名為php.ini。
將php.ini中的“;cgi.fix_pathinfo=1”的分號去掉,即開啟此配置

4、nginx和php配合,測試執行

1.配置
開啟nginx的conf資料夾下的nginx.config,找到該部分(fastcgi_pass 127.0.0.1:9000;表示cgi執行在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;
#}

將前面的“#”全部去除,並將以下兩個語句修改為:

fastcgi_index 專案根目錄路徑(例如D:\development\php);
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

並將root html;改為root 專案根目錄路徑(例如D:\development\php);,然後儲存

2.建立測試檔案
在專案根目錄路徑(例如D:\development\php)新建test.php,並輸入

<?php
phpinfo();
?>

3.在cmd模式下,進入到php解壓檔案的根目錄下,執行以下命令,用來開啟cgi
php-cgi.exe -b 127.0.0.1:9000 -c php.ini

4.位址列輸入http://127.0.0.1/test.php或者http://localhost/test.php
得到php的各項資訊介面

5、快速啟動

因為每次手動開啟都很麻煩,而且cgi開啟的話cmd會一直開著,所以用RunHiddenConsole來簡化。
下載解壓後,會有兩個bat批處理檔案和一個exe檔案,bat處理檔案可以自己改寫也可以用以下的:

啟動的批處理(start.bat)

REM REM是bat檔案的註釋類似於php的//
REM 設定不輸出命令
@ECHO off
REM 設定Nginx和php-cgi的目錄
SET php_home=E:/php/php-7.2/
SET nginx_home=E:/nginx/nginx-1.18.0/

REM 輸出狀態
ECHO Starting PHP FastCGI...
REM 啟動php-cgi -b 埠 -c php.ini位置
REM %php_home%為獲取上面set的php_home的值
RunHiddenConsole %php_home%php-cgi.exe -b 127.0.0.1:9000 -c %php_home%php.ini
REM 輸出狀態
ECHO Starting nginx...
REM 啟動Nginx -p Nginx的根目錄
RunHiddenConsole %nginx_home%nginx.exe -p %nginx_home%

關閉的批處理(stop.bat)

@ECHO off
ECHO Stopping nginx...  
REM 結束程序 /F 強制終止 /IM 指定的程序 
TASKKILL /F /IM nginx.exe
ECHO Stopping PHP FastCGI...
TASKKILL /F /IM php-cgi.exe
REM 關閉視窗
EXIT

建好後雙擊啟動的批處理檔案即可快速啟用php-cgi和nginx