Win7配置Nginx+PHP7

Nginxphp

Nginx有官方native build的32bit版本, 也有cygwin build的64bit版本, 出於穩定性的考慮, 仍是選了官方的32bit.html

解壓, 本例中使用的路徑是 C:\Servers\nginx-1.9.12 , 建立兩個bat, 用於啓動和關閉nginx:mysql

start_nginx.batnginx

@echo off
set NGINX_HOME=C:\Servers\nginx-1.9.12
start /D %NGINX_HOME%\ %NGINX_HOME%\nginx.exe
pause

stop_nginx.batc++

@echo off set NGINX_HOME=C:\Servers\nginx-1.9.12 cd %NGINX_HOME% nginx.exe -s quit pause


PHPweb

選的版本是 7.0.4 64位 NTS(非線程安全) VC14, 本例中解壓至目錄 C:\Servers\php-7.0.4-nts-Win32-VC14-x64 , redis

使用php.ini-development 建立 php.ini, 修改如下幾處, (參考 http://man.chinaunix.net/develop/php/php_manual_zh/html/ini.core.html )sql

date.timezone = Asia/ChongQing
enable_dl = On #容許用戶在運行時加載PHP擴展,即在腳本運行期間加載 cgi.force_redirect = 0 # 啓用時, 防止任何人經過如 http://my.host/cgi-bin/php/secretdir/script.php 這樣的 URL 直接調用 PHP。PHP 在此模式下只會解析已經經過了 web 服務器的重定向規則的 URL. 在大多數 web 服務器中以 CGI 方式運行 PHP 時頗有必要用 cgi.force_redirect 提供安全。PHP 默認其爲 On。能夠將其關閉,但風險自擔。注: Windows 用戶:能夠安全地在 IIS 之下將其關閉,事實上必須這麼作。要在 OmniHTTPD 或 Xitami 之下使用也必須將其關閉。 cgi.fix_pathinfo=1 #1:PHP CGI 以 / 爲分隔符號從後向前依次檢查請求的路徑, 對 CGI 提供了真正的 PATH_INFO/PATH_TRANSLATED 支持。之前 PHP 的行爲是將 PATH_TRANSLATED 設爲 SCRIPT_FILENAME,而無論 PATH_INFO 是什麼。有關 PATH_INFO 的更多信息見 cgi 規格。將此值設爲 1 將使 PHP CGI 修正其路徑以遵照規格。設爲 0 將使 PHP 的行爲和從前同樣。默認爲零。用戶應該修正其腳本使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED。 fastcgi.impersonate = 1 #IIS(在基於 WINNT 的操做系統上)中的 FastCGI 支持模仿客戶端安全令牌的能力。這使得 IIS 可以定義運行時所基於的請求的安全上下文。Apache 中的 mod_fastcgi 不支持此特性(03/17/2002)。若是在 IIS 中運行則設爲 1。默認爲 0。 cgi.rfc2616_headers = 1 #指定 PHP 在發送 HTTP 響應代碼時使用何種報頭。若是設定爲 0,PHP 發送一個 Status: 報頭,Apache 和其它 web server 都支持。若是此選項設定爲 1,PHP 將發送 RFC 2616 兼容的報頭。除非你知道本身在作什麼,不然保留其值爲 0

添加擴展, 修改如下幾處shell

extension_dir = "./ext"
# 指定win7下的擴展目錄
# 並取消用到的擴展前面的註釋

啓動的命令是api

C:\>Servers\php-7.0.4-nts-Win32-VC14-x64\php-cgi.exe -b 127.0.0.1:9000

若是須要後臺啓動PHP CGI, 使用vbs, 建立 startup.vbs

createobject("wscript.shell").run "c:\Servers\php-7.0.4-nts-Win32-VC14-x64\php-cgi.exe -b 127.0.0.1:9000",0,false

中止PHP CGI, 建立shutdown.bat

@echo off
taskkill /fi "imagename eq php-cgi.exe"
pause

 

Nginx 啓用 PHP

修改nginx.conf

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

重啓nginx

注:PHP5.6及如下, 須要將mysql 的 libmysql.dll 拷貝至 C:\Windows\SysWOW64 PHP7貌似已經取消了支持,編譯都沒有了--with-mysql參數,只支持--with-mysqli和--with-pdo-mysql, 故libmysql.dll已經不須要若是提示api-ms-win-crt-runtime-l1-1-0.dll丟失, 請安裝 visual c++ redistributable 2015, 從微軟官網上能夠下載. 安裝對系統的要求必須在win7 sp1以上, 若是win7還未升級的, 安裝會失敗.

相關文章
相關標籤/搜索