標籤:
首先裝載php1、從www.php.net上下載php對應版本2、解壓之後放到c盤下(其實放哪無所謂,Apache會有配置指向,但是Nginx不用)3、因為用的5.3.17版本,已經有了php-cgi.exe這個,不用做其他的事情所以開始更改php的配置,先把php.ini-development這個檔案更名為php.ini,也有的版本ini後面跟的是別的,都改成.ini4、開啟php.ini檔案,修改:配置:extension_dir = "這裡寫你的ext檔案夾路徑" ;這個路徑是指向擴充庫的路徑upload_tmp_dir = "這裡寫你的上傳緩衝目錄" ;上傳圖片之類的緩衝這裡session.save_path = "這裡寫你的session緩衝目錄" ;這個是以檔案形式儲存sission,如果以資料庫儲存session則需要另外配置 開啟以下擴充:extension=php_curl.dllextension=php_gd2.dllextension=php_mbstring.dllextension=php_mysql.dllextension=php_mysqli.dllextension=php_pdo_mysql.dllextension=php_pdo_odbc.dllextension=php_pdo_sqlite.dllextension=php_xmlrpc.dll 定義所在時區(本人定義的是上海時區):date.timezone = Asia/Shanghai 由於Nginx要求cgi方式的php,還要修改以下配置enable_dl = Oncgi.force_redirect = 0cgi.fix_pathinfo=1fastcgi.impersonate = 1cgi.rfc2616_headers = 1
配置Nginx:1、從http://nginx.org上下載Nginx,總之從官網上下個,不管官網是不是改地址了,貌似1.3.7版本沒有分32位還是64位。2、解壓之後放c盤下(放別處應該也成,習慣了……)3、開啟conf,更改nginx.conf開啟log目錄:error_log logs/error.log;更改其他配置server { listen 8080;#因為裝了Apache已經佔用了80介面 server_name localhost; charset utf-8;#預設檔案編碼 #charset koi8-r; #access_log logs/host.access.log main; location / { root d:/nginxWeb;#這裡改成你自己的虛擬目錄,注意!Nginx1.3.7及以下版本不支援檔案路徑中間有空格也不支援中文!!!這個以上的版本不知道會不會支援,不過這個以下是不支援的……雖然Apache支援啊…… index index.html index.htm index.php;#注意這裡添加了index.php,如果沒有添加這個有可能報403錯誤,這個是win下的,linux或者其他系統是否會有此問題未知。autoindex on;#如果檔案不存在,列出分類樹結構 } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_pass 127.0.0.1:9000;#fastcgi監聽的連接埠,與php的cgi啟動時指定的要一致 fastcgi_index index.php;#預設首頁 fastcgi_param SCRIPT_FILENAME D:/nginxWeb$fastcgi_script_name;#啟動路徑,這裡只需要將“D:/nginxWeb”這部分改為你的安裝路徑就可以了 include fastcgi_params; } # deny access to .htaccess files, if Apache‘s document root # concurs with nginx‘s one # #location ~ /\.ht { # deny all; #} } 運行:1、先要運行起php的cgi,由於本人用的win7系統,所以cmd先進的c盤(之前全扔c盤這就簡單了~),訪問到php路徑中,輸入php-cgi.exe -b 127.0.0.1:9000注意這裡的-b 127.0.0.1:9000是指定cgi的監聽連接埠,與上文中的Nginx配置要一致,如果有其他配置不記得之前php-cgi是那個連接埠,可以使用php-cgi.exe -h命令來查看配置(查看-b 後面的<address:port>)。想要查看所有被監聽的連接埠則輸入netstat -na 2、運行Nginx另開啟一個終端,訪問到nginx檔案夾下,輸入nginx.exe 保持兩個終端不關閉,訪問由瀏覽器訪問虛擬目錄下的檔案。
運行後自動關閉cmd的方法:1、下載RunHiddenConsole.exe(http://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip)2、建立start_php.bat,來啟動php,檔案內容如下:@echo off
echo Starting PHP FastCGI...
RunHiddenConsole.exe d:\php\php-cgi.exe -b 127.0.0.1:9000 -c d:\php\php.ini3、建立stop_nginx.bat,來關閉php和nginx進程,檔案內容如下:@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit
相關問題:1、403錯誤:在nginx.conf中的index配置未加入index.php是導致403錯誤的其中一個原因2、cmd中運行Nginx.exe產生錯誤可能是Nginx的路徑中有中文、特殊符號、空格——雖然windows允許這樣命名,但是nginx會報錯(如之前吐槽的,Apache可以,為什麼Apache要把精力放在允許空格和中文作路徑上而不是改善其他的啊……費解),還有可能是Nginx的虛擬路徑中儲存了中文名稱的檔案,也可能導致nginx無法運行。3、Nginx可以運行並並且解析HTML但是無法解析PHP,這個時候要看php-cgi.exe是否起來了,還要看nginx.conf中的監聽連接埠和php-cgi的監聽連接埠是否一致,如同上文配置中寫到的,有很多方法查看。
Nginx+php+fastcgi在win7下的配置