Windows搭建Nginx+PHP+MySQL环境(图文详解)
由于公司项目环境需要使用Nginx(Nginx的优势在于“反向代理”和“负载均衡”等等),所以,废话不多说,开搞!
流程:
- 下载安装包
- 安装Nginx
- 安装PHP
- 连接Nginx和PHP
- 编写启动脚本代替命令行启动Nginx和PHP
- 安装MySQL
步骤一、安装包下载
- Nginx下载:url:http://nginx.org/en/download.html
这里博主选择的稳定版,需要什么版本自己按需下载啊 - PHP下载:url:http://php.net/downloads.php
同上,选择自己需要的版本哦,博主的电脑是64位的,Nginx需要选择非线程安全,所以下的第一个 - MySQL下载:url:https://dev.mysql.com/downloads/mysql/
这里博主选择的最新版,如果想下载其他版本,可以点击页面中的“Go to Download Page>”,有更多的选择哦
步骤二、安装Nginx
- 在你的C/D/E...盘里(随便哪一个,看你喜欢)建一个新文件夹命名为“wnmp”,来用做我们的环境部署
- 再进去新建四个文件夹nginx、php、mysql、www(站点)分别管理我们的各个部分
- 然后就可以把我们下载的nginx压缩包解压到nginx文件夹里面了
下面是解压后的文件
下一步,双击“nginx.exe”,即可启动nginx,打开浏览器,输入localhost,看到下面的页面就代表安装成功了(如果没有启动成功,可能是因为端口的问题,打开E:\wnmp\nginx\conf\nginx.conf,把里面的 listen 后的端口改一下即可)
步骤三、安装PHP
- 把我们下载的php压缩包解压到E:\wnmp\php里面
- 将php.ini-development文件复制一份改名为php.ini
- 指定php的ext路径:找到
;extension_dir = "./ext"
去掉前面的分号,并把里面的路径改为我们安装php文件夹中的ext目录,比如博主的 extension_dir = "E:\wnmp\php\ext"
- 支持Nginx:找到
;cgi.fix_pathinfo=1
去掉前面的分号
- 支持MySQL:找到
;extension = php_mysql.dll ;extension = php_mysqli.dll
去掉前面的分号
- 启动php服务:在E:\wnmp\php 文件下以管理员身份打开cmd命令行,运行:php-cgi.exe -b 127.0.0.1:9000 -c E:/wnmp/php/php.ini(根据自己配置的端口和路径更改哦)
- 检测是否安装成功,管理员身份打开cmd下在E:\wnmp\php 下面执行 php -v 看到版本号即代表安装成功,如下图
步骤四、连接Nginx和PHP
- 打开文件 E:\wnmp\nginx\conf\nginx.conf(最好先做一下备份)
- 建议更改我们的项目目录为绝对路径(博主在E:\wnmp\下新建了一个仓库“www”),如下
location / { root E:/wnmp/www/localhost; index index.html index.htm index.php; }
- 去掉注释内容支持访问php项目
location ~ \.php$ { root E:/wnmp/www/localhost; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
变量$document_root指的是我们定义的root路径
- 在我们配置的目录下新建一个 E:\wnmp\www\localhost\phpinfo.php 文件,里面写上如下代码(改完配置文件nginx.conf后记得重启nginx哦)
<?php phpinfo();
浏览器中输入 localhost/phpinfo.php ,看到下面内容即代表配置成功
步骤五、编写启动脚本代替命令行启动Nginx和PHP
每次启动Nginx和PHP服务都去命令行手动敲真的是太累了,所以我们利用Windows的bat文件写两个脚本(启动和关闭),双击操作,简直爽的不行
- 下载文件RunHiddenConsole.exe,url:https://pan.baidu.com/s/1E6nnH0NL00wRnyij2RzA6Q 提取码:b490
- 编写启动服务文件:start.bat
REM REM是bat文件的注释类似于php的// REM 设置不输出命令 @ECHO off REM 设置Nginx和php-cgi的目录 SET php_home=E:\wnmp\php\ SET nginx_home=E:\wnmp\nginx\ REM 输出状态 ECHO Starting PHP FastCGI... REM 启动php-cgi -b 端口 -c php.ini位置 REM %php_home%为获取上面set的php_home的值 RunHiddenConsole %php_home%php-cgi.exe -b 127.0.0.1:9000 -c %php_home%php.ini REM 输出状态 ECHO Starting nginx... REM 启动Nginx -p Nginx的根目录 RunHiddenConsole %nginx_home%nginx.exe -p %nginx_home%
- 编写关闭服务文件:stop.bat
@ECHO off ECHO Stopping nginx... REM 结束进程 /F 强制终止 /IM 指定的进程 TASKKILL /F /IM nginx.exe ECHO Stopping PHP FastCGI... TASKKILL /F /IM php-cgi.exe REM 关闭窗口 EXIT
-
三个文件放到同一目录,文件里面的路径也要配置成自己的文件路径,比如博主的这样的
- 如果一切顺利,接下来我们就可以通过双击start.bat和stop.bat文件来同时开启关闭Nginx和PHP服务了,如丝质般顺滑,哈哈哈
步骤六、安装MySQL
- 解压我们下载好的MySQL安装包到E:\wnmp\mysql里面
- 在这里新建一个文件my.ini,再新建一个文件夹data(如果有就不需要新建了)
- 编辑my.ini,文件内容如下
[mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=E:\wnmp\mysql # 设置mysql数据库的数据的存放目录 datadir=E:\wnmp\mysql\data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 # 服务端使用的字符集默认为UTF8 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8
-
以管理员身份打开cmd,转到E:\wnmp\mysql\bin,初始化命令(会生成一个临时密码,注意把临时密码记住)
mysqld --initialize --user=mysql --console
-
输入 mysqld -install 进行服务的添加
- 输入net start mysql启动服务
- 输入mysql -u root -p进行登录数据库,用你上面的密码登录
- 重新设置密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; 再及时生效一下:flush privileges;
- 退出:exit,再重启一下数据库:net stop mysql; net start mysql;
- 再管理员身份打开一个cmd窗口,重新登录一下,成功!大功告成啦
至此,我们的wnmp环境就部署好了!如有疑问,可以留言博主哦
感谢如此优秀的我们!