一键安装LAMP环境

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 资源编排服务ROS(Resource Orchestration Service)支持通过创建资源栈的方式一键安装LAMP环境。

一键安装LAMP环境

1.  实验资源方式简介及开始实验

云起实验室实验资源方式介绍

云起实验室支持个人账户资源一种实验资源方式。

  • 个人账户资源
  • 使用您个人的云资源进行操作,资源归属于个人。
  • 所有实验操作将保留至您的账号,请谨慎操作。
  • 平台仅提供手册参考,不会对资源做任何操作。
  • 说明:使用个人账户资源,在创建资源时,可能会产生一定的费用,请您及时关注相关云产品资源的计费概述。

准备开始实验

在实验开始前,请您选择其中一种实验资源,单击确认开启实验

说明:每个实验所支持的实验资源方式都不相同,实验不一定能满足有三种实验资源方式,请根据实验的实际情况,进行选择。

2.  编写ROS模板

本步骤将指导您如何编写一键安装LAMP环境的ROS模板。

  1. 模版说明。

LAMP(Linux+Apache+MySQL+PHP)网站架构是目前国际流行的Web框架,包括Linux操作系统、Apache网络服务器、MySQL数据库和PHP编程语言,所有组成产品均为开源软件。LAMP环境具有通用、跨平台、高性能、低价格的特点。

模板示例部署LAMP(Linux+Apache+MySQL+PHP)环境在已有专有网络、交换机和安全组等资源的基础上,默认创建CentOS系统并安装Apache、MySQL、PHP等必要软件。使用模板创建资源栈成功后即可获取ApacheWebURL,登录Apache管理控制台。

  1. 一键安装LAMP环境的ROS模板。

