Windows 11 本地 php 开发环境搭建:PHP + Apache + MySQL +VSCode 安装和环境配置

目录
- 前言
- 1. PHP 的下载、安装和配置
- 1.1 下载 php
- 1.2 安装 php
- 1.3 配置 php 系统变量
- 1.4 配置 php.ini
- 2. Apache 的下载、安装和配置
- 2.1 下载 Apache
- 2.2 安装 Apache
- 2.3 修改配置 Apache
- 2.4 指定服务端口(非必须)
- 2.5 配置系统变量
- 2.6 安装服务
- 2.7 Apache 环境开启 htaccess 伪静态(可选)
- 2.8 启动服务
- 3. 整合 PHP、Apache
- 3.1 配置 apache 支持 php
- 3.2 修改网站默认首页
- 3.3 修改Apache 默认的站点目录
- 3.4 测试 php 网站
- 4. 安装 php 依赖管理工具:Composer
- 4.1 下载 Composer
- 4.2 安装 Composer:方式一
- 4.3 安装 Composer:方式二
- 4.4 更改 Composer 镜像
- 5. VsCode 配置
- 5.1 安装 vs code 插件
- 5.2 下载和配置 Xdebug 库
- 5.3 调试运行 debug
- 6. MySQL在Windows 环境中的安装
- 7. 附:Xdebug3 参数说明
- 7.1 xdebug.mode
- 7.2 start_with_request
前言
最近有空整理一下php 在windows上面的环境配置。原因是发现网上大多数php环境配置的相关帖子内容凌乱、多数是不能配置成功的。所以决定全部走一遍配置,以确保整个过程是成功的。并在此基础上开个帖子记录下这个完整的安装和配置过程,以备忘和供有需要的同学参考。
1. PHP 的下载、安装和配置
1.1 下载 php
官方下载地址:https://windows.php.net/downloads/releases/

我这里没有下载最新版,而是 php-7.4.33-Win32-vc15-x64.zip
1.2 安装 php
将下载的 zip 压缩包解压到安装目录: E:\Software\PHProgram\PHP(我的位置)

1.3 配置 php 系统变量
将 PHP 的安装目录(如 E:\Software\PHProgram\PHP)添加到 系统变量 的 Path 变量中:

1.4 配置 php.ini
将 PHP 目录下的php.ini-development,复制一份并重命名为 php.ini,作为PHP的配置文件。

编辑php.ini文件:
-
设置PHP扩展包的具体目录
找到:
; On windows: ; extension_dir = “ext”修改为:
; On windows: extension_dir = “E:\Software\PHProgram\PHP\ext”
-
开启相应的库功能
搜索 “
;extension=”,定位并开启所需的库功能:

-
设置时区
找到
;date.timezone =修改为:
date.timezone = Asia/Shanghai
-
检查是否安装成功
cmd 中输入检查版本的命令:
php -v
2. Apache 的下载、安装和配置
2.1 下载 Apache
安装包官方下载地址:https://www.apachelounge.com/download/VS16/

下载的 ZIP 文件是:httpd-2.4.57-win64-VS16.zip
2.2 安装 Apache
将下载的zip 文件解压到 E:\Software\PHProgram\Apache-2.4.57\Apache24
2.3 修改配置 Apache
找到 Apache24\conf 目录下的 httpd.conf 文件,用记事本打开,并转到 Define SRVROOT “c:/Apache24”
修改为:
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used. If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
Define SRVROOT "E:\Software\PHProgram\Apache2.4.57\Apache24"
ServerRoot "${SRVROOT}"
#
# Mutex: Allows you to set the mutex mechanism and mutex file directory
2.4 指定服务端口(非必须)
定位到 Listen 80,改为其它端口
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 8888#
# Dynamic Shared Object (DSO) Support
Apache默认端口为80,为避免端口冲突,可修改为其他端口。如使用默认80端口,则通过http://localhost即可访问,如使用修改后的端口,则必须加端口号:如http://localhost:8888
2.5 配置系统变量


