【ECS常见问题三 ——镜像】 ECS 实例与操作系统镜像 FAQ

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 我能自己安装或者升级操作系统吗?您可以通过以下方式安装或者升级操作系统:更换系统盘重新选择操作系统。从本地导入自己的镜像后使用自定义镜像创建 ECS 实例。为操作系统打补丁。

ECS 实例与操作系统镜像 FAQ


Linux 操作系统内核回写时出现 softlockup 异常如何解决?

部分低版本的 Linux 操作系统内核在回写(writeback)文件缓存时,会出现 softlockup 异常。具体的解决方案。


问题现象

在内核版本低于 4.15 Linux 实例中,内核回写文件缓存时会出现 softlockup 异常,并产生与如下所述类似的调用栈信息:

说明:Linux 内核版本可以通过 uname -r 命令查看,例如查看结果为

3.10.0-514.26.2.el7.x86_64,则其中的 3.10.0 为内核版本。

本文所述的 4.15 版本指4.15.0 版本。


[3507707.671883]

[<ffffffff8127cf7a>] redirty_tail+0x3a/0x40

[3507707.671884]

[<ffffffff81280ea4>] __writeback_inodes_wb+0x64/0xc0

[3507707.671885]

[<ffffffff81281238>] wb_writeback+0x268/0x300

[3507707.671887]

[<ffffffff812819f4>] wb_workfn+0xb4/0x380

[3507707.671889]

[<ffffffff810a5dc9>] process_one_work+0x189/0x420

[3507707.671890]

[<ffffffff810a625b>] worker_thread+0x1fb/0x4b0

[3507707.671891]

[<ffffffff810a6060>] ? process_one_work+0x420/0x420

[3507707.671893]

[<ffffffff810ac696>] kthread+0xe6/0x100

[3507707.671894]

[<ffffffff810ac5b0>] ? kthread_park+0x60/0x60

[3507707.671897]

[<ffffffff81741dd9>] ret_from_fork+0x39/0x50


问题原因

当实例中的内存紧缺时,系统内核会频繁调用 wakeup_flusher_threads 函数,调用该函数时会创建大量的回写任务(wb_writeback_work),从而导致回写线程一直在处理回写任务,最终引发系统 softlockup 异常。


解决方案

您需要把内核版本更新为高于 4.15 的版本以解决该问题。Alibaba Cloud Linux 操作系统的内核版本均为 4.19,不会出现该问题。以下解决方案主要适用于非 Alibaba Cloud Linux 操作系统的其他Linux 发行版。


注意:在操作前,建议您为 ECS 实例创建快照备份数据,避免因误操作造成的数据丢失。

  • 远程连接 Linux 实例。
  • 运行以下命令查看内核版本信息。

uname -r

  • 如果内核版本不高于 4.15,则需要运行以下命令更新内核版本。

如果内核版本高于 4.15,则表示系统不会出现 softlockup 异常。您无需再进行后续操作。

yum update kernel

  • 更新内核版本后,需要重启 Linux 实例。

reboot

  • Linux 实例重启后,再次运行以下命令,确认内核版本已高于 4.15

uname -r


部分低版本的 Linux 内核如果无法通过 yum update kernel 命令更新内核版本,则需要您自行下载高于 4.15 版本的内核 RPM 包手动升级。


为什么我无法使用 ssh-rsa 签名算法的 SSH 密钥对远程连接 Fedora 3364 位系统的实例?

当您使用 Fedora 33 64 位操作系统的 ECS 实例时,如果登录凭证设置的是 ssh-rsa 签名算法的 SS

H 密钥对,可能无法顺利使用 SSH远程连接实例。您可以通过以下任一方式解决该问题:

  • ssh-rsa 签名算法的 SSH 密钥对替换为 ECDSA 签名算法等其他签名算法的 SSH 密钥对。
  • 在系统中运行 update-crypto-policies --set LEGACY 命令,将加密策略 POLICY 切换为 LEGACY,即可继续使用 ssh-rsa 签名算法的 SSH 密钥对。