示例模版如下:

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "在已有虚拟专有网络、交换机和安全组基础资源上,基于Centos7系统中一键部署LAMP(Linux+Apache+MySQL+PHP)开发环境。",
    "en": "On the existing virtual proprietary network, switches, and security group base resources, the one-click deployment OF LAMP (Linux-Apache-MySQL-PHP) development environment based on the Centos7 system."
  },
  "Parameters": {
    "DBPassword": {
      "NoEcho": true,
      "Type": "String",
      "Label": {
        "zh-cn": "数据库用户密码",
        "en": "DB User Password"
      },
      "Description": {
        "zh-cn": "MySQL用户密码,数据库访问大小写字母、数字和下划线(_),8-32个字符",
        "en": "The MySQL user password, consisting of letters, numbers, and underline(_), 8 to 32 characters in length"
      },
      "ConstraintDescription": {
        "zh-cn": "由字母、数字和下划线(_)组成,长度为8到32个字符",
        "en": "Consisting of letters, numbers, and underline(_), 8 to 32 characters in length"
      },
      "MinLength": 8,
      "MaxLength": 32
    },
    "ZoneId": {
      "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
      "Type": "String",
      "Description": {
        "zh-cn": "可用区ID。<br><b>注: <font color='blue'>选择前请确认该可用区是否支持创建ECS资源的规格,建议与其他交换机可用区不同</font></b>",
        "en": "Availability Zone ID.<br><b>note:<font color='blue'>before selecting, please confirm that the Availability Zone supports the specification of creating ECS resources,which is recommended to be different from other VSwitch Availability Zone</font></b>"
      },
      "Label": {
        "zh-cn": "交换机可用区",
        "en": "VSwitch Availability Zone"
      }
    },
    "ImageId": {
      "Default": "centos_7",
      "Type": "String",
      "Description": {
        "zh-cn": "镜像ID, 请使用Centos7, 详见:<b><a href='https://help.aliyun.com/document_detail/112977.html' target='_blank'><font color='blue'>查找镜像</font></a></b>",
        "en": "Image ID,Please use Centos7, see detail:<b><a href='https://www.alibabacloud.com/help/en/doc-detail/112977.html' target='_blank'><font color='blue'>Find the mirror</font></a></b>"
      },
      "Label": {
        "zh-cn": "镜像",
        "en": "Image"
      }
    },
    "DBName": {
      "Type": "String",
      "Description": {
        "zh-cn": "MySQL数据库名称,[1, 64] 英文或中文字符,必须以字母或中文开头,可以包含数字、下划线或“.”、“-”。",
        "en": "MySQL database name, [1, 64] English or Chinese characters, must start with a letter or Chinese in size, can contain numbers, '_' or '.', '-'."
      },
      "ConstraintDescription": {
        "zh-cn": "必须以字母开头并且只包含字母数字字符。",
        "en": "Must begin with a letter and contain only alphanumeric characters."
      },
      "Label": {
        "zh-cn": "数据库名称",
        "en": "DB Name"
      },
      "Default": "MyDatabase",
      "MaxLength": 64,
      "MinLength": 1
    },
    "DBUser": {
      "Type": "String",
      "Description": {
        "zh-cn": "MySQL数据库访问的用户名。它由小写字母、数字和下划线(_)组成,以字母开头。不超过16个字符。",
        "en": "Username for MySQL database access.It consists of lowercase letters, numbers and underscores (_), and begins with a letter. Not longer than 16 characters."
      },
      "ConstraintDescription": {
        "zh-cn": "必须以字母开头并且只包含字母数字字符。",
        "en": "Must begin with a letter and contain only alphanumeric characters."
      },
      "Label": {
        "zh-cn": "数据库用户名",
        "en": "DB UserName"
      },
      "MaxLength": 16,
      "MinLength": 1,
      "Default": "DefaultUser"
    },
    "DBRootPassword": {
      "NoEcho": true,
      "Type": "String",
      "Description": {
        "zh-cn": "MySQL的root用户密码, 由字母、数字、下划线(_)组成,长度为8~32个字符",
        "en": "Root user password for MySQL, consisting of letters, numbers, and underline(_), 8 to 32 characters in length"
      },
      "Label": {
        "zh-cn": "数据库管理员用户密码",
        "en": "DB Root Password"
      },
      "ConstraintDescription": {
        "zh-cn": "由字母、数字和下划线(_)组成,长度为8到32个字符",
        "en": "Consisting of letters, numbers, and underline(_), 8 to 32 characters in length"
      },
      "MinLength": 8,
      "MaxLength": 32
    },
    "InstanceType": {
      "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
      "AssociationPropertyMetadata": {
        "ZoneId": "ZoneId"
      },
      "Label": {
        "zh-cn": "实例规格",
        "en": "Instance Type"
      },
      "Type": "String",
      "Description": {
        "zh-cn": "<font color='blue'><b>1.选择机型前请先确认当前可用区下该机型是否有货,部分机型需要提前报备</b></font><br><font color='blue'><b>2.可选机型列表</font><br></b></font>[ecs.c5.large <font color='green'>2vCPU 4GiB 内网带宽1Gbps 内网收发包30万PPS</font>]<br></b>[ecs.c5.xlarge <font color='green'>4vCPU 8GiB 内网带宽1.5Gbps 内网收发包50万PPS</font>]<br></b>[ecs.c5.2xlarge <font color='green'>8vCPU 16GiB 内网带宽2.5Gbps 内网收发包80万PPS</font>]",
        "en": "<font color='blue'><b>1.Before selecting the model please confirm that the current available zone under the model is in stock, some models need to be reported in advance</b></font><br><font color='blue'><b>2.List of optional models</font><br></b></font>[ecs.c5.large <font color='green'>2vCPU 4GiB Intranet bandwidth1Gbps In-grid sending and receiving packages30MillionPPS</font>]<br></b>[ecs.c5.xlarge <font color='green'>4vCPU 8GiB Intranet bandwidth1.5Gbps In-grid sending and receiving packages50MillionPPS</font>]<br></b>[ecs.c5.2xlarge <font color='green'>8vCPU 16GiB Intranet bandwidth2.5Gbps In-grid sending and receiving packages80MillionPPS</font>]"
      }
    },
    "SystemDiskCategory": {
      "Default": "cloud_efficiency",
      "Label": {
        "zh-cn": "系统盘类型",
        "en": "System Disk Type"
      },
      "Type": "String",
      "Description": {
        "en": "<font color='blue'><b>Optional values:</b></font><br>[cloud_efficiency: <font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font color='green'>Cloud Disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD Cloud Disk</font>]",
        "zh-cn": "<font color='blue'><b>可选值:</b></font><br>[cloud_efficiency: <font color='green'>高效云盘</font>]<br>[cloud_ssd: <font color='green'>SSD云盘</font>]<br>[cloud_essd: <font color='green'>ESSD云盘</font>]<br>[cloud: <font color='green'>普通云盘</font>]<br>[ephemeral_ssd: <font color='green'>本地SSD盘</font>]"
      },
      "AllowedValues": [
        "cloud_efficiency",
        "cloud_ssd",
        "cloud",
        "cloud_essd",
        "ephemeral_ssd"
      ]
    },
    "InstancePassword": {
      "Type": "String",
      "Description": {
        "zh-cn": "服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。",
        "en": "Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in)."
      },
      "MinLength": 8,
      "Label": {
        "zh-cn": "实例密码",
        "en": "Instance Password"
      },
      "AllowedPattern": "[0-9A-Za-z\\_\\-\\&:;'<>,=%`~!@#\\(\\)\\$\\^\\*\\+\\|\\{\\}\\[\\]\\.\\?\\/]+$",
      "NoEcho": true,
      "MaxLength": 30,
      "ConstraintDescription": {
        "zh-cn": "长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。",
        "en": "Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in)."
      }
    },
    "VPC": {
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Type": "String",
      "Description": {
        "zh-cn": "现有虚拟专有网络的实例ID,控制台-VPC-专有网络下查询",
        "en": "Please search the ID starting with (vpc-xxx)from console-Virtual Private Cloud"
      },
      "Label": {
        "zh-cn": "现有VPC的实例ID",
        "en": "Existing VPC Instance ID"
      }
    },
    "VSwitch": {
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "AssociationPropertyMetadata": {
        "VpcId": "VPC",
        "ZoneId": "ZoneId"
      },
      "Type": "String",
      "Description": {
        "zh-cn": "现有业务网络交换机的实例ID,控制台-VPC-专有网络-交换机下查询",
        "en": "Please search the business vswitch ID starting with(vsw-xxx)from console-Virtual Private Cloud-VSwitches"
      },
      "Label": {
        "zh-cn": "网络交换机ID",
        "en": "VSwitch ID"
      }
    }
  },
  "Metadata": {
    "ALIYUN::ROS::Interface": {
      "ParameterGroups": [
        {
          "Parameters": [
            "VPC",
            "ZoneId",
            "VSwitch"
          ],
          "Label": {
            "default": {
              "zh-cn": "基础资源配置配置",
              "en": "Infrastructure Configuration"
            }
          }
        },
        {
          "Parameters": [
            "ImageId",
            "InstanceType",
            "SystemDiskCategory",
            "InstancePassword",
            "DBName",
            "DBUser",
            "DBPassword",
            "DBRootPassword"
          ],
          "Label": {
            "default": {
              "zh-cn": "LAMP配置",
              "en": "LAMP Configuration"
            }
          }
        }
      ],
      "TemplateTags": [
        "acs:example:云起实验室:一键安装LAMP环境",
        "acs:developer:云起实验室:一键安装LAMP环境"
      ]
    }
  },
  "Resources": {
    "WebServerConditionHandle": {
      "Type": "ALIYUN::ROS::WaitConditionHandle"
    },
    "SecurityGroup": {
      "Type": "ALIYUN::ECS::SecurityGroup",
      "Properties": {
        "SecurityGroupName": "LAMP",
        "SecurityGroupIngress": [
          {
            "PortRange": "80/80",
            "Priority": 1,
            "SourceCidrIp": "0.0.0.0/0",
            "IpProtocol": "tcp",
            "NicType": "internet"
          }
        ],
        "VpcId": {
          "Ref": "VPC"
        }
      }
    },
    "WebServer": {
      "DependsOn": "SecurityGroup",
      "Type": "ALIYUN::ECS::Instance",
      "Properties": {
        "InternetMaxBandwidthOut": 80,
        "IoOptimized": "optimized",
        "VpcId": {
          "Ref": "VPC"
        },
        "UserData": {
          "Fn::Replace": [
            {
              "ros-notify": {
                "Fn::GetAtt": [
                  "WebServerConditionHandle",
                  "CurlCli"
                ]
              }
            },
            {
              "Fn::Join": [
                "",
                [
                  "#!/bin/bash \n",
                  "\n",
                  "dbname=",
                  {
                    "Ref": "DBName"
                  },
                  "\n",
                  "dbuser=",
                  {
                    "Ref": "DBUser"
                  },
                  "\n",
                  "dbpassword=",
                  {
                    "Ref": "DBPassword"
                  },
                  "\n",
                  "dbrootpassword=",
                  {
                    "Ref": "DBRootPassword"
                  },
                  "\n",
                  "export HOME=/root \n",
                  "export HOSTNAME=`hostname` \n",
                  "systemctl stop firewalld.service \n",
                  "systemctl disable firewalld.service \n",
                  "sed -i 's/^SELINUX=/# SELINUX=/' /etc/selinux/config \n",
                  "sed -i '/# SELINUX=/a SELINUX=disabled' /etc/selinux/config \n",
                  "setenforce 0 \n",
                  "yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql \n",
                  "yum install yum-priorities -y \n",
                  "yum -y install php-fpm \n",
                  "systemctl start php-fpm.service \n",
                  "systemctl enable php-fpm.service \n",
                  "yum -y install mariadb mariadb-server \n",
                  "systemctl start mariadb.service \n",
                  "systemctl enable mariadb.service \n",
                  "yum -y install php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash php-mcrypt \n",
                  "MDSRING=`find / -name mbstring.so` \n",
                  "echo extension=$MDSRING >> /etc/php.ini \n",
                  "systemctl restart mariadb.service \n",
                  "systemctl start httpd.service \n",
                  "mysqladmin -u root password \"$dbrootpassword\" \n",
                  "$(mysql $dbname -u root --password=\"$dbrootpassword\" >/dev/null 2>&1 </dev/null); (( $? != 0 )) \n",
                  "echo CREATE DATABASE $dbname \\; > /tmp/setup.mysql \n",
                  "echo GRANT ALL ON $dbname.* TO \"$dbuser\"@\"localhost\" IDENTIFIED BY \"'$dbpassword'\" \\; >> /tmp/setup.mysql \n",
                  "mysql -u root --password=\"$dbrootpassword\" < /tmp/setup.mysql \n",
                  "$(mysql $dbname -u root --password=\"$dbrootpassword\" >/dev/null 2>&1 </dev/null); (( $? != 0 )) \n",
                  "cd /root \n",
                  "systemctl restart php-fpm.service \n",
                  "echo \\<?php >  /var/www/html/test.php \n",
                  "echo \\$conn=mysql_connect\\(\"'127.0.0.1'\", \"'$dbuser'\", \"'$dbpassword'\"\\)\\; >>  /var/www/html/test.php \n",
                  "echo if \\(\\$conn\\){ >>  /var/www/html/test.php \n",
                  "echo   echo \\\"LAMP platform connect to mysql is successful\\!\\\"\\; >>  /var/www/html/test.php \n",
                  "echo   }else{  >>  /var/www/html/test.php \n",
                  "echo echo \\\"LAMP platform connect to mysql is failed\\!\\\"\\;  >>  /var/www/html/test.php \n",
                  "echo }  >>  /var/www/html/test.php \n",
                  "echo  phpinfo\\(\\)\\;  >>  /var/www/html/test.php \n",
                  "echo \\?\\>  >>  /var/www/html/test.php \n",
                  "ros-notify -d '{\"data\" : \"Install LAMP stack.\"}'\n"
                ]
              ]
            }
          ]
        },
        "SecurityGroupId": {
          "Ref": "SecurityGroup"
        },
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "ImageId": {
          "Ref": "ImageId"
        },
        "InstanceType": {
          "Ref": "InstanceType"
        },
        "SystemDiskCategory": {
          "Ref": "SystemDiskCategory"
        },
        "Password": {
          "Ref": "InstancePassword"
        }
      }
    },
    "WebServerWaitCondition": {
      "Type": "ALIYUN::ROS::WaitCondition",
      "Properties": {
        "Timeout": 1800,
        "Count": 1,
        "Handle": {
          "Ref": "WebServerConditionHandle"
        }
      },
      "DependsOn": "WebServer"
    }
  },
  "Outputs": {
    "ApacheWebURL": {
      "Description": "URL for newly created apache web page.",
      "Value": {
        "Fn::Join": [
          "",
          [
            "http://",
            {
              "Fn::GetAtt": [
                "WebServer",
                "PublicIp"
              ]
            },
            "/test.php"
          ]
        ]
      }
    }
  }
}

