前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows安装nginx + php + mysql

Windows安装nginx + php + mysql

原创
作者头像
用户2141488
修改2021-11-03 10:29:20
6.2K0
修改2021-11-03 10:29:20
举报

前言

当前windows下web环境搭建有很多集成工具,比如常用的phpstudy,这里记录下不用集成工具,单独安装每个服务,如同linux环境安装一样;

环境

windows 10 php7.4 mysql8.0 nginx1.2

安装nginx

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服务,启动时会一闪而过是正常的

正在加载命令启动nginx

查看任务进程是否存在,dos或打开任务管理器都行

命令行:

代码语言:javascript
复制
C:\Users\Administrator\web\nginx-1.20.1>  tasklist /fi "imagename eq nginx.exe"
查看nginx进程
查看nginx进程

任务管理器

任务管理器查看nginx服务
任务管理器查看nginx服务

浏览器访问默认站点

默认站点
默认站点

如果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


安装php

下载地址:https://windows.php.net/download/

下载php压缩包
下载php压缩包

下载好的zip文件解压到您指定的安装目录,进入php安装目录,然后复制一份php.ini-development 重命名为php.ini

创建php.ini配置文件
创建php.ini配置文件

进入php.exe所在目录进入dos,执行命令 php -v 查看php是否安装成功

丢失vcrruntime140.dll
丢失vcrruntime140.dll

报错:无法启动此程序,因为计算机中丢失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

Visual C++ Redistributable for Visual Studio 2015
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位

Microsoft Visual C++ Redistributable for Visual Studio 2019
Microsoft Visual C++ Redistributable for Visual Studio 2019

下载安装后再试试php -v ,可以看到能正常的输出php版本号

php -v
php -v

命令行启动php

代码语言:javascript
复制
C:\Users\Administrator>php-cgi.exe -b 127.0.0.1:9000 -c php.ini

注意当前dos窗口不要关闭,关闭php服务也停止运行了,另开一个dos窗口查看php服务是否运行tasklist | findstr "php",可以看到php已成功运行

tasklist | findstr "php"
tasklist | findstr "php"

接下来咱们将nginx和php结合起来,运行一个php文件看看是否成功,nginx.conf配置文件里将以下php配置前面的 # 去掉保存文件,并重启nginx

代码语言:javascript
复制
        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
复制
<?php
phpinfo();

浏览器访问http://localhost/test.php,出现以下页面说明nginx + php 成功;

phpinfo
phpinfo

安装mysql

下载地址:https://downloads.mysql.com/archives/community/

mysql
mysql

安装包解压到自定义Mysql目录下

安装目录
安装目录

将MySQL中bin的安装路径,加到环境变量

添加环境变量
添加环境变量

使用管理员权限打开cmd命令窗口(鼠标右键点击“命令提示符”)

管理员权限打开dos
管理员权限打开dos

1.输入 mysqld --initialize-insecure --user=mysql 然后回车

2.再输入 mysqld -install 命令再回车

安装mysql
安装mysql

如果以上两个命令执行.如上图所示,说明mysql安装成功。

启动MySQL服务

启动MySQL服务,cmd命令窗口执行 net start mysql命令回车

启动mysql
启动mysql

初始化root用户没有密码,密码为空.输入 mysql -u root -p 命令直接双击回车即可

登陆mysql
登陆mysql

修改root密码

输入 ALTER user 'root'@'localhost' IDENTIFIED BY '123456' 命令直接回车

代码语言:javascript
复制
mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
修改密码
修改密码

查看数据库并退出

查看数据库
查看数据库

停止mysql服务:net stop mysql

代码语言:javascript
复制
C:\Users\Administrator>net stop mysql
停止mysql服务
停止mysql服务

测试

注意:下面测试mysql需要用到php的扩展mysqli;这里需要在php配置文件 php.ini 里开启mysqli扩展

代码语言:javascript
复制
// 改为自己的安装目录
extension_dir = "C:\Users\Administrator\web\php-7.4.25-nts-Win32-vc15-x64\ext"
// 将最前面的注释去掉
extension=mysqli

phpinfo页面出现以下页面代表mysqli开启成功

测试客户端请求是否能通过nginx访问php文件里的mysql;

在test.php写入以下代码:

代码语言:javascript
复制
<?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

代码语言:javascript
复制
@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

代码语言:javascript
复制
@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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 环境
  • 安装nginx
    • 常见的错误
      • 常用命令
      • 安装php
      • 安装mysql
      相关产品与服务
      云服务器
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档