2025 PHP7/8 实战入门:15 天精通现代 Web 制作——第 15 课:项目实战与部署

news/2025/9/28 12:38:53/文章来源:https://www.cnblogs.com/slgkaifa/p/19116430

2025 PHP7/8 实战入门:15 天精通现代 Web 制作——第 15 课:项目实战与部署

第 15 课:项目实战与部署

一、学习目标

  1. 综合运用前 14 天所学知识,开发一个完整的小型 PHP 应用(个人博客系统)
  2. 掌握 PHP 项目的部署流程(服务器环境搭建、代码部署、配置优化)
  3. 理解项目上线前的测试与优化要点(功能测试、性能测试、安全扫描)
  4. 了解 PHP 进阶学习路径,为后续提升奠定基础

二、核心知识点

(一)项目需求与架构设计
  1. 个人博客系统需求

    • 功能模块:
      • 前台:文章列表、文章详情、分类导航、搜索功能、留言板
      • 后台:用户登录、文章管理(增删改查)、分类管理、留言管理
    • 技术栈:PHP8 + MySQL + PDO + Bootstrap(前端样式)
    • 核心特性:
      • 文章支持 Markdown 编辑(用Parsedown类库解析)
      • 分页功能(基于LIMIT实现)
      • 登录状态管理(Session + “记住我” Cookie)
      • 安全防护(XSS、CSRF、SQL 注入防御)
  2. 架构设计

    • 目录结构(MVC 简化版,适合小型项目):

      plaintext

      blog/
      ├── config/          # 配置文件(数据库、常量等)
      │   └── db.php       # 数据库配置
      ├── core/            # 核心类库
      │   ├── DB.php       # 数据库封装类(PDO)
      │   ├── Session.php  # Session封装类
      │   └── Csrf.php     # CSRF防护类
      ├── models/          # 数据模型(业务逻辑)
      │   ├── Article.php  # 文章模型
      │   ├── Category.php # 分类模型
      │   └── User.php     # 用户模型
      ├── views/           # 视图文件(HTML模板)
      │   ├── frontend/    # 前台视图
      │   └── backend/     # 后台视图
      ├── controllers/     # 控制器(请求处理)
      │   ├── FrontendController.php # 前台控制器
      │   └── BackendController.php  # 后台控制器
      ├── public/          # 公开目录(Web根目录)
      │   ├── index.php    # 入口文件
      │   ├── css/         # 样式文件
      │   ├── js/          # JS文件
      │   └── uploads/     # 上传目录(图片等)
      ├── lib/             # 第三方类库
      │   └── Parsedown.php # Markdown解析类
      └── logs/            # 日志目录
  3. 数据库设计

    • 核心表结构:

      sql

      -- 用户表
      CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(50) NOT NULL COMMENT '用户名',`password` varchar(255) NOT NULL COMMENT '密码哈希',`email` varchar(100) NOT NULL COMMENT '邮箱',`role` tinyint(1) NOT NULL DEFAULT 0 COMMENT '角色(0-普通用户,1-管理员)',`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`id`),UNIQUE KEY `username` (`username`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
      -- 分类表
      CREATE TABLE `categories` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL COMMENT '分类名称',`sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序',`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
      -- 文章表
      CREATE TABLE `articles` (`id` int(11) NOT NULL AUTO_INCREMENT,`title` varchar(255) NOT NULL COMMENT '文章标题',`content` text NOT NULL COMMENT '文章内容(Markdown)',`category_id` int(11) NOT NULL COMMENT '分类ID',`author_id` int(11) NOT NULL COMMENT '作者ID',`view_count` int(11) NOT NULL DEFAULT 0 COMMENT '阅读量',`is_published` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否发布(0-草稿,1-发布)',`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`),KEY `category_id` (`category_id`),KEY `author_id` (`author_id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
      -- 留言表
      CREATE TABLE `comments` (`id` int(11) NOT NULL AUTO_INCREMENT,`article_id` int(11) NOT NULL COMMENT '文章ID',`nickname` varchar(50) NOT NULL COMMENT '昵称',`content` varchar(500) NOT NULL COMMENT '留言内容',`email` varchar(100) DEFAULT NULL COMMENT '邮箱',`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`id`),KEY `article_id` (`article_id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
(二)核心功能开发实战
  1. 入口文件与路由(public/index.php

    • 作用:统一入口,处理请求路由,加载核心类库
    • 核心代码:
       true,'use_strict_mode' => true
      ]);
      // 路由处理
      $action = $_GET['action'] ?? 'index';
      $controller = $_GET['c'] ?? 'frontend'; // c=frontend(前台)或backend(后台)
      // 路由映射
      $routes = ['frontend' => ['index' => 'FrontendController@index', // 首页'article' => 'FrontendController@article', // 文章详情'category' => 'FrontendController@category', // 分类文章'search' => 'FrontendController@search', // 搜索'comment' => 'FrontendController@addComment' // 提交留言],'backend' => ['login' => 'BackendController@login', // 登录'logout' => 'BackendController@logout', // 登出'dashboard' => 'BackendController@dashboard', // 后台首页'article_list' => 'BackendController@articleList', // 文章列表'article_add' => 'BackendController@articleAdd', // 添加文章'article_edit' => 'BackendController@articleEdit', // 编辑文章'article_delete' => 'BackendController@articleDelete' // 删除文章// 其他后台路由...]
      ];
      // 执行对应控制器方法
      if (isset($routes[$controller][$action])) {list($ctrlClass, $method) = explode('@', $routes[$controller][$action]);require_once ROOT_PATH . "/controllers/{$ctrlClass}.php";$obj = new $ctrlClass();$obj->$method();
      } else {http_response_code(404);echo "页面不存在";
      }
      ?>
  2. 数据库模型(以models/Article.php为例)

    • 封装文章相关的数据库操作(CRUD)
    • 核心代码:
       $value) {$conditions[] = "{$key} = :{$key}";$params[$key] = $value;}$whereClause = "WHERE " . implode(' AND ', $conditions);}// 文章列表$sql = "SELECT a.*, c.name as category_name, u.username as author_nameFROM articles aLEFT JOIN categories c ON a.category_id = c.idLEFT JOIN users u ON a.author_id = u.id{$whereClause}ORDER BY a.created_at DESCLIMIT :offset, :pageSize";$params['offset'] = $offset;$params['pageSize'] = $pageSize;$list = DB::getAll($sql, $params);// 总数量$countSql = "SELECT COUNT(*) as count FROM articles {$whereClause}";$count = DB::getOne($countSql, $where)['count'] ?? 0;// 总页数$totalPage = ceil($count / $pageSize);return ['list' => $list,'count' => $count,'totalPage' => $totalPage,'currentPage' => $page,'pageSize' => $pageSize];}/*** 获取单篇文章*/public static function getById(int $id): ?array {$sql = "SELECT a.*, c.name as category_name, u.username as author_nameFROM articles aLEFT JOIN categories c ON a.category_id = c.idLEFT JOIN users u ON a.author_id = u.idWHERE a.id = :id";$article = DB::getOne($sql, ['id' => $id]);if ($article) {// 增加阅读量DB::update('articles', ['view_count' => $article['view_count'] + 1], ['id' => $id]);// 解析Markdown内容require_once ROOT_PATH . '/lib/Parsedown.php';$parsedown = new Parsedown();$article['content_html'] = $parsedown->text($article['content']);}return $article;}// 其他方法:add(添加)、update(更新)、delete(删除)...
      }
      ?>
  3. 前台文章列表页(controllers/FrontendController.phpindex方法)

    • 处理首页请求,获取文章列表并渲染视图
    • 核心代码:
       1]);// 获取所有分类$categories = Category::getAll();// 渲染视图require_once ROOT_PATH . '/views/frontend/index.php';}// 其他方法:article(文章详情)、category(分类文章)...
      }
      ?>
  4. 视图渲染(views/frontend/index.php

    • 结合 Bootstrap 实现响应式布局,显示文章列表和分类导航
    • 核心代码(简化):

      html

      预览

      个人博客 - 首页

      最新文章

      分类: |作者: |时间: |阅读:
      ...
      阅读全文
(三)项目部署流程
  1. 服务器环境搭建(Linux CentOS 8)

    • 安装 LNMP 环境(Nginx + MySQL 8 + PHP 8.2):

      bash

      # 1. 安装Nginx
      dnf install -y nginx
      systemctl enable --now nginx
      # 2. 安装MySQL 8
      dnf install -y mysql-server
      systemctl enable --now mysqld
      # 初始化MySQL(设置root密码、删除匿名用户等)
      mysql_secure_installation
      # 3. 安装PHP 8.2及扩展
      dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
      dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
      dnf module enable -y php:remi-8.2
      dnf install -y php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-json php-opcache
      # 4. 配置PHP-FPM
      systemctl enable --now php-fpm
      # 修改PHP-FPM运行用户(与Nginx一致)
      sed -i 's/user = apache/user = nginx/' /etc/php-fpm.d/www.conf
      sed -i 's/group = apache/group = nginx/' /etc/php-fpm.d/www.conf
      systemctl restart php-fpm
  2. Nginx 配置

    • 创建虚拟主机配置文件(/etc/nginx/conf.d/blog.conf):

      nginx

      server {listen 80;server_name your-domain.com; # 替换为你的域名root /var/www/blog/public; # 项目的public目录index index.php;# 静态资源处理location ~* \.(css|js|png|jpg|jpeg|gif|ico|pdf)$ {expires 7d;add_header Cache-Control "public, max-age=604800";try_files $uri =404;}# 上传目录安全配置(禁止执行PHP)location ~ /uploads/.*\.php$ {deny all;}# PHP请求处理location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;include fastcgi_params;# 安全参数fastcgi_param PHP_VALUE "open_basedir=/var/www/blog:/tmp";}# 禁止访问隐藏文件location ~ /\. {deny all;}
      }
    • 测试并重启 Nginx:

      bash

      nginx -t # 测试配置
      systemctl restart nginx
  3. 代码部署

    • 上传项目代码到服务器(/var/www/blog):

      bash

      # 方法1:Git克隆(推荐,便于更新)
      dnf install -y git
      git clone https://your-git-repo/blog.git /var/www/blog
      # 方法2:压缩包上传
      # 本地压缩:zip -r blog.zip blog/
      # 上传到服务器:scp blog.zip root@your-server:/var/www/
      # 服务器解压:unzip blog.zip -d /var/www/
      # 设置权限
      chown -R nginx:nginx /var/www/blog
      chmod -R 755 /var/www/blog
      chmod -R 775 /var/www/blog/uploads /var/www/blog/logs # 可写目录
  4. 数据库部署

    • 在服务器上创建数据库并导入表结构:

      bash

      # 登录MySQL
      mysql -u root -p
      # 执行SQL(在MySQL命令行)
      CREATE DATABASE blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
      CREATE USER 'blog_user'@'localhost' IDENTIFIED BY 'your-strong-password';
      GRANT ALL PRIVILEGES ON blog.* TO 'blog_user'@'localhost';
      FLUSH PRIVILEGES;
      exit;
      # 导入表结构(本地导出SQL文件:blog.sql)
      mysql -u blog_user -p blog < /var/www/blog/sql/blog.sql
    • 修改项目数据库配置(/var/www/blog/config/db.php):

       'mysql:host=localhost;dbname=blog;charset=utf8mb4','username' => 'blog_user','password' => 'your-strong-password','options' => [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,PDO::ATTR_EMULATE_PREPARES => false]
      ];
      ?>
  5. 生产环境优化

    • PHP 配置优化(/etc/php.ini):

      ini

      display_errors = Off
      log_errors = On
      error_log = /var/log/php/error.log
      opcache.enable = 1
      opcache.memory_consumption = 128
      opcache.max_accelerated_files = 10000
      opcache.validate_timestamps = 0 # 关闭文件修改检查
      disable_functions = exec,passthru,shell_exec,system,proc_open,popen
    • 重启 PHP-FPM:

      bash

      mkdir -p /var/log/php
      chown nginx:nginx /var/log/php
      systemctl restart php-fpm