3.  创建资源栈

以下操作需登录阿里云账号,通过资源编排控制台一键安装LAMP环境。

说明:通过资源编排控制台一键安装LAMP环境时会创建ECS实例,产生一定的费用,并按量计费,详情请参考计费概述

访问资源编排控制台

  1. 进入资源编排控制台
  2. 在左侧导航栏中,单击资源栈

  1. 资源栈列表页面,单击创建资源栈,然后在下拉列表中选择使用ROS

  1. 选择模板页签,指定模板选择已有模板,模板录入方式选择输入模板,将上一小节中的一键安装LAMP环境的ROS模板内容复制到模板内容输入框中,然后单击下一步

  1. 配置模板参数页签,配置资源栈名称及其余参数,在页面右下角,查看创建ECS所产生的费用,然后单击创建

说明:通过资源编排控制台一键安装LAMP环境时会创建ECS实例,产生一定的费用,并按量计费。实验完成后,请您及时释放资源。

参数

说明

示例值

现有VPC的实例ID

VPC实例ID。

关于如何创建和查看VPC实例,请参见使用专有网络

选择您的VPC的实例ID。

若无VPC实例,请单击右侧的新建专有网络

交换机可用区

专有网络下的交换机可用区。

选择可用区,例如可用区K。

网络交换机ID

