1、mysql的下載和安裝
這個可參考我另外一篇文章:http://www.cnblogs.com/myIvan/p/9265645.html
2、php的下載和配置修改
下載地址:https://windows.php.net/download
根據自己項目需求下載對應的版本,不過下載時要注意,因為有多個版本
x64代表電腦位數為64,x86代表電腦位數為32位,這個不用多說。
需要注意另外一個區別 thread safe (線程安全) 和 non thread safe(線程不安全),這是因為php有兩種運行方式 ISAPI 和 FastCGI 。
常見的apache 采用ISAPI 模式,及把php當成一個模塊加載,需要選擇線程安全的;
另外一些IIS、nginx采用FastCGI方式運行php,需要選擇線程不安全的。
由於我的電腦是64位,且這里使用nginx,所以可以直接下載這一個:

下載完后解壓到指定位置,然后修改配置文件:
將php.ini-development文件復制一份 命名為php.ini 然后修改里面幾個內容:

根據需要打開拓展

修改時區
3、nginx的下載安裝及配置
下載地址:http://nginx.org/en/download.html

根據需求下載對應版本,建議下載穩定版1.14.0版本及以下

修改配置文件nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root "C:/Program Files/WNMP/nginx1.13/html";
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root "C:/Program Files/WNMP/nginx1.13/html";
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_connect_timeout 600;
#fastcgi_send_timeout 600;
#fastcgi_read_timeout 600;
#fastcgi_buffer_size 256k;
#fastcgi_buffers 16 256k;
#fastcgi_busy_buffers_size 512k;
#fastcgi_temp_file_write_size 512k;
include fastcgi_params;
}
}
#加載配置文件 多個站點時用
include servers/*.conf;
}
配置多個站點,則在servers目錄里添加

server {
listen 10000;
server_name xxxxxx;
index index.php index.htm index.html;
#根目錄
root C:/Users/defaultuser0/Mydata/apiproject/public;
#nginx訪問日志
access_log "C:/Program Files/WNMP/nginx1.13/logs/access_proxy3.log";
#nginx錯誤日志
error_log "C:/Program Files/WNMP/nginx1.13/logs/error_proxy3.log";
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
location ~ .*.(js)$ {
add_header Cache-Control no-store;
}
location ~\.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_buffers 16 256k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
4、redis的下載及配置
官網上應該找不到windows版本,要去github上找,為了方便,我這里分享一下
下載地址:鏈接: https://pan.baidu.com/s/11egPdrnmIqe7vOIdVvJ-NQ 密碼: 7g49
里面有多個版本供選擇。
隨便一個版本,解壓后應該是這樣這個目錄結構:

配置redis redis.windows.conf文件


然后就可以到命令行輸入:./redis-server.exe redis.windows.conf 啟動redis服務;

另外打開一個窗口連接用redis客戶端進行連接:

這樣就連接成功了,如果設置了密碼可能會要求輸入密碼。
推薦一個redis可視化連接工具:redis-desktop-manager
下載地址:鏈接: https://pan.baidu.com/s/1e_DVgnb6FigyMGuguoDPKA 密碼: p3xm
5、自定義開啟關閉腳本start.bat stop.bat
建議將php nginx redis的目錄添加進系統環境變量,方便后面使用。
現在各項都准備好了,怎么啟動,由於nginx跟apache執行php的方式不一樣,所以這里有些麻煩,需要單獨啟動php,再啟動nginx。
php-cgi -b 127.0.0.1:9000
nginx啟動直接執行nginx.exe文件即可
不過這樣啟動后,一定不能關掉cmd窗口。
分享一個工具:RunhiddenConsole 隱藏掉窗口啟動;下載地址:鏈接: https://pan.baidu.com/s/1a8og8143MaPNmo083f347A 密碼: dt46
將這個工具的目錄也添加進環境變量,下面就可以寫一個這樣額啟動關閉腳本了:start.bat
@echo off rem 啟動FastCGI echo Starting PHP FastCGI... RunHiddenConsole "C:/Program Files/WNMP/php7.1/php-cgi.exe" -c "C:/Program Files/WNMP/php7.1/php.ini" -b 127.0.0.1:9000 rem 啟動nginx echo Starting nginx... RunHiddenConsole "C:/Program Files/WNMP/nginx1.13/nginx.exe" -p "C:/Program Files/WNMP/nginx1.13" 啟動 redis echo Starting redis... RunHiddenConsole "C:/Program Files/WNMP/redis/redis-server.exe" "C:/Program Files/WNMP/redis/redis.windows.conf" pause Exit
關閉腳本:stop.bat
@echo off echo Stopping nginx... taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul echo Stopping redis... taskkill /F /IM redis-server.exe > nul pause exit
6、使用xxfpm避免php進程過多崩潰
本地測試過程中,可能會經常出現,一個項目運行太久了,就訪問不了了,phpcgi進程就掛掉了。
解決這個東西,需要下載一個東西xxfpm 鏈接: https://pan.baidu.com/s/1kkTx3f3mS0sO51AebCcAUQ 密碼: pcfq
將里面的pthreadGC2.dll 復制到C:\Windows\System32 和 C:\Windows\SysWOW64 下
然后將xxfpm目錄也添加進環境變量,就可以這樣啟動php
RunHiddenConsole xxfpm "C:/Program Files/WNMP/php7.1/php-cgi.exe" -n 5 -i 127.0.0.1 -p 9000
最后修改一下我們的啟動腳本 start.bat
@echo off echo Starting PHP FastCGI... RunHiddenConsole xxfpm "C:/Program Files/WNMP/php7.1/php-cgi.exe" -n 5 -i 127.0.0.1 -p 9000
echo Starting nginx... RunHiddenConsole "C:/Program Files/WNMP/nginx1.13/nginx.exe" -p "C:/Program Files/WNMP/nginx1.13"
echo Starting redis... RunHiddenConsole "C:/Program Files/WNMP/redis/redis-server.exe" "C:/Program Files/WNMP/redis/redis.windows.conf" pause Exit
這樣就可以一鍵啟動,一鍵關閉了。
