在 Windows 搭建 Nginx+PHP+MySQL 运行环境
主要流程
- 下载安装包
- 安装 Nginx
- 安装 PHP
- 连接 Nginx 和 PHP
- 编写启动脚本代替命令行启动 Nginx 和 PHP
- 安装 MySQL
步骤一、安装包下载
Nginx 下载: http://nginx.org/en/download.html
这里博主选择的稳定版,需要什么版本自己按需下载啊
PHP 下载: http://php.net/downloads.php
同上,选择自己需要的版本哦,博主的电脑是 64 位的,Nginx 需要选择非线程安全,所以下的第一个
MySQL 下载: 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
: 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 环境就部署好了!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 如何正确安装 NodeJS
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论