专有网络下的交换机ID。

关于如何创建和查看交换机,请参见使用交换机

选择您的专有网络下的交换机ID。

若无交换机,请单击右侧的新建交换机

镜像

ECS镜像ID。默认使用centos_7。

更多信息,请参见镜像概述

默认使用centos_7。

实例规格

ECS实例的规格。

请选用有效的实例规格。更多信息,请参见实例规格族

选择任意一款ECS实例规格,例如ecs.xn4.small。

系统盘类型

ECS系统盘的类型。取值:

cloud_efficiency:高效云盘。

cloud_ssd:SSD云盘。

cloud_essd:ESSD云盘。

cloud:普通云盘。

ephemeral_ssd:本地SSD盘。

更多信息,请参见云盘概述

选择任意一款ECS系统盘类型,例如cloud_efficiency。

实例密码

ECS实例的密码。

自定义ECS实例的密码。

数据库名称

RDS MySQL数据库名称。

更多信息,请参见RDS MySQL数据库概述

默认数据库名称为MyDatabase。

数据库用户名

RDS MySQL数据库用户名。

默认数据库用户名DefaultUser。

数据库用户密码

RDS MySQL数据库用户密码。

自定义数据库用户密码。

数据库管理员用户密码

RDS MySQL数据库管理员用户密码。