2.6 安装服务
必须以 管理员身份 运行 cmd ,然后进入 Apache\bin 目录
C:\WINDOWS\system32> e:
E:\> cd Software\PHProgram\Apache-2.4.57\Apache24\bin
E:\Software\PHProgram\Apache-2.4.57\Apache24\bin> httpd -k install -n Apache2.4
如果要移除服务:cmd 中输入
sc delete Apache2.4后回车
2.7 Apache 环境开启 htaccess 伪静态(可选)
-
什么是伪静态 ?
伪静态其实是相对真实静态来讲的,伪静态只是改变了URL的显示形式,实际上还是一个动态的页面。伪静态的页面后缀可以是html、htm或者是目录格式等。像thinkphp等框架的pathinfo模式,也是伪静态的一种。
-
为什么要用伪静态 ?
Ⅰ为了seo优化,伪静态有利于搜索引擎的收录,能够增加网站优化效果;
Ⅱ 为了让URL看起来更简单,更加友好易读,也给人一种专业性的感觉。
Apache 服务器上开启和通过.htaccess文件来配置伪静态:
1)在 Apache 配置文件httpd.conf中启用Rewrite
打开httpd.conf,定位到代码:
#LoadModule rewrite_module modules/mod_rewrite.so
2)把前面#去掉。没有则添加,但必须独占一行,以使 apache 支持 mod_rewrite 模块。
LoadModule rewrite_module modules/mod_rewrite.so
3)继续在 httpd.conf 搜索定位 AllowOverride,并把后面的参数从None全部改成All
4)配置.htaccess 伪静态规则
-
在要启用伪静态的项目的根目录(如
www)下建立.htaccess文件 -
在
.htaccess文件中输入以下内容(或开源项目本身指定的内容)< IfModule mod_rewrite.c>Options +FollowSymlinks -MultiviewsRewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-f#RewriteRule RewriteRule index.html$ index.php#RewriteRule ^(.*?).html$ index.php?$1.html [QSA,PT,L]#RewriteRule ^/index([0-9]*).html$ /index.php?id=$1#更多伪静态规则 < /IfModule>
2.8 启动服务
-
方式一
打开Apache/bin目录下的ApacheMonitor.exe启动Apache; -
方式二
服务 >> Apache 2.4 右键 启动
测试是否安装成功:
在浏览器中输入HTTP://localhost:8888(此处8888是我选择的端口)验证服务是否成功搭建

或者查看系统服务:

安装成功!
3. 整合 PHP、Apache
3.1 配置 apache 支持 php
1)打开 Apache24\conf 目录下的配置文件 httpd.conf,并定位到:
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
2)在下方添加:
LoadModule php7_module "E:/Software/PHProgram/PHP/php7apache2_4.dll"
PHPIniDir "E:/Software/PHProgram/PHP"
AddType application/x-httpd-php .php .html .htm
注:这里安装的是
PHP7,假如是PHP8,则应相应地换成php8_module、php8apache2_4.dll等
3.2 修改网站默认首页
找到:
<IfModule dir_module>DirectoryIndex index.html
</IfModule>
4)改为:
<IfModule dir_module>DirectoryIndex index.php index.html
</IfModule>
3.3 修改Apache 默认的站点目录
1)在 E:\Software\PHProgram 下,新建 一个名为 www 的文件夹,做为网站根目录;
2)在 httpd.conf 中,找到如下代码:
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">
修改为:
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "E:\Software\PHProgram\www"
<Directory "E:\Software\PHProgram\www>
此目录即为打开 http://localhost:8888 时的根目录,可在该目录创建index.php,用于默认访问的 php 文件。
3.4 测试 php 网站
在 www 目录下,新建文件index.php,写入以下内容:
<?phpphpinfo();
?>
然后打开http://localhost:8888,如果显示PHP版本及配置信息,则表示配置成功!

4. 安装 php 依赖管理工具:Composer
Composer是 PHP 开发必不可少的工具之一,可有效减少依赖包下载和管理的烦恼。
4.1 下载 Composer
官方下载地址:https://getcomposer.org/download/,
也可点击 这里 直接下载(不打开下载页)

4.2 安装 Composer:方式一
1)检查/修改配置文件
在 php 安装目录中找到 php.ini 文件,用记事本打后定位到
;extension=openssl
去掉前面的“;”(分号)以启用配置
extension=openssl
2)双击运行 Composer-Setup.exe
程序会在每次执行时安装最新的 Composer 版本,后面一步步安装即可。