为什么有的 ECS 实例无法选择 Windows 操作系统?

使用 Windows 操作系统创建ECS 实例时,需要确保实例内存大于等于 1GiB。内存低于1GiB ECS 实例(例如, 512MiB)只能选择 Linux 镜像和 Windows Server 1709 镜像。


阿里云是否支持 Windows Server 2008 Windows Server 2008 R2 操作系统?

微软已经于 2020 1 14 日停止对 Windows Server 2008 Windows Server 2008 R2 操作系统提供支持。因此阿里云不再对使用上述操作系统的 ECS 实例提供技术支持。如果您有使用上述操作系统的 ECS 实例,请尽快更新至 Windows Server 2012 或以上版本。


实例的操作系统为 Windows Server,现在提示 Windows 副本不是正版怎么办?

激活 Windows 操作步骤:

  • 单击开始>运行,输入 cmd,然后按回车键后进入命令行窗口。
  • 执行以下命令,更换 KMS 域名。

slmgr -skms kms.cloud.aliyuncs.com


说明:

  • 如果执行失败,则先检查您使用的 DNS 服务器是否为阿里的 DNS 服务器,若使用了非阿里 DNS 之后,会导致 kms.cloud.aliyuncs.com 解析不到,建议从 VPC 创建出来的 ECS 实例需要将缺省 DNS 服务器设置为100.100.2.136 100.100.2.138
  • 如果您的 ECS 实例是经典网络,您需要执行 slmgr -skms kms.aliyun-inc.com 命令进行更改。


系统显示类似如下,表示设置成功,然后单击确定。

image.png

  • 执行以下命令,激活 KMS 服务。

slmgr -ato

系统显示类似如下,表示激活成功。

image.png

如果在激活中遇到问题,请参见 Windows系统ECS实例激活失败



ECS 实例使用操作系统需要付费吗?

使用公共镜像 Windows Server Red Hat 需付费,计费与实例规格大小有关,其余公共镜像均免费。


我能自己安装或者升级操作系统吗?

您可以通过以下方式安装或者升级操作系统:

  • 更换系统盘重新选择操作系统。
  • 从本地导入自己的镜像后使用自定义镜像创建 ECS 实例。
  • 为操作系统打补丁。


操作系统是否有图形界面?

Windows Server 半年渠道实例以外,Windows 操作系统是桌面管理形式。

Linux 操作系统是命令行形式,您可以根据需要安装图形化桌面。


公共镜像自带 FTP 上传吗?

不自带,需要您自己安装配置。


阿里云支持哪些 SUSE 版本?

目前,公共镜像支持的 SUSE 版本。

  • SUSE Linux Enterprise Server 15 SP2 64
  • SUSE Linux Enterprise Server 15 SP1 64
  • SUSE Linux Enterprise Server 12 SP5 64
  • SUSE Linux Enterprise Server 12 SP4 64
  • SUSE Linux Enterprise Server 12 SP2 64
  • SUSE Linux Enterprise Server 11 SP4 64


SUSE 操作系统提供哪些服务支持?

阿里云线上售卖的 SLESSUSE Linux Enterprise Server)操作系统会与 SUSE 更新源保持定时同步。使用 SLES 公共镜像创建的实例,其操作系统的支持服务涵盖在阿里云的企业级别支持服务中。如果您购买了企业级支持服务,可以提交工单获取帮助,阿里云工程师团队会协助您解决 SLES 操作系统上发生的问题。


ECS 实例到期释放后,如果这个实例之前手动制作了镜像快照,能不能找回之前实例的数据?

可以。您可通过以下任一方式找回实例数据:

  • 使用之前制作的镜像创建新实例。
  • 使用之前制作的镜像为当前实例更换系统盘。