自定义数据库管理员用户密码。

返回如下页面,单击图标刷新页面,状态变为创建成功,表示您已成功创建ECS实例并一键安装LAMP环境。

4.  查看资源栈

本步骤将指导您在完成创建资源栈操作后,如何查询资源栈详情。

  1. 查看资源栈信息。

单击资源栈信息页签,您可以查看到资源栈的基本信息资源栈策略

  1. 查看资源栈事件。

单击事件页签,您可以查看资源栈生命周期中发生的每一个事件。

  1. 查看资源栈资源。

单击资源页签,您可以查看资源栈所包括的每一个资源的信息。

说明:ECS属于付费云产品资源,请您及时释放。您可以单击资源列表下的WebServer左侧栏中的ECS实例ID,即可跳转至ECS控制台查看本次创建的ECS资源信息。

  1. 查看资源栈输出。

单击输出页签,您可以查看创建资源栈时,模板中指定的输出信息。

  1. 查看资源栈参数。

单击参数页签,您可以查看创建资源栈时,模板中指定的参数,包括ROS提供的以ALIYUN::开头的伪参数。

  1. 查看资源栈模版。

单击模板页签,您可以查看资源栈所对应的模板信息。

5.  释放资源栈

本步骤将指导您如何释放通过资源编排控制台创建资源内容。

  1. 模板页签,单击右上角的图标。

  1. 资源栈列表页面,找到您创建的资源栈,单击操作列下的删除

  1. 删除资源栈对话框中,删除方式选择释放资源,单击确定

