当前windows下web环境搭建有很多集成工具,比如常用的phpstudy,这里记录下不用集成工具,单独安装每个服务,如同linux环境安装一样;
windows 10 php7.4 mysql8.0 nginx1.2
nginx for windows安装参考文档:https://nginx.org/en/docs/windows.html
官方下载地址:http://nginx.org/en/download.html
咱们这次下载的是1.20.1版本、将下载的zip文件解压到您指定的安装目录;
在nginx.exe所在目录进入cmd,这里提供一个进入dos快捷方式(直接在文件夹地址栏输入`cmd`并回车,会直接进入当前目录的dos窗口),开始执行命令;
注意:不要直接双击nginx.exe,不要直接双击nginx.exe,不要直接双击nginx.exe一定要在dos窗口启动,不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程,再启动才可以
命令启动nginx服务,启动时会一闪而过是正常的
查看任务进程是否存在,dos或打开任务管理器都行
命令行:
C:\Users\Administrator\web\nginx-1.20.1> tasklist /fi "imagename eq nginx.exe"
任务管理器
浏览器访问默认站点
如果nginx服务没正常运行起来可以看下日志文件记录的错误信息
(1)端口号被占用
(2)nginx文件夹路径含中文
其他错误就详细看 error.log
中的描述;
启动:start nginx
快速停止:nginx -s stop
完整有序的关闭:nginx -s quit
重载配置文件并重启:nginx -s reload
检查配置文件是否正确:nginx -t -c ./conf/nginx.conf
后面是nginx.conf文件的路径,successful就说明正确了
至此,nginx已安装完成,大家可以打开nginx.conf
按照自己需求进行配置,这里不做介绍;
参考文档:https://blog.csdn.net/qq_36850813/article/details/88552146
下载地址:https://windows.php.net/download/
下载好的zip文件解压到您指定的安装目录,进入php安装目录,然后复制一份php.ini-development
重命名为php.ini
进入php.exe所在目录进入dos,执行命令 php -v 查看php是否安装成功
报错:无法启动此程序,因为计算机中丢失vcrruntime140.dll。尝试重新安装改程序以解决此问题。
原来在Windows下运行php7需要Visual C++Redistributable 2015而之前的版本不需要那么高的,最新版的Apache可能也需要这个组件,这个组件是运行Visual Studio 2015所建立的C++应用的必要组件,安装一次即可解决环境问题,那么去微软官网下载安装程序,安装一遍即可。有64位版和32位版,根据计算机配置进行下载,
下面是下载链接:
64位:https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe
32位:https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe
上面的2个下载地址容易失效,大家按照这个路径找:https://www.microsoft.com/en-us/download/developer-tools.aspx ----> Visual C++ Redistributable for Visual Studio 2015
安装下载的vc_redist.x64.exe,
再执行 php -v看看问题是否解决
报错:PHP Warning: 'vcruntime140.dll' 14.0 is not compatible with this PHP build linked with 14.16 in Unknown on line 0
看报错意思是说“vcruntime140.dll”14.0PHP版本不兼容,很好解决,原因是PHP 7.4.x需要用于Visual Studio 2019的Microsoft Visual C ++ Redistributable,
可在此处下载:https://visualstudio.microsoft.com/downloads/
进去之后向下滚动 ----> 其他工具、框架和可再发行组件 ---->
Microsoft Visual C++ Redistributable for Visual Studio 2019→选择你对应的版本下载,我这里选择的是64位的
下载安装后再试试php -v ,可以看到能正常的输出php版本号
命令行启动php
C:\Users\Administrator>php-cgi.exe -b 127.0.0.1:9000 -c php.ini
注意当前dos窗口不要关闭,关闭php服务也停止运行了,另开一个dos窗口查看php服务是否运行tasklist | findstr "php"
,可以看到php已成功运行
接下来咱们将nginx和php结合起来,运行一个php文件看看是否成功,nginx.conf配置文件里将以下php配置前面的 # 去掉保存文件,并重启nginx
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
在/nginx-1.20.1/html/ 目录下新建一个test.php文件,写入:
<?php
phpinfo();
浏览器访问http://localhost/test.php,出现以下页面说明nginx + php 成功;
下载地址:https://downloads.mysql.com/archives/community/
安装包解压到自定义Mysql目录下
将MySQL中bin的安装路径,加到环境变量
使用管理员权限打开cmd命令窗口(鼠标右键点击“命令提示符”)
1.输入 mysqld --initialize-insecure --user=mysql
然后回车
2.再输入 mysqld -install
命令再回车
如果以上两个命令执行.如上图所示,说明mysql安装成功。
启动MySQL服务
启动MySQL服务,cmd命令窗口执行 net start mysql
命令回车
初始化root用户没有密码,密码为空.输入 mysql -u root -p
命令直接双击回车即可
修改root密码
输入 ALTER user 'root'@'localhost' IDENTIFIED BY '123456'
命令直接回车
mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
查看数据库并退出
停止mysql服务:net stop mysql
C:\Users\Administrator>net stop mysql
测试
注意:下面测试mysql需要用到php的扩展mysqli;这里需要在php配置文件 php.ini 里开启mysqli扩展
// 改为自己的安装目录
extension_dir = "C:\Users\Administrator\web\php-7.4.25-nts-Win32-vc15-x64\ext"
// 将最前面的注释去掉
extension=mysqli
phpinfo页面出现以下页面代表mysqli开启成功
测试客户端请求是否能通过nginx访问php文件里的mysql;
在test.php写入以下代码:
<?php
// 因下面有输出中文字符,所以这里设置下编码
header("content-type:text/html;charset=utf-8");
$dbhost = 'localhost'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysqli_error());
}
echo '数据库连接成功!';
// 关闭连接
mysqli_close($conn);
浏览器访问页面输出以下字符代表数据库连接成功
技巧
当你启动php之后你会发现cmd小窗口不能自动关掉了,如果手动关掉php就挂掉了,接下来解决这个问题;首先你需要下载一个小文件RunHiddenConsole 然后随便指定一个目录,新建两个bat批处理文件,start_web.bat和stop_web.bat
RunHiddenConsole下载:http://www.inbeijing.org/wp-content/uploads/2015/06/RunHiddenConsole.zip
RunHiddenConsole.exe不用安装,将它和start_web.bat、stop_web.bat两个文件放到同一目录下就可以
start_web.bat
@echo off
REM bat脚本以管理员权限执行(下面的mysql启动需要用到)
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
REM set PHP_FCGI_CHILDREN=5
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI…
RunHiddenConsole C:/Users/Administrator/web/php-7.4.25-nts-Win32-vc15-x64/php-cgi.exe -b 127.0.0.1:9000 -c C:/Users/Administrator/web/php-7.4.25-nts-Win32-vc15-x64/php.ini
echo Starting nginx…
RunHiddenConsole C:/Users/Administrator/web/nginx-1.20.1/nginx.exe -p C:/Users/Administrator/web/nginx-1.20.1
echo Starting Mysql…
net start mysql
stop_web.bat
@echo off
REM bat脚本以管理员权限执行(下面的mysql启动需要用到)
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
echo Stopping mysql
net stop mysql
exit
双击 start_web.bat 文件发现会自动弹出dos窗口,这是正常的,检查nginx、php和mysql服务是否正常运行
双击 stop_web.bat 文件3个服务停止运行
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有