坏蛋格鲁坏蛋格鲁

【Dev】Windows 全手动搭建开发环境

Windows 11 全栈开发环境搭建手册

Windows 下最省资源的开发环境方案,核心思路是:绿色免安装 + 单实例多版本切换 + 按需启动


1. 概览

  • 架构设计
组件方案资源占用策略
Nginx官方绿色版单实例,worker 数设为 CPU 核心数
PHP多版本绿色共存仅加载当前项目需要的版本
MySQL官方 ZIP 版(非 Installer)关闭性能 schema,调低 buffer
Redis官方绿色版关闭 AOF,仅 RDB
MongoDB官方 ZIP 版关闭 journal(开发环境)
JDK多版本绿色共存通过环境变量切换,无后台常驻
  • 目录结构
D:\DevEnv\
├── nginx\                    # Nginx 主目录
├── php\
│   ├── php74\               # PHP 7.4
│   ├── php81\               # PHP 8.1
│   └── php82\               # PHP 8.2,默认
│   └── php83\               # PHP 8.3
│   └── php84\               # PHP 8.4
│   └── php85\               # PHP 8.5
├── mysql\                   # MySQL 8.0
├── redis\                   # Redis
├── mongodb\                 # MongoDB
├── jdk\
│   ├── jdk8\                # JDK 8
│   ├── jdk11\               # JDK 11
│   ├── jdk17\               # JDK 17
│   └── jdk21\               # JDK 21,默认
└── scripts\                 # 一键启动/切换脚本
    ├── php-manager.bat      # PHP 版本管理,用于切换 PHP 版本,仅供参考学习
    ├── dstart.bat           # Nginx + PHP 开发环境一键启动
    ├── dstop.bat            # Nginx + PHP 开发环境一键停止
    ├── mysql-start.bat      # MySQL 服务启动
    └── mysql-stop.bat       # MySQL 服务停止

C:\DevEnv\scripts 目录添加到环境变量中,以便在任何地方都能直接执行这些脚本


2. Node 环境搭建

  1. 下载 Node.js 版本管理工具:NVM - https://github.com/coreybutler/nvm-windows/releases/download/1.2.2/nvm-setup.exe
  2. 在终端里执行如下命令,配置 Node.js 版本环境
# 查看 nvm 自身版本
nvm version  # 或 nvm -v

# 安装指定精确版本
nvm install <version>  # 示例: nvm install 20.12.0
# 安装某个主版本下的最新版
nvm install <major>    # 示例: nvm install 18   → 安装 18.x 最新版
# 安装最新的 LTS(长期支持)版本
nvm install lts
# 安装最新的 Current(开发版)版本
nvm install latest

# 卸载指定版本(不能卸载当前正在使用的版本)
nvm uninstall <version>  # 示例:nvm uninstall 16.14.0

# 列出本地已安装的所有 Node.js 版本
nvm list  # 或 nvm ls
# 列出所有官方可安装的版本(含 LTS/Current 标记)
nvm list available   # 或 nvm ls available,显示远程仓库里的可用版本列表
# 切换 Node.js 到指定版本
nvm use <version>    # 示例:nvm use 18.17.0
# 切换到某个主版本下已安装的最新子版本
nvm use <major>      # 示例:nvm use 18
# 显示当前正在使用的 Node.js 版本
nvm current    # 切换成功后,node -v 和 npm -v 会立即反映新版本
  1. 更多关于 NVM 的使用,请查看文档:https://blog.csdn.net/m0_73246652/article/details/155772054

3. Nginx + 多版本 PHP 环境搭建

3.1 下载 Nginx

  1. 下载 Nginx 绿色版:https://nginx.org/en/download.html --> Stable version → nginx/Windows-x.x.x
  2. 解压下载的压缩包到 C:\DevEnv\nginx 目录

3.3 下载 PHP 多版本共存

  1. 下载 PHP 各个版本的 Zip 压缩包:https://windows.php.net/download --> 选择 VS16 x64 Non Thread Safe 版本(配合 Nginx 用 FastCGI,NTS 更省资源)
  2. 解压下载的压缩包到 C:\DevEnv\php 目录

3.4 目录结构说明

C:\DevEnv
├── nginx
│    ├── nginx.conf          # 主配置
│    ├── upstream-php.conf   # PHP 版本池定义
│    └── vhosts\             # 虚拟主机配置
│        ├── default.conf    # 默认站点配置,PHP82 版本
│        ├── php74.conf
│        ├── php81.conf
│        ├── php83.conf
│        ├── php84.conf
│        └── php85.conf        
├── html\                   # 默认站点
├── logs\                   # 日志目录
├── temp\                   # 临时文件
│    ├── session\
│    └── upload\
└── php                     # PHP 多版本目录,每个版本一个子目录,每个子目录包含 PHP 安装文件与手动创建的 php.ini 配置文件
    ├── php82
    │    ├── php.exe
    │    ├── php-cgi.exe
    │    ├── php.ini
    │    └── ext\
    ├── php74
    │    └── ...
    ├── php81
    │    └── ...
    ├── php83
    │    └── ...
    ├── php84
    │    └── ...
    └── php85
        └── ...

3.5 Nginx 配置多站点

  1. DevEnv/nginx/conf/nginx.conf:主配置文件
# 只开一个 worker,省内存
worker_processes  1;

# 错误日志级别调高,减少 IO
error_log  logs/error.log  warn;

