当前位置: 首页 > news >正文

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的显示形式,实际上还是一个动态的页面。伪静态的页面后缀可以是htmlhtm或者是目录格式等。像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_modulephp8apache2_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


ComposerPHP 开发必不可少的工具之一,可有效减少依赖包下载和管理的烦恼。

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插件商店中,搜索并安装相关的组件:

  • Composer
  • PHP 语言支持
  • PHP Debug(后面需要做进一步的设置)
  • PHP Extendsion Pack
  • Php 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] 的配置项不同,具体请看官网文档
Xdebug3Xdebug2 配置项变化较大(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,说明安装成功

    如果phpinfoXDebugcmd下没有,请检查环境变量设置是否正确



8)Vs codephpdebug 插件配置

  • 在网站根目录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.ini

    xdebug.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 = tracexdebug.start_with_request = yes启动整个请求的功能跟踪。
no请求开始时,该功能未激活。你仍然可以调用函数xdebug_start_trace() 来启动 trace;调用xdebug_break()开始逐步调试;调用xdebug_start_gcstats()来做垃圾收集统计。
trigger1)仅当请求开始时存在特定触发条件时,才激活该功能。触发器的名称是(大写)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
debugtrigger
gcstatsno
profileyes
tracetrigger



在这里插入图片描述

在这里插入图片描述

相关文章:

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 指定服务端口&#xff08;非必须&#xff09;2.5 配置系统变量2.6 安装服务2.7 Apach…...

15个使用率超高的Python库,下载量均过亿

今天给大家分享最近一年内PyPI上下载量最高的Python包。现在我们来看看这些包的作用&#xff0c;他们之间的关系&#xff0c;以及为什么如此流行。 1. Urllib3&#xff1a;8.93亿次下载 Urllib3 是 Python 的 HTTP 客户端&#xff0c;它提供了许多 Python 标准库没有的功能。 …...

所有知识付费都可以用 ChatGPT 再割一次?

伴随春天一起到来的&#xff0c;还有如雨后春笋般冒出的 ChatGPT / AI 相关的付费社群、课程训练营、知识星球等。 ChatGPT 吹来的这股 AI 热潮&#xff0c;这几个月想必大家多多少少都能感受到。 ▲ 图片来源&#xff1a;网络 这两张图是最近在圈子里看到的。 一张是国内各…...

Python中“is”和“==”的区别(避坑)

2.3 “is”和“”的区别 在Python编写代码时&#xff0c;经常会遇到需要判断2个对象是否相等的情况&#xff0c;这个时候一般就会想到使用is和&#xff0c;is和好像都可以用来判断对象是否相等&#xff0c;经常会傻傻分不清&#xff0c;但其实这其中还是有区别的。 不过在这之…...

20230426----重返学习-vue-router路由

day-058-fifty-eight-20230426-vue-router路由 vue-router路由 路由&#xff1a;切换页面&#xff0c;单页面应用上使用的 hash模式—锚点 对应vue版本 如何使用路由版本 vue2 —> router3vue3 —> router4 使用vue-router 创建项目的时候&#xff0c;直接选中路由…...

Java字节码指令

Java代码运行的过程是Java源码->字节码文件(.class)->运行结果。 Java编译器将Java源文件&#xff08;.java&#xff09;转换成字节码文件(.class)&#xff0c;类加载器将字节码文件加载进内存&#xff0c;然后进行字节码校验&#xff0c;最后Java解释器翻译成机器码。 …...

Vue3之setup参数介绍

setup(props, context) {... }一、参数 使用setup函数时&#xff0c;它将接受两个参数&#xff1a; propscontext 让我们更深入地研究如何使用每个参数 二、Props setup函数中的第一个参数是props。正如在一个标准组件中所期望的那样&#xff0c;setup函数中的props是响应…...

ESET NOD32 互联网安全软件和防毒软件 -简单,可靠的防护。

安全防范病毒和间谍软件&#xff0c;银行和网上购物更安全, 网络摄像头和家用路由器使用更安全&#xff0c;阻止黑客访问您的电脑, 让您的孩子网络安全&#xff1b;产品兑换码仅支持中国ip地址兑换&#xff0c;兑换后可全球通用。 简单&#xff0c;可靠的防护 防范黑客&#x…...

试试这几个冷门但好用的软件吧

