說明
親測(cè)原稿熏瞄。以 D:\wnmp
目錄為例(實(shí)際目錄可自行更改)
準(zhǔn)備
軟件包下載地址
Nginx官網(wǎng):http://nginx.org/
Mysql官網(wǎng):https://www.mysql.com/
PHP官網(wǎng):http://www.php.net/
本教程使用軟件
nginx-1.11.6.zip
mysql-5.7.16-winx64.zip
php-5.6.28-nts-Win32-VC11-x64.zip
RunHiddenConsole.exe (后臺(tái)以cgi啟動(dòng)nginx+php使用,沒找到官網(wǎng),自行百度下載)
php版本說明
non-thread-safe 非線程安全 與IIS 搭配環(huán)境
thread-safe 線程安全與apache 搭配的環(huán)境
php還有 VC6 VC9版本 區(qū)分VC6和VC9一個(gè)支持apache一個(gè)支持IIS
VC9 用在apache上也沒問題
如果是以FastCGI方式(搭配IIS惠拭、nginx)來執(zhí)行PHP 莫杈,都建議下載蛙婴、執(zhí)行 non-thread safe 版本的 PHP
在D盤建立wnmp目錄并在wnmp目錄下建立 nginx, mysql, php-5.6, www目錄敷钾,將軟件解壓到對(duì)應(yīng)目錄下。(D:\wnmp\www為代碼目錄)
安裝Nginx
- 進(jìn)入D:\wnmp\nginx目錄下愈犹,雙擊運(yùn)行nginx.exe文件键科。然后用瀏覽器打開http://localhost/ 出現(xiàn)Welcome to nginx! 成功。
安裝PHP
-
進(jìn)入D:\wnmp\php-5.6目錄將php.ini-development復(fù)制一份改名為php.ini
- 打開D:\wamp\php-5.6\php.ini文件 搜索extension_dir = "ext"甘萧,修為如下
extension_dir = "d:/wnmp/php-5.6/ext/"
搜索“date.timezone”萝嘁,找到:;date.timezone = 先去前面的分號(hào)再改為
date.timezone = Asia/Shanghai
搜索“enable_dl”,找到:enable_dl = Off 改為
enable_dl = On
搜索“cgi.force_redirect” ;cgi.force_redirect = 1 先去前面的分號(hào)再改為
cgi.force_redirect = 0
搜索“fastcgi.impersonate”扬卷,找到: ;fastcgi.impersonate = 1 去掉前面的分號(hào)
fastcgi.impersonate = 1
搜索“cgi.rfc2616_headers”牙言,找到:;cgi.rfc2616_headers = 0 先去前面的分號(hào)再改為
cgi.rfc2616_headers = 1
搜索“php_mysql”,找到:”extension=php_mysql.dll和extension=php_mysqli.dll 去掉前面的“;”(支持MYSQL數(shù)據(jù)庫)
extension=php_mysql.dll
extension=php_mysqli.dll
其他的配置按照自己的需要更改怪得。
-
進(jìn)入D:\wnmp\nginx\conf目錄咱枉,打開修改nginx.conf文件
1)大概第43~45行之間的內(nèi)容
修改如下
location / {
root D:/wnmp/www;
index index.html index.htm inde.php;
}
2)支持php的設(shè)置,大概在第65-71行的
先將前面的“#”去掉卑硫,同樣將root html;改為root D:/wnmp/www;。再把“/scripts”改為“document_root”就是指前面“root”所指的站點(diǎn)路徑蚕断,修改完成如如下
location ~ \.php$ {
root D:/wnmp/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
- 在D:\wnmp\www目錄內(nèi)新建1.php文件欢伏,并寫入
<?php
phpinfo();
?>
進(jìn)入D:\wnmp\php-5.6目錄,安裝shift鍵點(diǎn)擊右鍵 在此處打開命令窗口 輸入以下命令行啟動(dòng)php(命令窗口不能關(guān)閉亿乳,屬于前臺(tái)運(yùn)行模式)
php-cgi.exe -b 127.0.0.1:9000-c D:\wnmp\php-5.6\php.ini
進(jìn)入D:\wnmp\nginx 安裝shift鍵點(diǎn)擊右鍵 在此處打開命令窗口 輸入以下命令行重啟動(dòng)nginx(命令窗口不能關(guān)閉硝拧,屬于前臺(tái)運(yùn)行模式)
nginx.exe -s stop #停止nginx
nginx.exe #啟動(dòng)nginx
使用瀏覽器打開http://localhost/1.php
-
nginx-php小工具
將RunHiddenConsole.exe文件復(fù)制到nginx根目錄下(D:\wnmp\nginx)
在D:\wnmp\nginx目錄內(nèi)新建文本文件粘貼以下內(nèi)容(注意路徑)
cls
@ECHO OFF
SET NGINX_PATH=D:
SET NGINX_DIR=D:\wnmp\nginx\
color 0a
TITLE Nginx Management
GOTO MENU
:MENU
CLS
ECHO.
ECHO. * * * * Nginx Management * * * * * * * * * * *
ECHO. * *
ECHO. * 1 啟動(dòng)Nginx *
ECHO. * *
ECHO. * 2 關(guān)閉Nginx *
ECHO. * *
ECHO. * 3 重啟Nginx *
ECHO. * *
ECHO. * 4 退 出 *
ECHO. * *
ECHO. * 5 啟動(dòng)Nginx-PHP環(huán)境 *
ECHO. * *
ECHO. * 6 關(guān)閉Nginx-PHP環(huán)境 *
ECHO. * *
ECHO. * * * * * * * * * * * * * * * * * * * * * * * *
ECHO.
ECHO.請(qǐng)輸入選擇項(xiàng)目的序號(hào):
set /p ID=
IF "%id%"=="1" GOTO cmd1
IF "%id%"=="2" GOTO cmd2
IF "%id%"=="3" GOTO cmd3
IF "%id%"=="5" GOTO cmd5
IF "%id%"=="6" GOTO cmd6
IF "%id%"=="4" EXIT
PAUSE
:cmd1
ECHO.
ECHO.啟動(dòng)Nginx......
IF NOT EXIST %NGINX_DIR%nginx.exe ECHO %NGINX_DIR%nginx.exe不存在
%NGINX_PATH%
cd %NGINX_DIR%
IF EXIST %NGINX_DIR% start %NGINX_DIR%nginx.exe
ECHO.OK
PAUSE
GOTO MENU
:cmd2
ECHO.
ECHO.關(guān)閉Nginx......
taskkill /F /IM nginx.exe > nul
ECHO.OK
PAUSE
GOTO MENU
:cmd3
ECHO.
ECHO.關(guān)閉Nginx......
taskkill /F /IM nginx.exe > nul
ECHO.OK
GOTO cmd1
GOTO MENU
:cmd5
ECHO.
ECHO.啟動(dòng)Nginx-PHP環(huán)境......
REM Windows 下無效
REM set PHP_FCGI_CHILDREN=5
REM 每個(gè)進(jìn)程處理的最大請(qǐng)求數(shù),或設(shè)置為 Windows 環(huán)境變量
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...
RunHiddenConsole D:/wnmp/php-5.6/php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/php-5.6/php.ini
echo Starting nginx...
RunHiddenConsole D:/wnmp/nginx/nginx.exe -p D:/wnmp/nginx
PAUSE
GOTO MENU
:cmd6
ECHO.
ECHO.關(guān)閉Nginx-PHP環(huán)境......
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
PAUSE
GOTO MENU
并改名為 Nginx管理工具.bat (后綴也要改)葛假,雙擊打開(這時(shí)候可以關(guān)閉剛才的命令框了)
- nginx支持thinkphp配置(按需要設(shè)置)
server {
listen 80 ;
server_name localhost;
root d:/wnmp/www;
index index.html index.htm index.php;
error_page 404 /404.html;
location = /404.html {
return 404 'Sorry, File not Found!';
}
location / {
try_files $uri @rewrite;
}
location @rewrite {
set $static 0;
if ($uri ~ \.(css|js|jpg|jpeg|png|gif|ico|woff|eot|svg|css\.map|min\.map)$) {
set $static 1;
}
if ($static = 0) {
rewrite ^/(.*)$ /index.php?s=/$1;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ /Uploads/.*\.php$ {
deny all;
}
location ~ \.php/ {
if ($request_uri ~ ^(.+\.php)(/.+?)($|\?)) { }
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_NAME $1;
fastcgi_param PATH_INFO $2;
fastcgi_param SCRIPT_FILENAME $document_root$1;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
#root d:/wnmp/www;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
安裝Mysql
- 進(jìn)入D:\wnmp\mysql障陶,復(fù)制my-default.ini文件并改名為my.ini。
在D:\wnmp\mysql目錄下創(chuàng)建data文件夾聊训,打開my.ini修改如下內(nèi)容
basedir = D:\wnmp\mysql
datadir = D:\wnmp\mysql\data
port = 3306
- 進(jìn)入D:\wnmp\mysql\bin目錄下按著shift鍵點(diǎn)右鍵抱究, 在此打開命令窗口,(注意必須以管理員身份打開带斑,否則報(bào)錯(cuò)鼓寺。如果不是管理員請(qǐng)以管理員身份打開cmd并進(jìn)入D:\wnmp\mysql\bin目錄)
輸入以下命令初始化mysql
mysqld --initialize --user=mysql --console
記錄下紅色框內(nèi)的初始密碼(密碼前面是沒有空格的)
執(zhí)行下面命令將MySQL添加到系統(tǒng)服務(wù)
mysqld --install MySQL
執(zhí)行下面命令啟動(dòng)myslq
net start mysql
- 進(jìn)入myslq修改初始密碼(進(jìn)入需要?jiǎng)偛庞涗浀拿艽a)
mysql -u root -p
更改密碼
set password for root@localhost = password('123456'); (注意分號(hào))
- 創(chuàng)建其他用戶
CREATE USER '用戶名'@'%' IDENTIFIED BY '密碼';
添加訪問ip,%號(hào)代表所有IP都能訪問
GRANT GRANT OPTION ON *.* TO '賬號(hào)'@'%';
添加權(quán)限(所有權(quán)限)
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO '賬號(hào)'@'%';
- mysql 常用命令
net start mysql #啟動(dòng)myslq服務(wù)
net stop mysql #停止mysql服務(wù)
mysql管理小工具
在D:\wnmp\mysql目錄下新建一個(gè)文本粘貼如以下內(nèi)容(自己也可以修改注意路徑)
cls
@ECHO OFF
SET Mysql_PATH=D:
SET Mysql_DIR=D:\wnmp\mysql\bin
color 0a
TITLE Mysql Management
GOTO MENU
:MENU
CLS
ECHO.
ECHO. * * * * Mysql Management * * * * * * * * * * *
ECHO. * *
ECHO. * 1 啟動(dòng)Mysql *
ECHO. * *
ECHO. * 2 關(guān)閉Mysql *
ECHO. * *
ECHO. * 3 重啟Mysql *
ECHO. * *
ECHO. * 4 退 出 *
ECHO. * *
ECHO. * * * * * * * * * * * * * * * * * * * * * * * *
ECHO.
ECHO.請(qǐng)輸入選擇項(xiàng)目的序號(hào):
set /p ID=
IF "%id%"=="1" GOTO cmd1
IF "%id%"=="2" GOTO cmd2
IF "%id%"=="3" GOTO cmd3
IF "%id%"=="4" EXIT
PAUSE
:cmd1
ECHO.
ECHO.啟動(dòng)Mysql......
cd %Mysql_DIR%
net start mysql
PAUSE
GOTO MENU
:cmd2
ECHO.
ECHO.關(guān)閉Mysql......
cd %Mysql_DIR%
net stop mysql
PAUSE
GOTO MENU
:cmd3
net stop mysql
net start mysql
PAUSE
GOTO MENU
改名字為 Mysql管理工具.bat (后綴也要改)勋磕,然后雙擊打開(需要管理員權(quán)限)
增加PHP擴(kuò)展妈候,以redis為例(其他擴(kuò)展大致相仿按需添加)
php擴(kuò)展官方地址http://pecl.php.net/
- 下載redis的DLL文件(注意php版本)
解壓后復(fù)制php_redis.dll文件到D:\wnmp\php-5.6\ext目錄下
- 打開D:\wnmp\php-5.6下php.ini文件,添加以下代碼
extension=php_memcache.dll
- 重啟nginx-php瀏覽器里打開http://localhost/1.php