(四)项目测试与上线
  1. 功能测试

    • 前台测试:访问域名,验证文章列表、详情、分类、搜索、留言功能
    • 后台测试:访问/index.php?c=backend&action=login,测试登录、文章增删改查、分类管理功能
    • 边界测试:空数据、非法参数(如page=0id=-1)、文件上传超限等场景
  2. 性能测试

    • 使用ab(Apache Bench)测试并发性能:

      bash

      dnf install -y httpd-tools
      ab -n 1000 -c 100 http://your-domain.com/ # 100并发,1000请求
    • 优化方向:
      • 慢查询:通过MySQL Slow Query Log定位慢 SQL,优化索引
      • 静态资源:开启 CDN 加速(如阿里云 CDN)
      • 缓存:添加 Redis 缓存(缓存文章列表、分类等高频访问数据)
  3. 安全扫描

  • 使用工具扫描安全漏洞:

        bash

# 安装OWASP ZAP(开源Web应用安全扫描工具)
dnf install -y snapd
systemctl enable --now snapd.socket
ln -s /var/lib/snapd/snap /snap
snap install zaproxy
# 启动ZAP并扫描项目(图形化界面操作)
# 1. 打开ZAP,点击"Quick Start",输入项目URL(http://your-domain.com)
# 2. 点击"Attack",ZAP会自动爬取页面并扫描常见漏洞(XSS、CSRF、SQL注入等)
# 3. 查看扫描报告,修复高风险漏洞(如未过滤的用户输入、缺失的CSRF Token等)
    • 手动安全检查清单:
      • 确认所有用户输入已通过htmlspecialchars转义(防 XSS)
      • 确认所有数据库操作使用 PDO 预处理(防 SQL 注入)
      • 确认敏感操作(如后台登录、密码修改)已添加 CSRF Token
      • 确认文件上传功能已验证 MIME 类型、扩展名和文件内容
      • 确认生产环境已禁用display_errors,启用log_errors

            4. 上线前最终检查

    检查类别检查项
    配置安全

    1. 数据库密码未硬编码,存储在独立配置文件且权限为0600

    2. php.ini已禁用危险函数3. 项目根目录无敏感文件(如.gitsql备份文件)

    功能完整性

    1. 前台所有页面(首页、文章详情、分类、搜索)正常访问

    2. 后台所有功能(增删改查)正常执行3. 分页、留言等交互功能无异常

    性能与兼容性

    1. 页面加载时间≤3 秒(通过浏览器 F12"Network" 面板检查)

    2. 兼容主流浏览器(Chrome、Firefox、Edge)

    3. 移动端响应式布局正常

    日志与监控

    1. 错误日志、访问日志正常记录

    2. 关键操作(登录、上传)已添加业务日志3. 服务器监控(CPU、内存、磁盘)正常

    (五)项目维护与监控
    1. 日志监控

      • 配置 Nginx 访问日志和 PHP 错误日志轮转(避免日志文件过大):

        bash

        # 1. 安装日志轮转工具
        dnf install -y logrotate
        # 2. 创建日志轮转配置(/etc/logrotate.d/php-blog)
        cat > /etc/logrotate.d/php-blog << EOF
        /var/log/php/error.log
        /var/log/nginx/your-domain.com.access.log
        /var/log/nginx/your-domain.com.error.log
        {daily               # 每日轮转rotate 7            # 保留7天日志missingok           # 日志不存在时不报错compress            # 压缩旧日志delaycompress       # 延迟压缩(保留最新日志未压缩)notifempty          # 空日志不轮转create 0644 nginx nginx # 新建日志文件权限
        }
        EOF
        # 3. 手动执行一次日志轮转测试
        logrotate -f /etc/logrotate.d/php-blog
      • 实时监控错误日志(快速定位线上问题):

        bash

        tail -f /var/log/php/error.log # 实时查看PHP错误日志
        tail -f /var/log/nginx/your-domain.com.error.log # 实时查看Nginx错误日志
    2. 定期备份

      • 数据库自动备份(每天凌晨执行):

        bash

        # 1. 创建备份脚本(/var/www/blog/backup.sh)
        cat > /var/www/blog/backup.sh << EOF
        #!/bin/bash
        BACKUP_DIR="/var/backups/blog"
        DATE=\$(date +%Y%m%d)
        MYSQL_USER="blog_user"
        MYSQL_PASS="your-strong-password"
        MYSQL_DB="blog"
        # 创建备份目录
        mkdir -p \$BACKUP_DIR
        # 备份数据库
        mysqldump -u\$MYSQL_USER -p\$MYSQL_PASS \$MYSQL_DB > \$BACKUP_DIR/blog_\$DATE.sql
        # 压缩备份文件
        gzip \$BACKUP_DIR/blog_\$DATE.sql
        # 删除30天前的备份
        find \$BACKUP_DIR -name "blog_*.sql.gz" -mtime +30 -delete
        EOF
        # 2. 给脚本执行权限
        chmod +x /var/www/blog/backup.sh
        # 3. 添加到定时任务(每天凌晨2点执行)
        crontab -e
        # 加入以下内容:
        0 2 * * * /var/www/blog/backup.sh
      • 代码备份:通过 Git 版本控制,每次更新前提交代码,保留历史版本。
    3. 安全更新

      • 定期更新 PHP 版本和扩展(修复已知安全漏洞):

        bash

        dnf update -y php* nginx mysql-server
        systemctl restart php-fpm nginx mysqld
      • 定期更新项目依赖(如第三方类库Parsedown):

        bash

        # 若使用Composer管理依赖(推荐)
        cd /var/www/blog
        composer update # 更新所有依赖到最新版本
    (六)PHP 进阶学习路径
    1. 基础巩固阶段(1-2 个月)

      • 深入学习 PHP 核心特性:命名空间、Trait、反射、生成器(Generator)
      • 掌握 PHP 标准库(SPL):如SplFixedArray(高性能数组)、SplFileObject(文件操作)
      • 推荐资源:
        • 书籍:《PHP 编程:技术与实践》《深入理解 PHP 内核》
        • 官方文档:PHP 官方手册 - 语言参考
    2. 框架学习阶段(2-3 个月)

      • 选择主流框架深入学习(二选一即可):
        • Laravel:PHP 生态最流行的框架,内置 ORM、路由、中间件等,适合大型项目
          • 学习重点:路由模型绑定、依赖注入、队列、缓存系统
          • 实战:用 Laravel 重构个人博客(添加用户认证、权限管理、API 接口)
        • ThinkPHP:国内主流框架,中文文档完善,上手快
          • 学习重点:MVC 架构、ORM 模型、行为扩展、模板引擎
          • 实战:开发简单的电商后台(商品管理、订单管理)
      • 推荐资源:
        • Laravel:Laravel 官方文档、《Laravel 实战》
        • ThinkPHP:ThinkPHP 官方文档
    3. 性能与架构阶段(3-6 个月)

      • 性能优化深入:
        • opcode 缓存进阶(OPcache 配置调优)
        • 数据库优化(索引设计、查询优化、读写分离)
        • 缓存策略(Redis 分布式缓存、页面静态化)
      • 架构设计:
        • 微服务架构:使用 Swoole 实现 PHP 微服务(异步 IO、WebSocket)
        • API 开发:RESTful API 设计、接口文档(Swagger)、JWT 认证
      • 推荐资源:
        • 书籍:《高性能 PHP》《Redis 设计与实现》
        • 实战:给个人博客添加 Redis 缓存(缓存文章列表、热门文章)
    4. 安全与高级阶段(长期)

      • 安全深入:
        • 渗透测试:学习使用 Burp Suite、Nessus 进行主动渗透
        • 安全合规:了解 OWASP Top 10、GDPR、等保 2.0 合规要求
      • 高级特性:
        • PHP8.1 + 新特性:枚举(Enum)、只读属性、纤维(Fibers)
        • 扩展开发:使用 C/C++ 编写 PHP 扩展(满足特殊性能需求)
      • 推荐资源:
        • 书籍:《Web 应用安全权威指南》《PHP 扩展开发及内核应用》
        • 社区:PHP 官方安全邮件列表、OWASP 社区

    三、注意事项

    1. 上线后常见问题处理

      • 500 Internal Server Error:查看 PHP 错误日志(/var/log/php/error.log),通常是代码语法错误或权限问题
      • 数据库连接失败:检查数据库配置文件、MySQL 服务状态(systemctl status mysqld)、数据库用户权限
      • 页面加载缓慢:通过top命令查看 CPU / 内存占用,使用explain分析慢 SQL,检查是否缺少索引
    2. 版本兼容与迁移

      • 若后续需要升级 PHP 版本(如从 PHP8.2 到 PHP8.3),先在测试环境验证:

        bash

        # 测试环境安装PHP8.3
        dnf module reset php
        dnf module enable php:remirepo-8.3
        dnf install -y php php-fpm php-mysqlnd
        # 执行项目单元测试,确认无兼容性问题
    3. 成本控制(个人项目)

      • 服务器:初期可使用云服务器(如阿里云 ECS、腾讯云 CVM)最低配置(1 核 2G)
      • 域名与 SSL:通过阿里云 / 腾讯云购买域名(约 50 元 / 年),申请免费 SSL 证书(Let's Encrypt)
      • 监控:使用云厂商免费监控工具(如阿里云云监控),无需自建监控系统

    四、实战练习(项目收尾)

    1. 完成个人博客系统的剩余功能开发:

      • 后台添加 “留言管理” 功能(查看、删除留言)
      • 前台添加 “热门文章” 侧边栏(按阅读量排序,取前 10 篇)
      • 实现文章点赞功能(使用 Session 防止重复点赞,数据存入数据库)
    2. 部署项目到云服务器并完成上线:

      • 购买云服务器(如阿里云 ECS),安装 LNMP 环境
      • 配置域名解析,申请并部署 SSL 证书(实现 HTTPS 访问)
      • 执行数据库备份脚本,验证备份文件是否生成
      • 用 OWASP ZAP 扫描项目,修复所有高风险漏洞
      • 编写项目说明文档(包含功能介绍、部署步骤、维护指南)
    3. 项目优化与迭代:

      • 给文章列表添加 Redis 缓存(缓存时间 10 分钟)
      • 优化数据库:给articles表的view_count字段添加索引
      • 统计网站访问数据(使用百度统计或 Google Analytics)

    至此,《2025 PHP7/8 实战入门:15 天精通现代 Web 开发》课程全部结束。

    通过 15 天的系统学习,你已掌握 PHP 开发的核心技能,能够独立开发中小型 Web 应用并部署到生产环境。后续可根据进阶学习路径,逐步深入框架、性能优化、安全等领域,向专业 PHP 开发者迈进!

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920644.shtml

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    做网站怎么投放广告企业网站加快企业信息化建设

    xcopy XCOPY是COPY的扩展&#xff0c;可以把指定的目录连文件和目录结构一并拷贝&#xff0c;但不能拷贝系统文件&#xff1b;使用时源盘符、源目标路径名、源文件名至少指定一个&#xff1b;选用/S时对源目录下及其子目录下的所有文件进行COPY。除非指定/E参数&#xff0c;否则…

    AWS SageMaker SDK 完整教程:从零开始云端训练你的模型

    作者:SkyXZ CSDN:SkyXZ~-CSDN博客 博客园:SkyXZ - 博客园 PS:网页端用不明白...还是SDK方便...一、SageMaker介绍Amazon SageMaker 是 AWS 提供的全托管机器学习平台,它覆盖了从数据准备、模型训练、超参数调优到…

    反转数字-处理溢出的条件-Java

    反转数字-处理溢出的条件-Java题目:反转数字 描述 给定一个32位的有符号整数num,将num中的数字部分反转,最后返回反转的结果。 1.只反转数字部分,符号位部分不反转。 2.反转后整数num超过 32 位的有符号整数的范围…

    废品回收小程序:从 “扔垃圾“ 到 “变资源“ 的体验革命 - 详解

    废品回收小程序:从 “扔垃圾“ 到 “变资源“ 的体验革命 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

    做网站的会什么wordpress调用主站的文章

    1、点击主页面右上角的三条横杠 腾讯视频如何设置关闭本地视频后自动打开主界面 2、点击【设置】 腾讯视频如何设置关闭本地视频后自动打开主界面 3、点击左侧的【高级设置】 腾讯视频如何设置关闭本地视频后自动打开主界面 4、勾选【关闭本地视频后自动打开主界面】 腾…

    怎么做自己公司的网站如何用手机免费创建网站

    12 月 3 日&#xff0c;2023 IoTDB 用户大会在北京成功举行&#xff0c;收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题&#xff0c;多位学术泰斗、企业代表、开发者&#xff0c;深度分享了工业物联网时序数据库 IoTDB 的技术创新…

    网站开发可行性报告货运app开发公司

    云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 简介&#xff1a; 对比大多数开发者来说&#xff0c;杨飞的职业路线可以说是大相径庭。从大厂到创业公司&#xff0c;从一线城…

    用flash做的网站网站开发相关技术

    热门API接口大全分享&#xff0c;含天气、物流等。。。 天气预报查询&#xff1a;查询全国以及全球多个城市的天气&#xff0c;包含15天天气预报查询。天气预警&#xff1a;可以获取指定城市当前生效中的各类天气预警&#xff0c;如寒潮蓝色预警信号&#xff0c;或一次性拉取全…

    详细介绍:C++基础(22)——模板的进阶

    pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

    一个问题记录-服务器那边所以得请求进去,去操作数据库的时候,全部都拿不到数据库链接com.alibaba.druid.pool.GetConnectionTimeoutException

    一个问题记录-服务器那边所以得请求进去,去操作数据库的时候,全部都拿不到数据库链接com.alibaba.druid.pool.GetConnectionTimeoutException1 问题愉快的星期六,需要接到电话,说系统崩了一看日志,发现所以请求全…

    稍微人格解离一点也无所谓,别太过就行

    正文今天聊个有点危险的话题:“人格解离”。先声明,我说的不是临床上那种需要看医生的病理性人格解离障碍(DID)。我说的是一种主动的、可控的、作为心理防御机制的 “轻度人格解离”。轻度的人格解离,是一种非常实…

    快速构建高性能 web 应用!了解 Gin Web 框架 - 教程

    pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

    淘宝客做连接网站网站前端静态模板下载

    关于APP开发目前已经过了火热的阶段&#xff0c;现在学习APP开发的人越来越多&#xff0c;但在实际的业务场景中&#xff0c;APP开发还是有一部分的市场需求。 所以&#xff0c;这里简单记录一下APP开发的几种思路和方案。 APP平台 首先&#xff0c;目前APP开发主要有两大平…

    移动网站功能峰峰信息港免费发布平台

    播放器有个功能&#xff0c;当用户打开视频时&#xff0c;需要读取媒体文件的总时长等信息&#xff0c;不巧的时&#xff0c;获取FLV时总失败&#xff0c;下面来具体分析下FLV和MP4获取总时长的原因和区别&#xff1a; 播放器有个获取MediaInfo的接口&#xff0c;功能如下&am…

    题解:[GESP202509 五级] T1

    题目传送门 目前还不知道,题目还未加入洛谷题库 题目概述 T1: 给定一个数 \(n(n \le 10^5)\),你需要选出若干个在1到 \(n\) 范围内的数,使其中任意两个数互质(即两数最大公因数为1),问最多你能选几个数? 解题思…

    US$39.9 Scorpio-LK Emulators SLK-06 for Tango Key Programmer

    Scorpio-LK Emulators SLK-06 for Tango Key Programmer including AuthorizationSLK-06 is battery powered. Note that a battery is not included with an emulator and has to be obtained locally. Three standar…

    公司做网站一般网站建设哪儿好

    preareRefresh&#xff1a;刷新前的工作准备 obtainFreshBeanFactory&#xff1a;获取子类刷新后的内部beanFactory实列 prepareBeanFactory&#xff1a;为容器注册必要的系统级别bean postProcessBeanFactory&#xff1a;允许容器的子类注册postProcessor invokeBeanFacto…

    OI 模板合集

    输入输出优化 int 快读 int read() {int xr=0,F=1; char cr;while(cr=getchar(),cr<0||cr>9) if(cr==-) F=-1;while(cr>=0&&cr<=9)xr=(xr<<3)+(xr<<1)+(cr^48),cr=getchar();return x…

    2025无人机在低空应急救援中的应用实践

    2025年7月,深圳大鹏新区一名登山者跌落悬崖重伤。传统救援需数小时,但一架搭载医疗设备的无人机仅用78分钟完成伤者转运,生命体征全程平稳。这场"低空生命接力"背后,是2025年无人机在应急救援领域的全面…

    本地做那种网站好一些大连网站建设 领超最好

    一、简述 我们在日常处理文件时&#xff0c;经常用到os模块&#xff0c;但是有的时候你会发现&#xff0c;像拷贝、删除、打包、压缩等文件操作&#xff0c;在os模块中没有对应的函数去操作&#xff0c;下面我们就来讲讲高级的 文件、文件夹、压缩包 处理模块&#xff1a;shuti…