注意:更换系统盘操作须注意以下两点:

  • 当前实例系统盘的内容会全部丢失,恢复为镜像的状态。
  • 镜像必须和您当前实例位于同一地域。


我先有一台 ECS 实例,想再买一台 ECS 实例并使用现有这台 ECS 实例的镜像部署,应该如何操作?

您可以为之前的 ECS 实例创建自定义镜像,然后使用该自定义镜像创建 ECS 实例即可。


我已经购买了新的 ECS 实例,如何把我的共享镜像恢复到这台新购 ECS 服务器上?

请确保您已将镜像共享给新购服务器的账号,并根据实际情况选择下列方法之一进行操作。

  • 如果共享镜像和新购服务器在同一个地域,可以更换系统盘,更换时选择您共享的镜像即可。
  • 如果共享镜像和新购服务器不在同一个地域,需要先复制镜像到目标地域,再通过更换系统盘来更换镜像。

注意:更换系统盘存在如下风险:

  • 原系统盘会被释放,建议您提前创建快照备份数据。
  • 更换系统盘需要停止实例,因此会中断您的业务。
  • 更换系统盘完成后,您需要在新的系统盘中重新部署业务运行环境,有可能会对您的业务造成长时间的中断。
  • 更换系统盘是重新为您的实例分配一个系统盘,磁盘 ID 会改变,所以基于旧的系统盘创建的快照将不能用于回滚新的系统盘。


我在阿里云有多个账号,想把账号 A 的一台 ECS 实例转移到账号 B,或者用账号A 购买一台 ECS 实例,把实例运行环境、应用迁移到账号 B。怎么操作?

您可以通过下列步骤操作:

  • 使用账号 A 的实例创建自定义镜像。
  • 共享镜像给账号 B
  • 账号 B 使用共享镜像创建实例。


ECS 实例之间如何迁移?

ECS 实例间迁移步骤如下:

  • 为源 ECS 实例创建自定义镜像。
  • 根据源 ECS 实例与目标 ECS 实例的归属地域和归属账号,迁移分为以下几种情况。
  • 源实例与目标实例属于同地域同账号,可直接进入下一步。
  • 源实例与目标实例属于不同地域,需复制镜像至目标实例所在地域。
  • 源实例与目标实例属于不同账号,需共享镜像给目标实例的账号。
  • 源实例与目标实例属于不同地域和不同账号,需先复制镜像到目标地域,再分享给目标实例的账号。
  • 使用镜像创建新的 ECS 实例,或为现有目标 ECS 实例更换镜像。

说明:为现有目标 ECS 实例更换镜像时,源镜像中不能包含数据盘快照。

以上迁移步骤不适用时,请参见阿里云ECS实例间迁移


如何处理 CentOS DNS 解析超时?

处理 CentOS DNS 解析超时的详情如下:

  • 原因分析

CentOS 6 CentOS 7 DNS 解析机制变动,导致 2017 2 22 日以前创建的 ECS 实例或使用 2017 2 22 日以前的自定义镜像创建的 CentOS 6 CentOS 7 实例可能出现 DNS解析超时的情况。


  • 解决方法

请按下列步骤操作修复此问题:

  • 下载脚本fix_dns.sh
  • 将下载的脚本放至 CentOS 系统的/tmp目录下。
  • 运行 bash /tmp/fix_dns.sh 命令,执行脚本。


  • 脚本作用

判断DNS 解析文件/etc/resolv.conf 中是否存在 options>single-request-reopen 配置。详情请参见 resolv.conf文件说明

CentOS 6 CentOS 7 DNS 解析机制,使用相同的网络五元组发送 IPV4 DNS 请求和 IPV6DNS请求,此时应开启 single-request-reopen配置。开启该配置后,一旦需要处理同一 socket 发送的两次请求时,解析端会在发送第一次请求后关闭 socket,并在发送第二次请求前打开新的socket。配置成功后,无需重启实例即可生效。


  • 脚本逻辑
  • 判断实例系统是否为 CentOS
  • 如果实例为非 CentOS 系统(如Ubuntu Debian):脚本停止工作。
  • 如果实例为 CentOS 系统:脚本继续工作。
  • 查询解析文件/etc/resolv.conf options 的配置情况。
  • 如果不存在 options 配置:

options timeout:2 attempts:3 rotate single-request-reopen

默认使用阿里云 options配置

image.png


如果存在 options 配置:

不存在 single-request-reopen配置,则在 options 配置中追加该项。

存在 single-request-reopen 配置,则脚本停止工作,不更改 DNS nameserver 的配置。


为什么 ECS 默认没有启用虚拟内存或 Swap 说明?

Swap 分区或虚拟内存文件,是在系统物理内存不够用的时候,由系统内存管理程序将那些很长时间没有操作的内存数据,临时保存到 Swap 分区或虚拟内存文件中,以提高可用内存额度的一种机制。

但是,如果在内存使用率已经非常高,而同时 I/O 性能也不是很好的情况下,该机制其实会起到相反的效果。阿里云 ECS 云盘使用了分布式文件系统作为云服务器的存储,对每一份数据都进行了强一致的多份拷贝。该机制在保证用户数据安全的同时,由于 3 倍增涨的 I/O 操作,会降低本地磁盘的存储性能和 I/O 性能。

综上,为了避免当系统资源不足时进一步降低 ECS 云磁盘的 I/O 性能,所以 Windows 系统实例默认没有启用虚拟内存,Linux 系统实例默认未配置 Swap 分区。


RHELRed Hat Enterprise Linux)镜像中如何获取 dump 文件?

当前部分 RHEL 镜像默认未开启 kdump,您可以提交工单获取 dump 文件。请注意,通过提交工单获取 dump 文件时,内存大于 16 GiB 的实例规格可能出现无法获取 dump 文件的情况,详情请以工单内信息为准。


如何在 RedHat 8.1 系统的 ECS 实例中开启 kdump

RedHat 8.1 v1 版本镜像中 kdump 服务默认未开启。如果您需要使用 kdump,请运行以下命令开启 kdump 服务。

systemctl enable kdump systemctl start kdump


如何解决 RedHat 8.1/8.2 镜像在弹性裸金属服务器实例规格族的 ECS 实例下启动慢的问题?

console=ttyS0 console=ttyS0,115200n8

修改为

console=tty0 console=ttyS0,11520

在弹性裸金属服务器实例规格族的 ECS 实例中,RedHat 8.1/8.2 镜像相较于 RedHat 7 镜像启动时长多 1~2 分钟。为解决该问题,您可以在 RedHat 8.1/8.2 系统的/boot/grub2/grubenv 文件中,将内核启动参数

0n8,然后重启服务器使配置生效。


如何设置 Linux 系统的 ECS 实例的静态 IP 地址?

您需要远程连接 ECS 实例进行设置。查看并记录 Linux 实例的 IP 地址和网关信息

  • 登录 Linux 系统的 ECS 实例,执行以下命令,查看实例的 IP 地址和子网掩码。

ifconfig

  • 执行以下命令,查看实例的网关信息。

route -n

  • 或者您也可以参考以下方式,通过阿里云的 MetaServer 获取相关信息。依次执行以下命令,获取实例的子网掩码、网关信息、IP地址。


curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/[$MAC_ID]/netmask curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/[$MAC_ID]/gateway curl http://100.100.100.200/latest/meta-data/network/interfaces/macs/[$MAC_ID]/private-ip v4s


修改 ECS 实例的网络类型

  • 编辑以下文件,将 BOOTPROTO 的值修改为 static,并将以上步骤中记录的 IP 地址、网关信息、子网掩码填写到该配置文件中,保存并退出。

/etc/sysconfig/network-scripts/ifcfg-eth0

  • 执行以下命令,重启网络服务。

systemctl restart network