3)检查是否安装成功
然后等待安装完成,重新打开 命令行窗口,输入命令检查是否安装成功:
Microsoft Windows [版本 10.0.22621.1555]
(c) Microsoft Corporation。保留所有权利。C:\Users\pro>composer --version
Composer version 2.5.5 2023-03-21 11:50:05
当然,也可以按照官方文档的方式进行安装,见方式二。
4.3 安装 Composer:方式二
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01 eae') { echo '安装程序验证'; } else { echo '安装程序损坏'; unlink('composer-setup. php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
4.4 更改 Composer 镜像
因为国外网站访问比较慢,这里介绍安装Composer 镜像。
1)阿里云 Composer 镜像 【推荐 】
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
2)腾讯云 Composer 镜像
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/
3)华为云 Composer 镜像
composer config -g repo.packagist composer https://repo.huaweicloud.com/repository/php/
4)安畅云 Composer 镜像
composer config -g repo.packagist composer https://php.cnpkg.org/
5. VsCode 配置
VsCode 是用的比较多的开发 PHP 的工具,进行配置之后要比Jerbrian家的IDE要方便很多。
5.1 安装 vs code 插件
在vs code插件商店中,搜索并安装相关的组件:
ComposerPHP 语言支持PHP Debug(后面需要做进一步的设置)PHP Extendsion PackPhp IntelliSense
注:Vs code 安装 debug 插件后,需要在 settings.json 中进行设置,即在最外层大括号下面,添加以下两个php.exe所在的路径:
{// "settingsSync.ignoredExtensions": [// ],"php.validate.executablePath": "E:/Software/PHProgram/PHP/php.exe", "php.debug.executablePath": "E:/Software/PHProgram/PHP/php.exe"}
5.2 下载和配置 Xdebug 库
Xdebug,是一个 PHP 插件,可用于单步调试 / 输出调试等,配合VS Code的插件,功能十分强大,可满足日常大多数环境需求。
插件功能包括:
- 远程监听调试
- 本地单文件调试
- 本地浏览器调试
一般前两个功能使用较多,小脚本使用第二个功能,网站类代码推荐监听调试。
准备下载与当前 php 版本、当前系统相对应的 Xdebug 版本
打开 版本选择 网页:
1) cmd 中运行以下命令
php -i
2)运行后,复制cmd中得到的 phpinfo() 的完整输出信息:
phpinfo()
PHP Version => 7.4.33
$_SERVER['argv'] => Array
(
)
... ...
3)打开上面提供的这个 版本选择 链接,并粘贴到此网页中的多选文本框中,然后提交。

4)下载 Xdebug
提交后,网站会根据已提交的信息,自动为您推荐当前PHP版本、系统环境匹配的Xdebug库。然后就可下载该 xdebug.dll 库文件

5)将下载的 php_xdebug-3.1.6-7.4-vc15-x86_64.dll 复制到 E:\Software\PHP_Program\PHP\ext扩展目录下

并将文件php_xdebug-3.1.6-7.4-vc15-x86_64.dll 重命名为 php_xdebug.dll
6)修改 E:\Software\PHProgram\PHP 目录下的 php.ini 配置文件
在php.ini文件末尾加上以下代码并保存:
[XDebug]
zend_extension=php_xdebug.dll
xdebug.output_dir="E:\Software\PHProgram\tmp\xdebug"
; xdebug 监听地址(Xdebug3写法,2的名称为 remote_host)
xdebug.client_host="127.0.0.1"
xdebug.client_port=9003
xdebug.remote_handler=dbgp
xdebug.start_with_request = yes
xdebug.idekey = Vscode
xdebug.collect_return = On
xdebug.mode = debug
; 本机调试,Xdebug3新增设置
xdebug.discover_client_host = On

