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
這樣就可以一鍵啟動,一鍵關閉了。