CentOS/RedHat 7.x 升级 Systemd 重启进入救援模式如何处理?

CentOS 7 RedHat 7 系列的系统在升级 Systemd systemd-219-71.el7 版本后,重启实例会进入救援模式,这样会导致系统网络服务和一般的应用软件服务异常。


问题原因

CentOS 7 RedHat 7 系列的系统中,Systemd 程序包被升级至systemd-219-71.el7 版本时会触发旧版程序包中存在的缺陷,导致 ECS 实例重启后进入救援模式。满足以下条件的 ECS 实例会存在此问题:

  • ECS 实例系统版本是 CentOS 7 RedHat 7 系列。
  • 升级 Systemd systemd-219-71.el7 版本,并重启。可能触发 Systemd 升级的场景如下:
  • 自主升级 Systemd。例如通过 yum update 命令升级所有软件包或 Systemd 软件包。
  • 使用云安全中心修复漏洞。云安全中心修复漏洞时可能会升级 Systemd 软件包。
  • ECS 实例为单 CPU 规格。单CPU ECS 实例规格如下:
  • ecs.s6-c1m1.small
  • ecs.s6-c1m2.small
  • ecs.s6-c1m4.small
  • ecs.xn4.small
  • ecs.n1.small
  • ecs.n4.small
  • ecs.e4.small
  • ecs.e3.small
  • ecs.mn4.small
  • ecs.n1.tiny
  • ecs.n2.small
  • ecs.t5-lc2m1.nano
  • ecs.t5-lc1m1.small
  • ecs.t5-lc1m2.small


解决方案

如果您的 ECS 实例是 CentOS 7 Red Hat 7 系列的系统,同时 ECS 实例规格是单 CPU,请您从以下两种场景中选择符合实际情况的一种进行处理:

  • 已经升级 Systemd 程序并且 ECS 实例处于救援模式

如果 ECS 实例已经进入救援模式,请参考以下步骤进行操作:

  • ECS 实例的系统盘进行快照备份。
  • 通过阿里云 VNC 工具以 root 用户身份登录 ECS 实例。
  • 执行以下命令,重新生成 grub 配置。

dracut --force --regenerate-all

  • 重启 ECS 实例。
  • ECS 实例处于正常状态并且准备升级 Systemd 程序

在做任何可能会触发 Systemd 升级的操作或安装更新应用软件之前,请做好系统快照备份。


在部署业务时如何让程序区分不同的 ECS 实例?

当您在 Linux 系统上部署业务时希望程序能够区分不同的 ECS 实例,可能会通过 systemd-machine-id-setup 命令重置/etc/machine-id的方式来实现,但该方式需要您在每台 ECS 实例上重新生成 m achine ID。为免去繁琐的操作,阿里云推荐您通过/sys/class/dmi/id/product_uuid文件来区分不同的 ECS 实例,该文件作为实例对外的唯一标识之一,可完全取代/etc/machine-id 的作用,并且操作简便,只需要获取实例对应的 UUID 即可。您可以运行以下命令查看 ECS 实例的/sys/class/dm i/id/product_uuid 信息:

cat /sys/class/dmi/id/product_uuid