软件一&#xff1a;探记 探记是一款专注于个人记录每一条记录的工具&#xff0c;主要特点如下&#xff1a; 简单易用&#xff1a;探记的界面设计简洁明了&#xff0c;操作流程简单易用&#xff0c;用户可以快速、方便地添加记录。 多样化记录类型&#xff1a;探记支持多种记…...

【云原生】k8s NetworkPolicy 网络策略是怎么样的

前言 随着微服务的流行&#xff0c;越来越多的云服务平台需要大量模块之间的网络调用。 在 Kubernetes 中&#xff0c;网络策略(NetworkPolicy)是一种强大的机制&#xff0c;可以控制 Pod 之间和 Pod 与外部网络之间的流量。 Kubernetes 中的 NetworkPolicy 定义了一组规则&…...

手把手教你用几行代码给winform多个控件(数量无上限)赋值

前言&#xff1a; 我们在开发winform程序的过程中&#xff0c;经常会遇到这样一个场景&#xff0c;我们设计的界面&#xff0c;比如主窗体有一百多个TextBox&#xff0c;然后初始化的时候要对这个一百多个TextBox的Text属性赋值&#xff0c;比如赋个1&#xff0c;如果是winfor…...

回炉重造十一------ansible批量安装服务

1.playbook的核心组件 Hosts 执行的远程主机列表Tasks 任务集,由多个task的元素组成的列表实现,每个task是一个字典,一个完整的代码块功能需最 少元素需包括 name 和 task,一个name只能包括一个taskVariables 内置变量或自定义变量在playbook中调用Templates 模板&#xff0c;…...

系统集成项目管理工程师 笔记(第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&#xff1a;Channel-wise Knowledge Distillation for Dense Prediction official implementation&#xff1a;https://github.com/irfanICMLL/TorchDistiller/tree/main/SemSeg-distill 摘要 之前大多数用于密集预测dense prediction任务的蒸馏方法在空间域spatial…...

No.052<软考>《(高项)备考大全》【冲刺6】《软考之 119个工具 (4)》

《软考之 119个工具 &#xff08;4&#xff09;》 61.人际交往:62.组织理论:63.预分派:64.谈判:65.招募:66.虚拟团队:67.多标准决策分析:68.人际关系技能:69.培训:70.团队建设活动:71.基本规则:72.集中办公:73.认可与奖励:74.人事评测工具:75.观察和交谈:76.项目绩效评估:77.冲…...

Go | 一分钟掌握Go | 9 - 通道

作者&#xff1a;Mars酱 声明&#xff1a;本文章由Mars酱编写&#xff0c;部分内容来源于网络&#xff0c;如有疑问请联系本人。 转载&#xff1a;欢迎转载&#xff0c;转载前先请联系我&#xff01; 前言 在Java中&#xff0c;多线程之间的通信方式有哪些&#xff1f;记得吗&…...

【建议收藏】计算机视觉是什么?这几个计算机视觉的核心任务你真的了解吗?

文章目录 &#x1f4da;引言&#x1f4d6;计算机视觉的核心任务&#x1f4d1;图像分类和对象识别&#x1f4d1;目标检测&#x1f4d1;语义分割&#x1f4d1;实例分割&#x1f4d1;图像生成 &#x1f4d6;计算机视觉的应用领域&#x1f4d1;人脸识别&#x1f4d1;自动驾驶&#…...

BatteryChargingSpecification1.2中文详解

1. Introduction 1.1 Scope 规范定义了设备通过USB端口充电的检测、控制和报告机制&#xff0c;这些机制是USB2.0规范的扩展&#xff0c;用于专用 充电器&#xff08;DCP&#xff09;、主机(SDP)、hub(SDP)和CDP(大电流充电端口)对设备的充电和power up。这些机制适用 于兼…...

基于Jenkins,docker实现自动化部署(持续交互)【转】

前言 随着业务的增长&#xff0c;需求也开始增多&#xff0c;每个需求的大小&#xff0c;开发周期&#xff0c;发布时间都不一致。基于微服务的系统架构&#xff0c;功能的叠加&#xff0c;对应的服务的数量也在增加&#xff0c;大小功能的快速迭代&#xff0c;更加要求部署的…...

漫谈大数据 - 数据湖认知篇

导语&#xff1a;数据湖是目前比较热的一个概念&#xff0c;许多企业都在构建或者准备构建自己的数据湖。但是在计划构建数据湖之前&#xff0c;搞清楚什么是数据湖&#xff0c;明确一个数据湖项目的基本组成&#xff0c;进而设计数据湖的基本架构&#xff0c;对于数据湖的构建…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...