实验链接:https://developer.aliyun.com/adc/scenario/a35f8c254c354f47b80611d9261d29ed

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
安全 数据安全/隐私保护
【密码学】一文读懂线性反馈移位寄存器
在正式介绍线性反馈移位寄存器(LFSR)之前,先来看一个小故事,相传在遥远的古代,住着4个奇怪的人。
2082 0
【密码学】一文读懂线性反馈移位寄存器
|
关系型数据库 MySQL Apache
Discuz贴吧建站的搭建及维护(windows系统)
Discuz贴吧建站的搭建及维护(windows系统)
515 0
|
域名解析 弹性计算 监控
用阿里云服务器搭建论坛教程
```markdown 1. 购买阿里云ECS实例 2. 配置域名解析至服务器IP 3. 安装Nginx/Apache,部署论坛文件 4. 安装MySQL,创建数据库和用户 5. 选择论坛程序(如Discuz!),完成安装配置 6. 自定义论坛参数,设置功能 7. 可选:启用SSL证书增强安全性 8. 定期备份数据,监控服务器性能 确保更新维护,顺利搭建安全论坛!求助阿里云客服或文档以获取支持。 ```
538 0
成功解决:Failed to load resource: net::ERR_FILE_NOT_FOUND
这篇文章提供了解决"Failed to load resource: net::ERR_FILE_NOT_FOUND"错误的步骤,通过修改配置文件中的资源路径设置为相对路径"./"来成功运行打包后的项目。
成功解决:Failed to load resource: net::ERR_FILE_NOT_FOUND
|
开发框架 编译器 定位技术
探索游戏开源世界:引擎与框架的宝库
本文介绍了多个开源游戏引擎和框架,如 Bevy(用 Rust 构建)、Mach、Axmol、Cocos、Open 3D Engine、KorGE、Tiled、OpenRA 和 Godot。这些工具降低了游戏开发的门槛,支持跨平台开发,并推动了游戏行业的发展。
|
运维 监控 安全
敲重点!「选择浸没式液冷的十大理由」首期直播全回顾
「选择浸没式液冷的十大理由」直播精华回顾
敲重点!「选择浸没式液冷的十大理由」首期直播全回顾
数据结构学习笔记——链式存储结构实现栈(链栈)
数据结构学习笔记——链式存储结构实现栈(链栈)
数据结构学习笔记——链式存储结构实现栈(链栈)
|
消息中间件 JavaScript 小程序
Java与lua互相调用简单教程
Java与lua互相调用简单教程
Java与lua互相调用简单教程
|
云安全 机器学习/深度学习 人工智能
六个优秀漏洞管理工具
这些年来,不仅漏洞管理发生了相当大的变化,企业安全团队发现并不断修补的系统也发生了变化。如今,有系统内部部署、物联网设备、公有和私有云,以及更多的定制应用程序。漏洞管理系统不再只关注网络和私有托管应用程序。现在,他们必须评估所有这些系统,找出漏洞,并帮助企业安全团队做出更好的补救决策。
2346 1
|
Java 应用服务中间件 测试技术
2021 最新版 JDK 1.8 下载与安装 步骤演示 (图示版)(二)
2021 最新版 JDK 1.8 下载与安装 步骤演示 (图示版)
868 0
2021 最新版 JDK 1.8 下载与安装 步骤演示 (图示版)(二)