返回结果示例:image.png


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
27天前
|
存储 编解码 缓存
阿里云服务器实例规格选择参考:根据业务场景选择云服务器实例规格
在阿里云服务器的购买过程中,云服务器实例规格是很多用户最难选择的一个选项,因为阿里云有着多达几十种不同的实例规格,为此,阿里云官方在云服务器购买页面新推出了一个场景化选型推荐,用户可通过自己的上云场景结合场景化选型里面的业务场景和细分场景来选择适合自己的阿里云服务器实例规格,在很大程度上解决了新手用户在选择阿里云服务器实例规格上的困局。
阿里云服务器实例规格选择参考:根据业务场景选择云服务器实例规格
|
10天前
|
人工智能 运维 安全
世界级大模型群,进化阿里云服务器操作系统新范式
世界级大模型群,进化阿里云服务器操作系统新范式
|
10天前
|
分布式计算 大数据 数据挖掘
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例测评与价格参考
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例是阿里云的第八代云服务器实例规格,是除了计算型c7和c8y、通用型g7与g8y、内存型r7与r8y之外同样深受用户喜欢的云服务器实例规格。本文将详细介绍阿里云第八代云服务器中的计算型c8i、通用型g8i、以及内存型r8i实例,包括它们的技术特性、适用场景以及最新的活动价格信息。
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例测评与价格参考
|
26天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
1月前
|
存储 编解码 网络协议
阿里云服务器通用型g8y实例与通用型g7收费标准与性能区别参考
阿里云服务器通用型g7、通用型g8y实例都是阿里云目前活动中可选的通用型实例规格,它们同属于通用型实例,但是他们之间是有一些区别的。通用型g7属于第七代云服务器,而通用型g8y属于倚天云服务器,是最新一代的云服务器实例。本文为大家介绍一下它们在收费标准及性能方面的一些区别,以供参考。
阿里云服务器通用型g8y实例与通用型g7收费标准与性能区别参考
|
24天前
|
编解码 前端开发 安全
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
在我们选购阿里云服务器的过程中,不管是新用户还是老用户通常都是通过阿里云的活动去买了,一是价格更加实惠,二是活动中的云服务器配置比较丰富,足可以满足大部分用户的需求,但是面对琳琅满目的云服务器实例、带宽和云盘选项,如何选择更适合自己,成为许多用户比较关注的问题。本文将介绍如何在阿里云的活动中选择合适的云服务器实例、带宽和云盘,以供参考和选择。
通过阿里云的活动购买云服务器时如何选择实例、带宽、云盘
|
22天前
|
弹性计算 运维 安全
阿里云轻量应用服务器和经济型e实例区别及选择参考
目前在阿里云的活动中,轻量应用服务器2核2G3M带宽价格为82元1年,2核2G3M带宽的经济型e实例云服务器价格99元1年,对于云服务器配置和性能要求不是很高的阿里云用户来说,这两款服务器配置和价格都差不多,阿里云轻量应用服务器和ECS云服务器让用户二选一,很多用户不清楚如何选择,本文来说说轻量应用服务器和经济型e实例的区别及选择参考。
阿里云轻量应用服务器和经济型e实例区别及选择参考
|
23天前
|
机器学习/深度学习 存储 人工智能
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
阿里云的GPU云服务器产品线在深度学习、科学计算、图形渲染等多个领域展现出强大的计算能力和广泛的应用价值。本文将详细介绍阿里云GPU云服务器中的gn6v、gn7i、gn6i三个实例规格族的性能特点、区别及选择参考,帮助用户根据自身需求选择合适的GPU云服务器实例。
阿里云GPU云服务器实例规格gn6v、gn7i、gn6i实例性能及区别和选择参考
|
1月前
|
存储 机器学习/深度学习 安全
阿里云服务器计算型c8i和通用型g8i实例性能、收费标准和适用场景参考
阿里云不断推出高性能云服务器实例以满足不同用户的需求。其中,计算型c8i与通用型g8i实例凭借卓越的性能和灵活的配置,成为企业级用户的热门选择。计算型c8i和通用型g8i实例采用阿里云全新CIPU架构,可提供稳定的算力输出、更强劲的I/O引擎以及芯片级的安全加固,单台实例最高支持100万IOPS,CPU采用Intel®Xeon®Emerald Rapids或者Intel®Xeon®Sapphire Rapids,主频不低于2.7 GHz,全核睿频3.2GHz。本文将深入探讨这两款实例的性能特点、最新收费标准以及适用场景和活动价格情况,以供大家了解和选择。
阿里云服务器计算型c8i和通用型g8i实例性能、收费标准和适用场景参考
|
14天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
下一篇
无影云桌面