events {
    worker_connections  1024;
    # 使用 select(Windows 最优)
    use select;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    # 关闭访问日志,或只记录错误
    access_log off;

    # 高效文件传输
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    # 保持连接时间缩短
    keepalive_timeout  60;
    
    # 请求体限制
    client_max_body_size 50m;
    client_body_buffer_size 128k;

    # Gzip(开发环境可关闭,省 CPU)
    # gzip on;
    # gzip_types text/plain text/css application/json;

    # 引入 PHP 版本池
    include upstream-php.conf;

    # 引入虚拟主机
    include vhosts/*.conf;
}
  1. DevEnv/nginx/conf/upstream-php.conf:PHP 版本池配置文件
# PHP 7.4
upstream php74 {
    server 127.0.0.1:9074 weight=5 max_fails=3 fail_timeout=30s;
    keepalive 5;
}

# PHP 8.1
upstream php81 {
    server 127.0.0.1:9081 weight=5 max_fails=3 fail_timeout=30s;
    keepalive 5;
}

# PHP 8.2
upstream php82 {
    server 127.0.0.1:9082 weight=5 max_fails=3 fail_timeout=30s;
    keepalive 5;
}

# PHP 8.3
upstream php83 {
    server 127.0.0.1:9083 weight=5 max_fails=3 fail_timeout=30s;
    keepalive 5;
}

# PHP 8.4
upstream php84 {
    server 127.0.0.1:9084 weight=5 max_fails=3 fail_timeout=30s;
    keepalive 5;
}

# PHP 8.5
upstream php85 {
    server 127.0.0.1:9085 weight=5 max_fails=3 fail_timeout=30s;
    keepalive 5;
}
  1. DevEnv/nginx/conf/vhosts/default.conf:默认虚拟主机配置文件,PHP8.2 版本
server {
    listen       80;
    server_name  localhost;

    root   D:/WWW;
    index  index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    # 静态文件缓存
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }

    # PHP 默认走 8.2
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass   php82;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;

        # FastCGI 优化
        fastcgi_connect_timeout 300s;
        fastcgi_send_timeout 300s;
        fastcgi_read_timeout 300s;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
    }
}
  1. DevEnv/nginx/conf/vhosts/PHPxx.conf:其他虚拟主机配置文件,配置内容完全一直,只需要注意修改如下注释形式指出的地方
server {
    listen       80;
    server_name  php74.localhost;       # 注意修改:PHP 7.4 对应的服务器名称

    root   D:/WWW/php74;                # 注意修改:指向 PHP 7.4 对应的项目工程根目录
    index  index.php index.html;

    # 日志分离(调试用)
    error_log  logs/php74-error.log  warn;  # 注意修改:指向 PHP 7.4 对应的错误日志

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass   php74;          # 注意修改:指向 PHP 7.4 池
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

3.6 PHP 配置

每个 PHP 版本都有一个对应的 php.ini 文件,用于配置 PHP 的各项参数

以默认的 PHP 8.2 版本为例,其 php.ini 文件位于 C:/DevEnv/php/php82/php.ini,配置内容如下

;========== 基础设置 ==========
engine = On
short_open_tag = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = -1
disable_functions = passthru,exec,system,proc_open,popen
disable_classes =
zend.enable_gc = On

;========== 资源限制 ==========
memory_limit = 128M
max_execution_time = 30
max_input_time = 60
max_input_vars = 1000
max_file_uploads = 20
upload_max_filesize = 20M
post_max_size = 20M

;========== 错误处理 ==========
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = On          ; 开发环境开启
display_startup_errors = On
log_errors = On
;; 注意修改:PHP 8.2 对应的错误日志文件名 ;;
error_log = "C:/DevEnv/php/logs/php82-error.log"    
log_errors_max_len = 1024
ignore_repeated_errors = On
ignore_repeated_source = On
html_errors = On

;========== 扩展目录 ==========
extension_dir = "ext"

;========== 必要扩展(按需增减)==========
extension=curl
extension=fileinfo
extension=gd
extension=gettext
extension=intl
extension=mbstring
extension=exif      ; 依赖 mbstring
extension=mysqli
extension=openssl
extension=pdo_mysql
extension=soap
extension=sockets
extension=zip
extension=xsl

;========== OPcache(开发环境关闭或轻量)==========
opcache.enable = 0
; opcache.memory_consumption = 64
; opcache.interned_strings_buffer = 8
; opcache.max_accelerated_files = 4000
; opcache.revalidate_freq = 2

;========== 会话设置 ==========
session.save_handler = files
session.save_path = "C:/DevEnv/php/tmp/session"
session.use_strict_mode = 1
session.use_cookies = 1
session.name = PHPSESSID
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly = 1
session.gc_maxlifetime = 1440

;========== 上传临时目录 ==========
upload_tmp_dir = "C:/DevEnv/php/tmp/upload"

;========== 时区 ==========
date.timezone = Asia/Shanghai

;========== MySQLi ==========
mysqli.default_host = 127.0.0.1
mysqli.default_port = 3306
mysqli.default_user = root
mysqli.default_pw = root123456
mysqli.reconnect = Off

;========== PDO MySQL ==========
pdo_mysql.default_socket =

其他版本的 php.ini 文件配置内容与 PHP 8.2 版本一致,只需要注意修改如下注释形式指出的地方

3.7 环境管理脚本

  1. PHP 版本管理脚本:未实测,用于学习参考,脚本路径:C:/DevEnv/scripts/php-manager.bat
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

:: 配置路径
set "PHP_DIR=C:\DevEnv\php"
set "TMP_DIR=C:\DevEnv\php\tmp"
set "LOG_DIR=C:\DevEnv\php\logs"

:: 确保目录存在
if not exist "%TMP_DIR%\session" mkdir "%TMP_DIR%\session"
if not exist "%TMP_DIR%\upload" mkdir "%TMP_DIR%\upload"
if not exist "%LOG_DIR%" mkdir "%LOG_DIR%"

:: 参数解析
set "ACTION=%1"
set "VERSION=%2"

if "%ACTION%"=="" goto :usage
if "%VERSION%"=="" goto :usage

:: 验证版本
if not exist "%PHP_DIR%\php%VERSION%\php-cgi.exe" (
    echo [错误] PHP %VERSION% 未安装
    echo 可用版本:
    dir /b "%PHP_DIR%\php*" 2>nul
    exit /b 1
)

if /i "%ACTION%"=="start" goto :start
if /i "%ACTION%"=="stop" goto :stop
if /i "%ACTION%"=="restart" goto :restart
if /i "%ACTION%"=="status" goto :status
goto :usage

:start
    echo [启动] PHP %VERSION% ...
    
    :: 先停止其他版本
    taskkill /F /IM php-cgi.exe >nul 2>&1
    timeout /t 1 /nobreak >nul
    
    :: 端口映射
    if "%VERSION%"=="74" set PORT=9074
    if "%VERSION%"=="81" set PORT=9081
    if "%VERSION%"=="82" set PORT=9082
    if "%VERSION%"=="83" set PORT=9083
    if "%VERSION%"=="84" set PORT=9084
    if "%VERSION%"=="85" set PORT=9085
    
    :: 启动 CGI
    start /b "" "%PHP_DIR%\php%VERSION%\php-cgi.exe" -b 127.0.0.1:%PORT% -c "%PHP_DIR%\php%VERSION%\php.ini"
    
    timeout /t 2 /nobreak >nul
    
    :: 验证
    tasklist | findstr php-cgi >nul
    if %errorlevel%==0 (
        echo [成功] PHP %VERSION% 已启动,端口: %PORT%
        echo [验证] 版本信息:
        "%PHP_DIR%\php%VERSION%\php.exe" -v
    ) else (
        echo [失败] 启动失败,检查日志: %LOG_DIR%\php%VERSION%-error.log
    )
    goto :eof

:stop
    echo [停止] 正在停止 PHP ...
    taskkill /F /IM php-cgi.exe >nul 2>&1
    echo [成功] PHP 已停止
    goto :eof

:restart
    call :stop
    call :start
    goto :eof

:status
    echo [状态] PHP 进程:
    tasklist | findstr php-cgi
    if %errorlevel%==1 echo 未运行
    goto :eof

:usage
    echo ===================================
    echo   PHP 版本管理器
    echo ===================================
    echo 用法:
    echo   php-manager.bat [action] [version]
    echo.
    echo 操作:
    echo   start    启动指定版本
    echo   stop     停止所有 PHP
    echo   restart  重启指定版本
    echo   status   查看状态
    echo.
    echo 版本:
    echo   74       PHP 7.4
    echo   81       PHP 8.1
    echo   82       PHP 8.2
    echo   83       PHP 8.3
    echo   84       PHP 8.4
    echo   85       PHP 8.5
    echo.
    echo 示例:
    echo   php-manager.bat start 82
    echo   php-manager.bat stop
    echo   php-manager.bat restart 74
    echo ===================================
    exit /b 1
  1. Nginx + PHP 开发环境一键启动,脚本路径:C:/DevEnv/scripts/dstart.bat
@echo off
chcp 65001 >nul

set "DEVENV_DIR=C:\DevEnv"
set "NGINX_DIR=%DEVENV_DIR%\nginx"
set "PHP_DIR=%DEVENV_DIR%\php"
set "PHP_VERSION=%~1"
if "%PHP_VERSION%"=="" set "PHP_VERSION=82"

if "%PHP_VERSION%"=="74" set "PORT=9074"
if "%PHP_VERSION%"=="81" set "PORT=9081"
if "%PHP_VERSION%"=="82" set "PORT=9082"
if "%PHP_VERSION%"=="83" set "PORT=9083"
if "%PHP_VERSION%"=="84" set "PORT=9084"
if "%PHP_VERSION%"=="85" set "PORT=9085"


echo;
echo [1/3] 检查 Nginx ...
tasklist /FI "IMAGENAME eq nginx.exe" 2>nul | findstr /I "nginx.exe" >nul
if %errorlevel% neq 0 (
    start /b "" "%NGINX_DIR%\nginx.exe" -p "%NGINX_DIR%"
    timeout /t 1 /nobreak >nul
    echo         Nginx 已启动
) else (
    echo         Nginx 已在运行
)

echo;
echo [2/3] 切换 PHP 到 %PHP_VERSION% ...
taskkill /F /IM php-cgi.exe >nul 2>&1
timeout /t 1 /nobreak >nul

if not exist "%PHP_DIR%\php%PHP_VERSION%\php-cgi.exe" (
    echo [错误] 未找到 PHP %PHP_VERSION%
    echo        路径: %PHP_DIR%\php%PHP_VERSION%\php-cgi.exe
    exit /b 1
)

:: 方案 A: 使用 wmic + Win32_ProcessStartup 设置窗口隐藏
:: 创建临时 VBS 脚本来无窗口启动 PHP(最可靠)
echo Set WshShell = CreateObject("WScript.Shell") > "%TEMP%\start-php-%PHP_VERSION%.vbs"
echo WshShell.Run """%PHP_DIR%\php%PHP_VERSION%\php-cgi.exe"" -b 127.0.0.1:%PORT% -c ""%PHP_DIR%\php%PHP_VERSION%\php.ini""", 0, False >> "%TEMP%\start-php-%PHP_VERSION%.vbs"
cscript //nologo "%TEMP%\start-php-%PHP_VERSION%.vbs"
del "%TEMP%\start-php-%PHP_VERSION%.vbs" >nul 2>&1

echo         PHP %PHP_VERSION% 已启动 (端口 %PORT%)

echo;
echo [3/3] 验证服务状态 ...
timeout /t 1 /nobreak >nul

tasklist /FI "IMAGENAME eq nginx.exe" 2>nul | findstr /I "nginx.exe" >nul && set "NGINX_OK=1" || set "NGINX_OK%=0"
tasklist /FI "IMAGENAME eq php-cgi.exe" 2>nul | findstr /I "php-cgi.exe" >nul && set "PHP_OK=1" || set "PHP_OK=0"

if "%NGINX_OK%"=="1" (echo   [OK] Nginx) else (echo   [FAIL] Nginx)
if "%PHP_OK%"=="1" (echo   [OK] PHP %PHP_VERSION% :%PORT%) else (echo   [FAIL] PHP %PHP_VERSION%)

echo;
echo =========================================
if "%PHP_VERSION%"=="82" (echo       访问: http://localhost) else (echo       访问: http://php%PHP_VERSION%.localhost)
echo =========================================

重要补充说明

由于在此启动脚本中,启动 PHP 时使用了 wmic + Win32_ProcessStartup 来设置窗口隐藏的启动方式,因此需要 Windows 需要开启 WMIC 相关的部署

Windows 开启 WMIC 相关的部署: 以管理员身份运行终端,执行如下命令,等待命令完成后重启电脑

# 启用 wmic 功能
dism /Online /Add-Capability /CapabilityName:WMIC~~~~
  1. Nginx + PHP 开发环境一键停止,脚本路径:C:/DevEnv/scripts/dstop.bat
@echo off
chcp 65001 >nul

taskkill /F /IM nginx.exe >nul 2>&1
taskkill /F /IM php-cgi.exe >nul 2>&1

echo =========================================
echo   开发环境已停止
echo =========================================
  1. 通过脚本管理开发环境
  • dstart:Nginx + PHP 开发环境一键启动
  • dstop:Nginx + PHP 开发环境一键停止
  • php-manager:PHP 版本管理,用于切换 PHP 版本,仅供参考学习

3. MySQL 环境搭建

  1. 下载 MySQL:MySQL 官方下载 - https://dev.mysql.com/downloads/mysql/ --> Windows (x86, 64-bit), ZIP Archive
  2. 解压下载的 MySQL 压缩包到 C:/DevEnv/mysql 目录
  3. MySQL 初始化并直接设置 root 密码

在路径 C:/DevEnv/mysql 下打开终端,执行如下命令:

mysqld --initialize --console

运行后控制台会输出类似:

[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: abc123XYZ!

记下末尾临时密码: abc123XYZ!

在路径 C:/DevEnv/mysql 下打开终端,执行如下命令:修改 root 密码

# 启动mysql
mysqld

# 新开cmd登录
mysql -uroot -p
# 粘贴临时密码进入,如上文的 abc123XYZ!

# 修改 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123456';

# 刷新权限
FLUSH PRIVILEGES;
  1. MySQL 脚本配置
  • MySQL 一键启动,脚本路径:C:/DevEnv/scripts/mysql-start.bat
@echo off
chcp 65001 >nul
:: MySQL 根目录
set MYSQL_HOME=C:\DevEnv\mysql
set BIN=%MYSQL_HOME%\bin
set INI=%MYSQL_HOME%\my.ini

:: 切换到bin目录
cd /d %BIN%

:: 检查mysqld是否存在
if not exist mysqld.exe (
    echo 错误:未找到 mysqld.exe,请检查 MYSQL_HOME 路径!
    pause
    exit /b 1
)

:: 后台无窗口启动mysqld
echo 正在后台启动 MySQL 服务...
start /b mysqld --defaults-file="%INI%"

echo;
echo =========================================
echo MySQL 已后台启动,无控制台窗口
echo =========================================
echo;

timeout /t 2 >nul
  • MySQL 一键停止,脚本路径:C:/DevEnv/scripts/mysql-stop.bat
@echo off
chcp 65001 >nul
set MYSQL_HOME=C:\DevEnv\mysql
set BIN=%MYSQL_HOME%\bin
cd /d %BIN%

echo 正在关闭 MySQL
mysqladmin --defaults-extra-file="%MYSQL_HOME%\.my.cnf" shutdown

echo MySQL 关闭完成
pause
  1. MySQL 管理脚本
  • mysql-start:MySQL 服务启动
  • mysql-stop:MySQL 服务停止

4. Redis 环境搭建

  1. 下载 Redis:Redis 下载 - https://github.com/redis-windows/redis-windows/releases --> Redis-8.8.0-Windows-x64-msys2-with-Service.zip
  2. 解压下载的 Redis 压缩包到 C:/DevEnv/redis 目录
  3. 配置 Redis:更新 redis 配置文件内容,路径为 C:\DevEnv\redis\redis.conf
bind 127.0.0.1
port 6379

# 关闭 AOF(省磁盘 IO)
appendonly no

# RDB 快照
save 900 1
save 300 10
save 60 10000

# 内存上限
maxmemory 64mb
maxmemory-policy allkeys-lru

# 关闭后台线程(Windows 不支持)
daemonize no
  1. Redis 脚本配置
  • Redis 一键启动,脚本路径:C:/DevEnv/scripts/redis-start.bat
@echo off
chcp 65001 >nul
title Redis 启动脚本
:: Redis 根目录配置,按需修改
set "REDIS_ROOT=C:\DevEnv\redis"

:: 切换到脚本所在目录
cd /d "%~dp0"
echo Redis程序目录:%REDIS_ROOT%
echo.

:: 校验Redis目录
if not exist "%REDIS_ROOT%\" (
    echo [错误] Redis目录不存在:%REDIS_ROOT%
    timeout /t 3 /nobreak >nul
    exit /b 1
)

:: 校验程序与配置文件
if not exist "%REDIS_ROOT%\redis-server.exe" (
    echo [错误] 未找到 redis-server.exe
    echo 路径:%REDIS_ROOT%\redis-server.exe
    timeout /t 3 /nobreak >nul
    exit /b 1
)
if not exist "%REDIS_ROOT%\redis.conf" (
    echo [错误] 未找到 redis.conf
    echo 路径:%REDIS_ROOT%\redis.conf
    timeout /t 3 /nobreak >nul
    exit /b 1
)

:: 检测是否已运行
tasklist | findstr /i "redis-server.exe" >nul
if %errorlevel% equ 0 (
    echo [提示] Redis 已在后台运行,无需重复启动
    timeout /t 2 /nobreak >nul
    exit /b 0
)

:: 切换Redis目录,后台无阻塞启动
cd /d "%REDIS_ROOT%"
echo [信息] 后台启动 Redis 中...
start /b "" redis-server.exe redis.conf

:: 短暂等待检测启动状态
timeout /t 1 /nobreak >nul
tasklist | findstr /i "redis-server.exe" >nul
if %errorlevel% equ 0 (
    echo [成功] Redis 已后台运行,本窗口将自动关闭
) else (
    echo [失败] Redis 启动异常,请检查配置文件
)

echo;
echo ======================================
echo          Redis 后台启动成功
echo ======================================
echo;

:: 移除 pause,不挂起窗口,2秒后自动关闭
timeout /t 2 /nobreak >nul
exit
  • Redis 一键停止,脚本路径:C:/DevEnv/scripts/redis-stop.bat
@echo off
chcp 65001 >nul
title Redis 停止脚本
:: 和启动脚本保持一致的Redis路径
set "REDIS_ROOT=C:\DevEnv\redis"

cd /d "%~dp0"
echo ======================================
echo          Redis 停止工具
echo ======================================
echo Redis程序目录:%REDIS_ROOT%
echo.

if not exist "%REDIS_ROOT%\redis-cli.exe" (
    echo [错误] 找不到 redis-cli.exe,路径:%REDIS_ROOT%
    pause
    exit /b 1
)

cd /d "%REDIS_ROOT%"
echo [信息] 尝试优雅关闭Redis(持久化数据)Redis(持久化数据)
redis-cli shutdown

timeout /t 2 /nobreak >nul
tasklist | findstr "redis-server.exe" >nul

echo;
if %errorlevel% equ 0 (
    echo [警告] 优雅关闭失败,强制杀死进程
    taskkill /f /im redis-server.exe
    echo 进程已强制终止
) else (
    echo ======================================
    echo         [成功] Redis 已正常停止
    echo ======================================
)

echo.
pause
  1. Redis 管理脚本
  • redis-start:Redis 服务启动
  • redis-stop:Redis 服务停止

5. MongoDB 环境搭建

  1. 下载 MongoDB:MongoDB 下载 - https://www.mongodb.com/try/download/community --> 下拉选择 ZIP 版本
  2. 解压下载的 MongoDB 压缩包到 C:/DevEnv/mongodb 目录
  3. 配置 MongoDB:更新 MongoDB 配置文件内容,路径为 C:\DevEnv\mongodb\mongod.conf
storage:
  dbPath: C:\DevEnv\mongodb\data
  wiredTiger:
    engineConfig:
      cacheSizeGB: 0.25      # 限制 256MB

systemLog:
  destination: file
  path: C:\DevEnv\mongodb\log\mongod.log
  logAppend: true

net:
  bindIp: 127.0.0.1
  port: 27017

# 关闭权限验证(开发环境)
security:
  authorization: disabled
  1. MongoDB 脚本配置
  • MongoDB 一键启动,脚本路径:C:/DevEnv/scripts/mongo-start.bat
@echo off
chcp 65001 >nul
set "MONGO_ROOT=C:\DevEnv\mongodb"
set "MONGOD_EXE=%MONGO_ROOT%\bin\mongod.exe"
set "CONF_FILE=%MONGO_ROOT%\mongod.conf"

if not exist "%MONGOD_EXE%" (
    echo [错误] 找不到程序:%MONGOD_EXE%
    pause
    exit /b 1
)
if not exist "%CONF_FILE%" (
    echo [错误] 找不到配置文件:%CONF_FILE%
    pause
    exit /b 1
)

:: 关键:将 stdout 和 stderr 重定向到 nul,真正脱离控制台
start /b "" "%MONGOD_EXE%" --config "%CONF_FILE%" >nul 2>nul

echo;
echo ===============================================
echo            MongoDB 已后台启动
echo ===============================================
echo;

:: 去掉 pause,直接退出
timeout /t 1 >nul
  • MongoDB 一键停止,脚本路径:C:/DevEnv/scripts/mongo-stop.bat
@echo off
chcp 65001 >nul

echo 正在停止 MongoDB 服务...

:: 尝试优雅终止 mongod 进程
taskkill /f /im mongod.exe >nul 2>nul

echo;
echo ==============================================
if %errorlevel% equ 0 (
    echo          MongoDB 已停止
) else (
    echo     [提示] 未找到运行中的 MongoDB 进程
)
echo ==============================================
echo;

timeout /t 1 >nul
  1. MongoDB 管理脚本
  • mongo-start:MongoDB 服务启动
  • mongo-stop:MongoDB 服务停止

6. Java 多版本共存的 JDK 环境搭建

  1. 下载 JDK:统一选择 ZIP 版本

  2. 解压下载的各版本 JDK 统一解压到 C:/DevEnv/jdk 目录下
  3. 设置 JAVA 所有版本的环境变量,在系统变量里分别新建如下变量
  • JAVA_HOME_8:JDK 8 安装路径,C:\DevEnv\jdk\jdk8
  • JAVA_HOME_11:JDK 11 安装路径,C:\DevEnv\jdk\jdk11
  • JAVA_HOME_17:JDK 17 安装路径,C:\DevEnv\jdk\jdk17
  • JAVA_HOME_21:JDK 21 安装路径,C:\DevEnv\jdk\jdk21
  • JAVA_HOME_25:JDK 25 安装路径,C:\DevEnv\jdk\jdk25
  1. 为当前使用的 JAVA 版本创建对应的环境变量
  • JAVA_HOME:当前使用的 JAVA 版本的安装路径,例如 %JAVA_HOME_21%
  1. 将当前应用的 JAVA 版本系统变量的 bin 目录添加到系统路径 path 中
  • path:将 %JAVA_HOME%\bin 添加到系统路径中
  1. 切换 JAVA 版本:修改 JAVA_HOME 环境变量的值,将其切换到所需的 JAVA 版本
  • 如要切换到 JDK 17,只需将 %JAVA_HOME% 的值修改为 %JAVA_HOME_17% 即可
本原创文章未经允许不得转载 | 当前页面:坏蛋格鲁 » 【Dev】Windows 全手动搭建开发环境

评论 34

  1. Copium free zone our casino games actually deliver the goods Casino mate

    Danielthype 2026-06-24    回复
  2. Метод обеспечивает стабильность при жевании, эстетику и комфорт без съемных протезов https://rudentordu.com/treatments/skulovye-implantaty.html
    Конструкция подбирается индивидуально по форме, прикусу и анатомии пациента https://rudentordu.com/treatments/tsifrovoy-dizayn-ulybki.html

    Почему важно лечить десны вовремя
    Преимущества зубных имплантатов
    Современные методы позволяют провести процедуру точно и максимально щадяще, с хорошим долгосрочным прогнозом https://rudentordu.com/treatments/metod-all-on-4-5-6.html

    VictorDus 2026-06-24    回复
  3. Вы стесняетесь улыбаться на фото и в общении https://rudentordu.com/our-team.html

    После полной адаптации конструкция ощущается естественно, улучшается дикция и возвращается уверенность при приеме пищи и общении https://rudentordu.com/treatments/toronto-most.html

    Ключевой фактор - регулярность ухода и контроль воспаления https://rudentordu.com/index.html
    Даже после активного лечения состояние десен нужно поддерживать плановыми визитами https://rudentordu.com/treatments/skulovye-implantaty.html

    Проходите профилактический осмотр минимум 2 раза в год https://rudentordu.com/index.html

    VictorDus 2026-06-24    回复
  4. Отек, покраснение или болезненность десен https://rudentordu.com/our-team.html

    Почему важно выбрать эндодонтию, а не удаление
    Дентальный имплантат и рентген-снимок

    Изменение цвета зуба после травмы https://rudentordu.com/our-team.html

    VictorDus 2026-06-25    回复
  5. Эстетическая реабилитация улыбки

    Надежная фиксация и устойчивость при жевании https://rudentordu.com/press-digital-dentistry-uk-office.html

    Преимущества зубных имплантатов

    VictorDus 2026-06-25    回复
  6. 4) Ортопедический этап: установка абатмента и постоянной коронки (или другой конструкции).
    Отсутствует один или несколько зубов https://rudentordu.com/treatments/otbelivanie-zubov.html

    Помогает избежать дополнительного протезирования в будущем https://rudentordu.com/treatments/tsifrovoy-dizayn-ulybki.html

    Торонто-мост позволяет быстро перейти от неудобных съемных решений к стабильной фиксированной конструкции https://rudentordu.com/contact.html
    Это особенно важно для людей, которым нужен надежный функциональный результат и уверенность в повседневной жизни https://rudentordu.com/treatments/tsifrovoy-dizayn-ulybki.html

    Пациентам с контролируемыми хроническими заболеваниями (например, диабет, гипертония).

    VictorDus 2026-06-25    回复
  7. Bu arada, eger gomlek nas?l utulenir konusuyla ilgileniyorsan?z, suraya bak?n. Iste link: [url=https://hobiprojesi.com/articles/kolay-gomlek-utuleme-yontemleri/]https://hobiprojesi.com/articles/kolay-gomlek-utuleme-yontemleri/[/url]

    TimothyWar 2026-06-25    回复
  8. Не курите и не употребляйте алкоголь в период заживления https://rudentordu.com/contact.html

    3) Долговечность https://rudentordu.com/treatments/toronto-most.html
    При правильном уходе и регулярных осмотрах имплантаты служат долгие годы https://rudentordu.com/treatments/implantatsiya.html

    Чем раньше начато лечение, тем выше шанс сохранить зуб без осложнений https://rudentordu.com/our-team.html

    Безопасное лечение в DentOrdu

    VictorDus 2026-06-25    回复
  9. Отсутствует один или несколько зубов https://rudentordu.com/treatments/otbelivanie-zubov.html

    4) Ортопедический этап: установка абатмента и постоянной коронки (или другой конструкции).
    Соблюдайте ежедневную гигиену: щетка, нить, ополаскиватель https://rudentordu.com/

    2) Профессиональная чистка и устранение воспаления https://rudentordu.com/press-digital-dentistry-uk-office.html

    В клинике DentOrdu имплантологическое лечение проводят опытные хирурги на современном оборудовании с использованием имплантатов европейского стандарта https://rudentordu.com/treatments/skulovye-implantaty.html

    Боль усиливается ночью или самопроизвольно https://rudentordu.com/treatments/implantatsiya.html

    VictorDus 2026-06-25    回复
  10. После лечения обязательно восстанавливается коронковая часть зуба https://rudentordu.com/

    Обсудите желаемый оттенок с учетом тона кожи и формы лица https://rudentordu.com/our-team.html

    Плановый контроль помогает оценить качество заживления тканей https://rudentordu.com/treatments/tsifrovoy-dizayn-ulybki.html

    Какие признаки говорят, что пора на консультацию

    Почему стоит выбрать имплантацию

    VictorDus 2026-06-25    回复
  11. Помогает сохранить объем кости и пропорции лица https://rudentordu.com/treatments/toronto-most.html

    Лечение десен у стоматолога

    Как подготовиться к имплантации

    Надежная фиксация и устойчивость при жевании https://rudentordu.com/treatments/implantatsiya.html

    VictorDus 2026-06-25    回复
  12. Появился отек десны или щеки https://rudentordu.com/treatments/skulovye-implantaty.html

    Изменение цвета зуба после травмы https://rudentordu.com/treatments/gollivudskaya-ulybka.html

    Торонто-мост - это несъемная ортопедическая конструкция, которая фиксируется на имплантатах и восстанавливает полный зубной ряд при значительной потере зубов https://rudentordu.com/press-digital-dentistry-uk-office.html

    4) Сохранение соседних зубов https://rudentordu.com/our-team.html
    В отличие от мостов, соседние здоровые зубы не обтачиваются https://rudentordu.com/treatments/toronto-most.html

    Съемный протез вызывает дискомфорт и нестабильность https://rudentordu.com/treatments/implantatsiya.html

    Как подготовиться к эстетическому лечению

    VictorDus 2026-06-25    回复
  13. Съемный протез вызывает дискомфорт и нестабильность https://rudentordu.com/treatments/implantatsiya.html

    Лечение десен у стоматолога
    Что такое Торонто-мост

    Есть сколы, трещины или неровности в зоне улыбки https://rudentordu.com/treatments/gollivudskaya-ulybka.html

    VictorDus 2026-06-25    回复
  14. Появился дискомфорт в зоне отсутствующего зуба https://rudentordu.com/our-team.html

    Современные методы позволяют провести процедуру точно и максимально щадяще, с хорошим долгосрочным прогнозом https://rudentordu.com/

    До операции важно провести полную диагностику, стабилизировать состояние десен и исключить острые воспалительные процессы в полости рта https://rudentordu.com/press-digital-dentistry-uk-office.html

    Типичные показания
    4) Сохранение соседних зубов https://rudentordu.com/treatments/otbelivanie-zubov.html
    В отличие от мостов, соседние здоровые зубы не обтачиваются https://rudentordu.com/our-team.html

    Вы получаете персональный дизайн, а не шаблонное решение https://rudentordu.com/in-the-press.html

    VictorDus 2026-06-25    回复
  15. Торонто-мост позволяет быстро перейти от неудобных съемных решений к стабильной фиксированной конструкции https://rudentordu.com/
    Это особенно важно для людей, которым нужен надежный функциональный результат и уверенность в повседневной жизни https://rudentordu.com/treatments/skulovye-implantaty.html

    После полной адаптации конструкция ощущается естественно, улучшается дикция и возвращается уверенность при приеме пищи и общении https://rudentordu.com/treatments/toronto-most.html

    Вы замечаете изменение прикуса или внешнего вида улыбки https://rudentordu.com/treatments/skulovye-implantaty.html

    Современные методы позволяют провести процедуру точно и максимально щадяще, с хорошим долгосрочным прогнозом https://rudentordu.com/press-digital-dentistry-uk-office.html

    Индивидуальный подход к оттенку и форме зубов https://rudentordu.com/

    VictorDus 2026-06-25    回复
  16. Появился дискомфорт в зоне отсутствующего зуба https://rudentordu.com/treatments/otbelivanie-zubov.html

    Как подготовиться к имплантации
    Боль усиливается ночью или самопроизвольно https://rudentordu.com/treatments/metod-all-on-4-5-6.html

    1) Диагностика и оценка состояния пародонта https://rudentordu.com/treatments/implantatsiya.html

    4) Ортопедический этап: установка абатмента и постоянной коронки (или другой конструкции).

    VictorDus 2026-06-25    回复
  17. Почему важно не откладывать лечение каналов
    Боль при накусывании и чувствительность к температуре https://rudentordu.com/

    Преимущества зубных имплантатов

    Вы получаете персональный дизайн, а не шаблонное решение https://rudentordu.com/treatments/tsifrovoy-dizayn-ulybki.html

    Заболевания десен развиваются постепенно и часто без выраженной боли https://rudentordu.com/index.html
    Если откладывать лечение, воспаление может перейти в хроническую форму и повлиять на устойчивость зубов https://rudentordu.com/treatments/skulovye-implantaty.html

    VictorDus 2026-06-25    回复
  18. Когда нужно эндодонтическое лечение
    Вас не устраивает цвет, форма или длина передних зубов https://rudentordu.com/treatments/implantatsiya.html

    Пациентам с отсутствием одного, нескольких или всех зубов https://rudentordu.com/contact.html

    Боль при накусывании и чувствительность к температуре https://rudentordu.com/treatments/toronto-most.html

    Используйте мягкую щетку и щадящую технику чистки https://rudentordu.com/contact.html

    Позволяет улыбаться без психологического дискомфорта https://rudentordu.com/treatments/otbelivanie-zubov.html

    VictorDus 2026-06-25    回复
  19. Глубокий кариес или травма зуба https://rudentordu.com/treatments/gollivudskaya-ulybka.html

    Заболевания десен развиваются постепенно и часто без выраженной боли https://rudentordu.com/our-team.html
    Если откладывать лечение, воспаление может перейти в хроническую форму и повлиять на устойчивость зубов https://rudentordu.com/treatments/tsifrovoy-dizayn-ulybki.html

    Если соблюдать гигиену и рекомендации пародонтолога, можно значительно замедлить прогрессирование заболевания и сохранить зубы функциональными https://rudentordu.com/treatments/endodontiya.html

    Эндодонтия применяется, когда инфекция или воспаление затрагивают пульпу зуба https://rudentordu.com/index.html
    Цель лечения - устранить инфекцию внутри каналов и сохранить зуб https://rudentordu.com/about.html

    VictorDus 2026-06-25    回复
  20. Старые реставрации визуально отличаются от своих зубов https://rudentordu.com/in-the-press.html

    Дентальный имплантат и рентген-снимок
    Торонто-мост - это несъемная ортопедическая конструкция, которая фиксируется на имплантатах и восстанавливает полный зубной ряд при значительной потере зубов https://rudentordu.com/treatments/metod-all-on-4-5-6.html

    Чем раньше начато лечение, тем выше шанс сохранить зуб без осложнений https://rudentordu.com/treatments/endodontiya.html

    Преимущества зубных имплантатов

    VictorDus 2026-06-25    回复
  21. Кому подходит имплантация?
    2) Защита костной ткани https://rudentordu.com/treatments/tsifrovoy-dizayn-ulybki.html
    Имплантат стимулирует кость и помогает предотвратить ее убыль https://rudentordu.com/treatments/gollivudskaya-ulybka.html

    Комфортная фиксация без постоянного снятия протеза https://rudentordu.com/treatments/parodontologiya.html

    Почему важно лечить десны вовремя
    Что важно после имплантации

    VictorDus 2026-06-25    回复
  22. В ассортименте интернет-магазина более 370 моделей входных и межкомнатных дверей по низким ценам https://profildoors-center.ru/contacts
    Ассортимент включает как продукцию фабрики «Браво», так и других производителей, сотрудничество с которыми осуществляется на основании эксклюзивных договоров https://profildoors-center.ru/vhodnye-dveri
    Каталог дверей регулярно обновляется новыми моделями https://profildoors-center.ru/zerkalnye-dveri

    Наша компания произвела и установила двери специального назначения для комплектации полярной станции «Восток» в Антарктиде! В 2021 станция была смонтирована и запущена в работу https://profildoors-center.ru/oplata

    Волховец - марка №1 https://profildoors-center.ru/kupe-invisible

    Сотрудничество https://profildoors-center.ru/kupe-invisible

    Завод по производству дверей VellDoris оснащен самыми современными автоматизированными деревоoбрабатывающими линиями от ведущих производителей Италии и Германии, что является залогом стабильности качества продукции https://profildoors-center.ru/matovye-dveri

    Оперативная доставка при интернет-магазине https://profildoors-center.ru/garmoshka

    HaroldVEsia 2026-06-25    回复
  23. Предсказуемый результат благодаря цифровому моделированию https://rudentordu.com/about.html

    Пример конструкции Торонто-мост
    Раннее эндодонтическое лечение позволяет сохранить зуб, сократить объем вмешательства и избежать более сложных и дорогих процедур в будущем https://rudentordu.com/treatments/skulovye-implantaty.html

    Индивидуальный подход к оттенку и форме зубов https://rudentordu.com/our-team.html

    Долговечные материалы с натуральным видом https://rudentordu.com/treatments/skulovye-implantaty.html

    VictorDus 2026-06-25    回复
  24. Хорошие солнцезащитные очки для водителей подбираются с учетом того факта, что важнее не защита от ультрафиолета (автомобильное стекло уже блокирует значительную его часть), а борьба с бликами https://opticstyle.spb.ru/internet-magazin/product/nano-nao3150848sc
    Они могут создавать серьезные помехи как в яркий солнечный день, так и в сумерках https://opticstyle.spb.ru/internet-magazin/product/seiko-synergy-xtra-1-67-super-clean-coat-1
    Здесь помогут линзы с антибликовым покрытием или поляризационные фильтры, которые уменьшают отражение света от мокрого асфальта, стекол и других поверхностей https://opticstyle.spb.ru/internet-magazin/product/escada-vesc56-col.0393
    При выборе хороших солнцезащитных очков для мужчин должен учитываться этот параметр, ведь представители сильного пола проводят немало времени за рулем https://opticstyle.spb.ru/internet-magazin/product/ray-ban-rb-4202-6069/71

    Защита от солнца нужна везде — и в городе, и на побережье https://opticstyle.spb.ru/internet-magazin/product/nano-nao3250350sc
    В странах с жарким климатом, например в Греции, уровень ультрафиолета выше, чем в Москве или Петербурге, поэтому там стоит выбирать очки с усиленной защитой https://opticstyle.spb.ru/internet-magazin/product/prada-vpr-53u-7s0-101
    А в горах ситуация еще сложнее: снег многократно отражает свет, увеличивая интенсивность излучения https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg5071-3285
    В таких условиях необходимы максимально затемненные очки с высокой степенью УФ-фильтрации класса 4 https://opticstyle.spb.ru/internet-magazin/product/armani-exchange-ax-1042-6006
    Самые хорошие солнцезащитные очки универсальны для любого времени года класс 2 и 3 https://opticstyle.spb.ru/internet-magazin/product/transitions-xtractive-1.6-as-shmc

    Чтобы выбрать качественные солнцезащитные очки, необходимо знать хорошие бренды, зарекомендовавшие себя на рынке https://opticstyle.spb.ru/internet-magazin/product/ligas-1266-c6
    Хорошие солнцезащитные очки предлагают потребителям фирмы из стран Европы и Америки https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg-2288-1313/87
    Сегодня солнцезащитные очки много кто производит, но какие фирмы действительно хорошие?
    Современные технологии позволяют добавлять в полимерные материалы компоненты, защищающие глаза от ультрафиолета https://opticstyle.spb.ru/internet-magazin/product/ray-ban-rb-4202-6069/71
    Эти разработки применяются не только в производстве солнцезащитных очков, но и контактных линз https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg5064-501
    Причем наличие такого защитного слоя никак не влияет на прозрачность — ни у очковых, ни у контактных линз https://opticstyle.spb.ru/internet-magazin/product/transitions-xtractive-1.5

    Robertbuh 2026-06-25    回复
  25. Доступные и практичные https://profildoors-center.ru/ustanovka

    Кол-во отзывов в сети: 94 https://profildoors-center.ru/about

    Скидка -20% на коллекцию в древесном покрытии https://profildoors-center.ru/garmoshka

    13 800 ?
    Многолетний опыт работы, постоянный контроль качества и технологий, позволяют нам эффективно взаимодействовать с нашими партнерами и постоянно развиваться в сфере дверного производства https://profildoors-center.ru/ustanovka

    Стоимость от 45 935 ?

    HaroldVEsia 2026-06-25    回复
  26. Современные технологии позволяют добавлять в полимерные материалы компоненты, защищающие глаза от ультрафиолета https://opticstyle.spb.ru/internet-magazin/product/nano-nao3020748
    Эти разработки применяются не только в производстве солнцезащитных очков, но и контактных линз https://opticstyle.spb.ru/internet-magazin/vendor/nike
    Причем наличие такого защитного слоя никак не влияет на прозрачность — ни у очковых, ни у контактных линз https://opticstyle.spb.ru/internet-magazin/product/nano-nao3080950

    Ультрафиолетовое излучение обладает накопительным эффектом воздействия на глаза на протяжении всей жизни https://opticstyle.spb.ru/internet-magazin/product/ray-ban-rb-2132-622/58
    Примерно к 18 годам жители умеренного климата получают максимально допустимую безопасную дозу, после чего избыточное излучение может начать оказывать разрушительное влияние https://opticstyle.spb.ru/internet-magazin/product/nano-nao572144
    Оно способно повреждать хрусталик, ускоряя развитие катаракты, а также негативно сказываться на макулярной зоне — участке сетчатки, отвечающем за четкость зрения https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg3314-501

    Компания «Оптика Стиль» приветствует Вас на сайте нашего интернет магазина
    В нашей мастерской выполняются все виды ремонта очков — от простого выравнивания до пайки титановых оправ https://opticstyle.spb.ru/internet-magazin/product/soflens-daily-disposable-90-blisterov

    Важную роль играет и материал линз https://opticstyle.spb.ru/internet-magazin/product/nano-nao3161148
    Например, стекло само по себе блокирует ультрафиолет (недаром через оконное стекло невозможно загореть). Однако хорошие солнцезащитные очки с настоящими стеклянными линзами почти не встречаются — они тяжелые, неудобные и небезопасные при повреждении https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg-6153-501/8g
    Современные модели чаще всего изготовлены из различных полимеров, которые по привычке продолжают называть стеклами https://opticstyle.spb.ru/internet-magazin/product/nano-nao3180546sc

    Robertbuh 2026-06-25    回复
  27. Выбор дверной коробки — важный этап установки межкомнатных дверей https://profildoors-center.ru/invisible
    Она выполняет не только декоративную, но и функциональную роль, обеспечивая устойчивость и долговечность двери https://profildoors-center.ru/povorotnaya
    Правильная коробк..
    Двери Стеновые панели Ручки Мебель Волховец https://profildoors-center.ru/skrytye-dveri

    Помимо этого, наша компания производит изготовление дверей в соответствии со всеми нормами и требованиями государственного стандарта ГОСТ 475-78 https://profildoors-center.ru/alyuminievye-dveri
    Данный документ устанавливает полный перечень технических условий, которые сегодня обязательно должен соблюдать каждый производитель, выпускающий российские двери https://profildoors-center.ru/peregorodki
    Кроме того, у нас имеется официальное заключение профессиональных экспертов о том, что наше производство полностью соответствует санитарно-эпидемиологическим нормам https://profildoors-center.ru/sistemy

    На костромском заводе выполняется полный цикл изготовления продукта — от первоначальной обработки древесных заготовок до выпуска погонажных изделий и дверных полотен https://profildoors-center.ru/kupe-invisible
    На фабрике межкомнатных дверей во Фрязино по большей части происходит сборка дверных конструкций https://profildoors-center.ru/kupe-invisible
    Также здесь разрабатываются опытные образцы, проводятся эксперименты с новыми технологиями и материалами https://profildoors-center.ru/dveri-pod-derevo

    Сотрудничество с нами обеспечивает владельцам магазинов доступ к широкому ассортименту товаров, а также дает возможность предлагать клиентам качественную продукцию по конкурентоспособным ценам https://profildoors-center.ru/povorotnaya

    Мы производим двери уже более 10 лет и умеем отлично чувствовать конъюнктуру рынка, выпускаем востребованные качественные двери по оптимальной для покупателя цене https://profildoors-center.ru/sistemy

    HaroldVEsia 2026-06-25    回复
  28. Качественные солнцезащитные очки должны блокировать оба типа солнечного излучения: UVA (диапазон 400–315 нм) и UVB (315–280 нм). Обычно на таких моделях есть маркировка UV400 — 420 это означает, что линзы задерживают не менее 99 % вредных лучей https://opticstyle.spb.ru/internet-magazin/product/nano-nao3010148
    Иногда встречаются обозначения UV380, указывающие на высокий, но не максимальный уровень защиты https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg1310-01
    Эти стандарты применяются в разных странах, независимо от места производства очков https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg5077-501

    Важную роль играет и материал линз https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg1329-1335
    Например, стекло само по себе блокирует ультрафиолет (недаром через оконное стекло невозможно загореть). Однако хорошие солнцезащитные очки с настоящими стеклянными линзами почти не встречаются — они тяжелые, неудобные и небезопасные при повреждении https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg5089-3294
    Современные модели чаще всего изготовлены из различных полимеров, которые по привычке продолжают называть стеклами https://opticstyle.spb.ru/internet-magazin/product/bulget-bgy6011-h01

    Степень затемнения линзы не связана с уровнем УФ-защиты https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg-6138-3185/13
    Даже абсолютно прозрачная контактная линза может блокировать до 95 % вредного излучения https://opticstyle.spb.ru/internet-magazin/product/nike-dash-ev1157-660
    Точно так же прозрачные очковые линзы с диоптриями способны эффективно защищать глаза от ультрафиолета https://opticstyle.spb.ru/internet-magazin/product/nano-nao3120450

    Достоинство стеклянных качественных линз заключается в том, что у них самый высокий коэффициент преломления https://opticstyle.spb.ru/internet-magazin/vendor/davidoff/p/5
    Кроме того, минеральные линзы более устойчивы к воздействию высокой температуры, а также к активной химической среде https://opticstyle.spb.ru/internet-magazin/vendor/escada

    Robertbuh 2026-06-25    回复
  29. Кол-во отзывов https://profildoors-center.ru/sertifikaty

    Трудолюбие, стремление и упорство https://profildoors-center.ru/catalog
    Три составляющих, которые ведут нас в ногу со временем https://profildoors-center.ru/contacts
    Компания была основана в 2002 году в качестве небольшого деревообрабатывающего цеха и переросла в крупнейшего гиганта по производству межкомнатных дверей в России и СНГ https://profildoors-center.ru/staczionarnye

    Многолетний опыт работы, постоянный контроль качества и технологий, позволяют нам эффективно взаимодействовать с нашими партнерами и постоянно развиваться в сфере дверного производства https://profildoors-center.ru/invisible

    5 Волховец https://profildoors-center.ru/invisible-revers

    Ассортимент https://profildoors-center.ru/oplata

    Межкомнатная дверь https://profildoors-center.ru/ustanovka

    HaroldVEsia 2026-06-25    回复
  30. Компания «Оптика Стиль» приветствует Вас на сайте нашего интернет магазина
    В результате могут развиться возрастные макулодистрофии — заболевания, ведущие к нарушению зрения https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg-4363-3126/8g
    В регионах с высокой солнечной активностью подобные проблемы возникают раньше, а в горной местности существует еще одна угроза — снежная офтальмия https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg-6148-3257/87
    Это ожог роговицы и конъюнктивы, возникающий из-за многократного отражения УФ-лучей от снежной поверхности https://opticstyle.spb.ru/internet-magazin/product/ray-ban-rb-3025-004/78

    Степень затемнения линзы не связана с уровнем УФ-защиты https://opticstyle.spb.ru/internet-magazin/product/polaroid-pld-8060/s-m9-pjp
    Даже абсолютно прозрачная контактная линза может блокировать до 95 % вредного излучения https://opticstyle.spb.ru/internet-magazin/product/dolce-gabbana-dg5088-2525
    Точно так же прозрачные очковые линзы с диоптриями способны эффективно защищать глаза от ультрафиолета https://opticstyle.spb.ru/internet-magazin/vendor/nanovista-ispaniya/p/100

    Заказать очки по рецепту недорого в СПб в нашей компании просто https://opticstyle.spb.ru/internet-magazin/product/prada-vpr-65r-dh0-101
    Вы можете посмотреть коллекции известных Европейских производителей очков у нас на сайте или просто позвонить нам и мы подскажем наличие интересующей Вас модели оправ или солнцезащитных очков https://opticstyle.spb.ru/internet-magazin/product/fun-kids-fh-15-ec025

    Robertbuh 2026-06-25    回复
  31. РАЗДВИЖНАЯ СИСТЕМА СКРЫТОГО МОНТАЖА https://profildoors-center.ru/oplata

    Двери и мебель в едином стиле https://profildoors-center.ru/dostavka

    Двери нестандартной ширины от 300 мм https://profildoors-center.ru/about
    до 1000 мм https://profildoors-center.ru/invisible-revers

    На этапе создания каркаса изделия происходит склеивание в термических прессах заготовок, выполненных из хвойной древесины https://profildoors-center.ru/kupe
    Строжка материала выполняется на четырехсторонних станках https://profildoors-center.ru/
    Полученные на фрязинской фабрике межкомнатных дверей каркасы отличаются стойкостью к влаге и температурным перепадам, а также высокой прочностью и, как следствие, эксплуатационной долговечностью https://profildoors-center.ru/ustanovka

    Натуральный шпон https://profildoors-center.ru/povorotnaya

    Сотрудничество https://profildoors-center.ru/povorotnaya

    HaroldVEsia 2026-06-25    回复
  32. Фабрика Волховец — одна из ведущих отечественных производителей межкомнатных дверей и интерьерных решений в России https://profildoors-center.ru/
    Ежемесячно мы выпускаем более 10 000 единиц продукции с гарантией 3 года https://profildoors-center.ru/ustanovka
    Мы работаем только с качественными материалами: массивом дуба и бука, натуральным шпоном, эмалью, алюминием и стеклом, декоративными искусственными отделками https://profildoors-center.ru/staczionarnye
    Для вашего удобства и единства стиля в интерьере мы предлагаем комплексные решения: раздвижные перегородки, стеновые панели, плинтусы, дизайнерские ручки, а также мебель Волховец https://profildoors-center.ru/sotrudnichestvo
    Выбирайте двери напрямую от производителя в интернет-магазине или в официальных салонах Волховец в Москве, Санкт-Петербурге и во всех регионах России https://profildoors-center.ru/peregorodki
    А мы организуем бережную доставку и установку https://profildoors-center.ru/matovye-dveri

    ProfilDoors – это история о прогрессивных взглядах на жизнь https://profildoors-center.ru/catalog
    Умении оригинально мыслить без стереотипов и клише https://profildoors-center.ru/matovye-dveri
    Использовать технологии, повышая качество жизни https://profildoors-center.ru/peregorodki
    Избавляться от визуального шума и устаревшего балласта, которым переполнен наш мир https://profildoors-center.ru/glyanczevye-dveri
    Держаться достойно, без потребности демонстрировать окружающим свое превосходство над ними https://profildoors-center.ru/skrytye-dveri
    Быть собой, а не казаться кем-то другим – вот в чем настоящая роскошь https://profildoors-center.ru/infinity

    Кол-во отзывов в сети: 53 https://profildoors-center.ru/povorotnaya

    Техпроцесс изготовления погонажных изделий, применяемый на костромском предприятии, состоит из нескольких этапов:
    Гарантия: 1 лет https://profildoors-center.ru/magic

    Межкомнатные двери — это не только функциональный элемент для зонирования пространства, но и важная часть дизайна интерьера https://profildoors-center.ru/zerkalnye-dveri
    Правильно подобранные двери способны подчеркнуть стиль помещения и повыси..

    HaroldVEsia 2026-06-25    回复
  33. Join our platform and immerse yourself in a vast selection of casino entertainment to discover HenryGrant

    Danielthype 2026-06-25    回复
  34. [url=https://mostbet-mu.com/mostbet-promo-code/]mostbet casino promo code[/url] - mostbet cashback nasıl kullanılır, code promo mostbet

    HectorKix 2026-06-25    回复