注:
1、修改php.ini文件后,必须重启Apache服务才能生效;
2、本文安装的Xdebug基于版本3x。如果是2x,那么php.ini中的 [Xdebug] 的配置项不同,具体请看官网文档
【Xdebug3和Xdebug2配置项变化较大(3的配置项在2的基础上有移除、改名或新增等),更多配置请参考官方文档(很多网上的配置都是错的)】
7)cmd 命令提示符下测试xdebug安装是否成功:
-
php --version命令Microsoft Windows [版本 10.0.22621.1555] (c) Microsoft Corporation。保留所有权利。C:\Users\pro> php --version PHP 7.4.33 (cli) (built: Nov 2 2022 16:00:55) ( ZTS Visual C++ 2017 x64 ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologieswith Xdebug v3.1.6, Copyright (c) 2002-2022, by Derick RethansC:\Users\pro>
-
网页中输出
phpinfo()信息www(网站要目录)下的index.php文件:<?phpphpinfo(); ?>
浏览器访问 http://localhost:8888 :

出现 Xdebug,说明安装成功 !如果
phpinfo有XDebug,cmd下没有,请检查环境变量设置是否正确
8)Vs code 中 php 的 debug 插件配置
-
在网站根目录www下,新建一个
test.php文件(用于debug插件的配置测试),并编写以下内容:<?phpfor ($i = 0; $i < 10; $i++) {echo $i;} ?>
-
在有打开的 php 文件的情况下(如
test.php),单击 VSCode 左侧列表的【运行和调试】图标
再点击【创建launch.json文件】按钮此时,即自动创建
.vscode文件夹并将launch.json保存到www/.vscode/路径下。生成的
launch.json文件中的配置项如下:{"version": "0.2.0","configurations": [{"name": "Launch built-in server and debug","type": "php","request": "launch","runtimeArgs": ["-S","localhost:8888","-t","."],"port": 9003,"serverReadyAction": {"action": "openExternally"}},{"name": "Debug current script in console","type": "php","request": "launch","program": "${file}","cwd": "${fileDirname}","externalConsole": false,"port": 9003},{"name": "Listen for Xdebug","type": "php","request": "launch","port": 9003}] }注:
Listen for Xdebug项的port属性,需要与php.ini配置文件中相同;
Xdebug的默认调试端口已从9000更改为9003。
5.3 调试运行 debug
1)选择运行和调试右边的下拉框,选择调试模式(如,选择 Listen for Xdebug),程序里打上断点;
2)按 F5 开始调试(也可按调试按钮);
3)打开浏览器访问 http://localhost:8888/test.php
此时页面尚不能正常加载(转圈)
4)继续按 F5 调试,直到程序跑完,就会看到页面加载好全部内容

php.ini中,xdebug.mode = debug 的使用场景为需要断点调试的时候。
但有时程序本身没问题,只是想看看性能和各个地方的耗时情况,则将 ’debug‘模式换成 trace (耗时)或 profile(性能) 模式。
如:
-
trace,修改 php.inixdebug.mode = trace在Vscode 调试模式名称下拉框中,选“
Debug current script in console”,去掉php程序中所有断点,此时按一下 F5 程序就执行完毕,然后找到目录E:\Software\PHProgram\tmp\xdebug(php.ini中配置的目录),能看到多出了一个类似trace.xxxxx.xt这样的文件。
-
profile(同理,略)本地开发时,一般同时开启两个,即
xdebug.mode = debug,profile说明:允许以逗号分隔
xdebug.mode的值,作为标识符来同时启用多个模式
6. MySQL在Windows 环境中的安装
参见我的另一篇文章 MySQL在Windows 环境中的安装
7. 附:Xdebug3 参数说明
7.1 xdebug.mode
此设置控制启用哪些Xdebug功能。
接受以下值:
| 值 | 说明 |
|---|---|
off | 没有启用任何功能。Xdebug 除了检查功能是否已启用外不起作用。如果您想要接近零的开销,请使用此设置。 |
develop | 启用包括重载的var_dump()在内的开发帮助。 |
coverage | 使Code Coverage Analysis能够生成代码覆盖率报告,主要是与PHPUnit结合使用 。 |
coverage | 使Code Coverage Analysis能够生成代码覆盖率报告,主要是与PHPUnit结合使用 。 |
debug | 启用步骤调试。这可用于在代码运行时逐步检查代码,并分析变量的值。 |
gcstats | 使垃圾收集统计信息能够收集有关PHP的垃圾收集机制的统计信息。 |
profile | 启用性能分析,您可以使用它通过KCacheGrind之类的工具分析性能瓶颈。 |
trace | 启用功能跟踪功能,该功能允许您记录每个函数调用,包括参数,变量赋值以及在对文件的请求期间进行的返回值。 |
以"
,"(逗号)分隔xdebug.mode的值作为标识符来同时启用多个模式xdebug.mode=develop,trace。
还可以通过XDEBUG_MODE在命令行上设置环境变量来设置模式,这样优先于xdebug.mode设置。
7.2 start_with_request
在CLI模式下,PHP脚本可以被轻松的调试,但是在fastcgi模式下,xdebug在何种情况拦截请求并触发调试呢,实际上一套WEB API 只有极少有性能瓶颈的API才需要被debug,每个接口都去记录profile是没必要的(此配置的意义)
| 值 | 说明 |
|---|---|
yes | 该功能在 PHP 请求启动时以及运行任何 PHP 代码之前启动。例如,xdebug.mode = trace 和 xdebug.start_with_request = yes启动整个请求的功能跟踪。 |
no | 请求开始时,该功能未激活。你仍然可以调用函数xdebug_start_trace() 来启动 trace;调用xdebug_break()开始逐步调试;调用xdebug_start_gcstats()来做垃圾收集统计。 |
trigger | 1)仅当请求开始时存在特定触发条件时,才激活该功能。触发器的名称是(大写)XDEBUG_TRIGGER,而Xdebug会去检查一下变量中($_ENV,$_GET,$_POST,$_COOKIE)是否有这个字段;2)功能特定的触发器名称也有一个旧式的备用名称:( XDEBUG_PROFILE 对应于 Profiling),(XDEBUG_TRACE 对应于 Function Trace)和 (XDEBUG_SESSION 对应于 Step Debugging);3)也可以通过进行步骤调试的调试会话管理 XDEBUG_SESSION_START。4)使用 xdebug.trigger_value可以控制哪个特定的触发器值将激活该触发器。如果xdebug.trigger_value设置为空字符串,则将接受任何值:示例: http://localhost:8000/test.php?XDEBUG_TRIGGER |
default | 该default值取决于xdebug.mode:debug:triggergcstats:noprofile:yestrace:trigger |


相关文章:
Windows 11 本地 php 开发环境搭建:PHP + Apache + MySQL +VSCode 安装和环境配置
目录 前言1. PHP 的下载、安装和配置1.1 下载 php1.2 安装 php1.3 配置 php 系统变量1.4 配置 php.ini 2. Apache 的下载、安装和配置2.1 下载 Apache2.2 安装 Apache2.3 修改配置 Apache2.4 指定服务端口(非必须)2.5 配置系统变量2.6 安装服务2.7 Apach…...
15个使用率超高的Python库,下载量均过亿
今天给大家分享最近一年内PyPI上下载量最高的Python包。现在我们来看看这些包的作用,他们之间的关系,以及为什么如此流行。 1. Urllib3:8.93亿次下载 Urllib3 是 Python 的 HTTP 客户端,它提供了许多 Python 标准库没有的功能。 …...
所有知识付费都可以用 ChatGPT 再割一次?
伴随春天一起到来的,还有如雨后春笋般冒出的 ChatGPT / AI 相关的付费社群、课程训练营、知识星球等。 ChatGPT 吹来的这股 AI 热潮,这几个月想必大家多多少少都能感受到。 ▲ 图片来源:网络 这两张图是最近在圈子里看到的。 一张是国内各…...
Python中“is”和“==”的区别(避坑)
2.3 “is”和“”的区别 在Python编写代码时,经常会遇到需要判断2个对象是否相等的情况,这个时候一般就会想到使用is和,is和好像都可以用来判断对象是否相等,经常会傻傻分不清,但其实这其中还是有区别的。 不过在这之…...
20230426----重返学习-vue-router路由
day-058-fifty-eight-20230426-vue-router路由 vue-router路由 路由:切换页面,单页面应用上使用的 hash模式—锚点 对应vue版本 如何使用路由版本 vue2 —> router3vue3 —> router4 使用vue-router 创建项目的时候,直接选中路由…...
Java字节码指令
Java代码运行的过程是Java源码->字节码文件(.class)->运行结果。 Java编译器将Java源文件(.java)转换成字节码文件(.class),类加载器将字节码文件加载进内存,然后进行字节码校验,最后Java解释器翻译成机器码。 …...
Vue3之setup参数介绍
setup(props, context) {... }一、参数 使用setup函数时,它将接受两个参数: propscontext 让我们更深入地研究如何使用每个参数 二、Props setup函数中的第一个参数是props。正如在一个标准组件中所期望的那样,setup函数中的props是响应…...
ESET NOD32 互联网安全软件和防毒软件 -简单,可靠的防护。
安全防范病毒和间谍软件,银行和网上购物更安全, 网络摄像头和家用路由器使用更安全,阻止黑客访问您的电脑, 让您的孩子网络安全;产品兑换码仅支持中国ip地址兑换,兑换后可全球通用。 简单,可靠的防护 防范黑客&#x…...
试试这几个冷门但好用的软件吧
软件一:探记 探记是一款专注于个人记录每一条记录的工具,主要特点如下: 简单易用:探记的界面设计简洁明了,操作流程简单易用,用户可以快速、方便地添加记录。 多样化记录类型:探记支持多种记…...
【云原生】k8s NetworkPolicy 网络策略是怎么样的
前言 随着微服务的流行,越来越多的云服务平台需要大量模块之间的网络调用。 在 Kubernetes 中,网络策略(NetworkPolicy)是一种强大的机制,可以控制 Pod 之间和 Pod 与外部网络之间的流量。 Kubernetes 中的 NetworkPolicy 定义了一组规则&…...
手把手教你用几行代码给winform多个控件(数量无上限)赋值
前言: 我们在开发winform程序的过程中,经常会遇到这样一个场景,我们设计的界面,比如主窗体有一百多个TextBox,然后初始化的时候要对这个一百多个TextBox的Text属性赋值,比如赋个1,如果是winfor…...
回炉重造十一------ansible批量安装服务
1.playbook的核心组件 Hosts 执行的远程主机列表Tasks 任务集,由多个task的元素组成的列表实现,每个task是一个字典,一个完整的代码块功能需最 少元素需包括 name 和 task,一个name只能包括一个taskVariables 内置变量或自定义变量在playbook中调用Templates 模板,…...
系统集成项目管理工程师 笔记(第20章:知识产权管理、第21章:法律法规和标准规范)
文章目录 20.1.2 知识产权的特性 58420.2.1 著作权及邻接权 58520.2.2 专利权 58920.2.3 商标权 59221.3 诉讼时效 59921.6.3 标准分级与标准类型 60321.7.2 信息系统集成项目管理常用的技术标准 6061、基础标准2、开发标准3、文档标准4、管理标准 第20章 知识产权管理 584 20.…...
Channel-wise Knowledge Distillation for Dense Prediction(ICCV 2021)原理与代码解析
paper:Channel-wise Knowledge Distillation for Dense Prediction official implementation:https://github.com/irfanICMLL/TorchDistiller/tree/main/SemSeg-distill 摘要 之前大多数用于密集预测dense prediction任务的蒸馏方法在空间域spatial…...
No.052<软考>《(高项)备考大全》【冲刺6】《软考之 119个工具 (4)》
《软考之 119个工具 (4)》 61.人际交往:62.组织理论:63.预分派:64.谈判:65.招募:66.虚拟团队:67.多标准决策分析:68.人际关系技能:69.培训:70.团队建设活动:71.基本规则:72.集中办公:73.认可与奖励:74.人事评测工具:75.观察和交谈:76.项目绩效评估:77.冲…...
Go | 一分钟掌握Go | 9 - 通道
作者:Mars酱 声明:本文章由Mars酱编写,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我! 前言 在Java中,多线程之间的通信方式有哪些?记得吗&…...
【建议收藏】计算机视觉是什么?这几个计算机视觉的核心任务你真的了解吗?
文章目录 📚引言📖计算机视觉的核心任务📑图像分类和对象识别📑目标检测📑语义分割📑实例分割📑图像生成 📖计算机视觉的应用领域📑人脸识别📑自动驾驶&#…...
BatteryChargingSpecification1.2中文详解
1. Introduction 1.1 Scope 规范定义了设备通过USB端口充电的检测、控制和报告机制,这些机制是USB2.0规范的扩展,用于专用 充电器(DCP)、主机(SDP)、hub(SDP)和CDP(大电流充电端口)对设备的充电和power up。这些机制适用 于兼…...
基于Jenkins,docker实现自动化部署(持续交互)【转】
前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致。基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的…...
漫谈大数据 - 数据湖认知篇
导语:数据湖是目前比较热的一个概念,许多企业都在构建或者准备构建自己的数据湖。但是在计划构建数据湖之前,搞清楚什么是数据湖,明确一个数据湖项目的基本组成,进而设计数据湖的基本架构,对于数据湖的构建…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
