在 Ubuntu 14.04 服务器上安装 ISPConfig3 的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
虽然命令行是一个强大的工具,可以让您在许多情况下快速轻松地工作,但在某些情况下,可视化界面是有帮助的。如果您正在为一台机器配置许多不同的服务,或者为客户管理系统的部分,像 ISPConfig 这样的工具可以让这项任务变得更加简单。
ISPConfig 是一个服务器控制面板,允许您轻松配置域名、电子邮件地址、站点配置和用户帐户。我们将在 Ubuntu 14.04 服务器上安装该面板。
先决条件
在开始之前,您应该有一个指向您将要使用的服务器的域名。要了解如何在 DigitalOcean 上配置您的域名,请单击此处。
您还需要一个具有 sudo 权限的非根用户。您可以按照我们的 Ubuntu 14.04 初始服务器设置指南中的步骤 1-4 来学习如何设置非根帐户。以此用户登录以开始操作。
升级系统
我们应该做的第一件事是升级基本系统。这将确保我们系统上的软件包是最新的打包版本。
在执行此操作之前,我们应该更新本地软件包索引,以便 apt 知道最新的软件包版本:
sudo apt-get update
sudo apt-get upgrade
我们的系统现在应该是最新的,我们可以继续进行安装的其余部分。
验证主机名是否正确配置
我们将首先确保我们的主机名已正确配置。在本指南中,我们将假定我们要设置的域名是 server.test.com,服务器的 IP 地址是 111.111.111.111。
我们需要验证我们的主机名是否已正确配置。我们应该查看我们的 hosts 文件:
sudo nano /etc/hosts
它可能看起来像这样:
127.0.0.1 localhost server.test.com server
我们希望使我们的主机名使用我们的公共 IP 地址。您可以通过将该行拆分为两行,并将域名部分指向我们的公共 IP 地址来实现:
127.0.0.1 localhost
<span class="highlight">111.111.111.111 server.test.com server</span>
完成后保存并关闭文件。
我们还应编辑我们的 hostname 文件,以确保它也包含正确的域名:
sudo nano /etc/hostname
如果您的整个主机名没有显示,请修改该值:
<span class="highlight">server.test.com</span>
您应该通过键入以下命令来确保系统使用新值:
sudo hostname -F /etc/hostname
更改系统设置
有一些 Ubuntu 以非常规方式配置的项目,我们需要撤消这些配置,以使我们的软件能够正常运行。
我们需要做的第一件事是禁用 AppArmor,因为它与 ISPConfig 不兼容。首先,我们应该停止服务:
sudo service apparmor stop
我们还可以通过输入以下命令来告诉它卸载其配置文件:
sudo service apparmor teardown
完成后,我们需要告诉我们的服务器不要在启动时启动此服务:
sudo update-rc.d -f apparmor remove
我们实际上可以通过输入以下命令来删除所有相关文件和软件包:
sudo apt-get remove apparmor
我们需要修改的另一个配置是默认系统 shell。Ubuntu 使用 dash shell 用于系统进程,但 ISPConfig 利用了专门由 bash 提供的附加功能。我们可以通过输入以下命令将 bash 设置为默认系统 shell:
sudo dpkg-reconfigure dash
在提示时,选择 “No” 以使实用程序重新配置系统 shell 指针以使用 bash 而不是 dash。
安装附加组件
现在我们的基本系统已准备就绪,我们可以开始安装 ISPConfig 可以管理的一些服务和支持 ISPConfig 的一些软件。
我们将安装基本的 LAMP(Linux、Apache、MySQL、PHP)组件、邮件软件、用于邮件的防病毒扫描软件以及其他软件包。
我们将在一个大的 apt 命令中执行所有这些操作,因此这将一次安装许多软件包:
sudo apt-get install apache2 apache2-utils libapache2-mod-suphp libapache2-mod-fastcgi libapache2-mod-python libapache2-mod-fcgid apache2-suexec libapache2-mod-php5 php5 php5-fpm php5-gd php5-mysql php5-curl php5-intl php5-memcache php5-memcached php5-ming php5-ps php5-xcache php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-imap php5-cgi php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libruby memcached phpmyadmin postfix postfix-mysql postfix-doc mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve mailman amavisd-new spamassassin clamav clamav-daemon zoo unzip zip arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl libnet-dns-perl bind9 dnsutils vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl squirrelmail pure-ftpd-common pure-ftpd-mysql snmp
在安装过程中,您将被问及一些问题。您将被要求为 mailman 选择一种语言。选择 en (English) 以继续。您还将被要求选择并确认 MySQL 管理员用户的密码。
您将收到的另一个提示是是否为 dovecot 创建自签名的 SSL 证书。您应该选择 “Yes”。您将需要输入 SSL 证书的 “commonName”。这只是您的完全合格的域名:
server.test.com
对于 postfix,您将被问及需要哪种邮件配置。选择 Internet Site。然后您将被要求选择系统邮件名称。您也应该将其设置为您的域名:
server.test.com
对于 phpMyAdmin,该软件具有根据您的 Web 服务器自动配置自身的功能。选择 “apache2” 并按下 “SPACE” 以选择该选项。按下 “TAB” 然后按下 “ENTER” 以进行选择。
稍后,您将被问及是否希望使用 dbconfig-common 配置 phpMyAdmin 的数据库。在这里选择 “Yes”。您需要输入您上面选择的 MySQL 管理员帐户的密码。然后您可以选择并确认 phpMyAdmin 用户的密码。
此时,所有组件应该都已安装完毕。
配置后端组件
现在,一切都已经安装好了,我们需要开始配置我们的服务和工具。
邮件配置
让我们从在 postfix 中启用一些功能开始。使用编辑器打开默认配置文件:
sudo nano /etc/postfix/master.cf
我们只需要取消注释该文件中的一些行。具体来说,处理提交服务的行以及其下的前三个选项行,以及 smtps 服务和其下的前三个选项行:
submission inet n - - - - smtpd-o syslog_name=postfix/submission-o smtpd_tls_security_level=encrypt-o smtpd_sasl_auth_enable=yes
. . .
smtps inet n - - - - smtpd-o syslog_name=postfix/smtps-o smtpd_tls_wrappermode=yes-o smtpd_sasl_auth_enable=yes
现在,我们需要在这两个服务下添加一个额外的选项。对于每个服务,它将是相同的:
submission inet n - - - - smtpd-o syslog_name=postfix/submission-o smtpd_tls_security_level=encrypt-o smtpd_sasl_auth_enable=yes<span class="highlight">-o smtpd_client_restrictions=permit_sasl_authenticated,reject</span>
. . .
smtps inet n - - - - smtpd-o syslog_name=postfix/smtps-o smtpd_tls_wrappermode=yes-o smtpd_sasl_auth_enable=yes<span class="highlight">-o smtpd_client_restrictions=permit_sasl_authenticated,reject</span>
完成后保存并关闭文件。
另一个与邮件相关的服务是 mailman,它可以处理邮件列表。
我们可以开始告诉它创建一个新列表:
sudo newlist mailman
您将被要求提供与列表关联的电子邮件。您还将被要求选择密码。
脚本将输出一长串的别名。您应该将它们添加到您的 /etc/aliases 文件的底部:
sudo nano /etc/aliases
它应该看起来像这样:
postmaster: root
<span class="highlight">mailman: "|/var/lib/mailman/mail/mailman post mailman"</span>
<span class="highlight">mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"</span>
<span class="highlight">mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"</span>
<span class="highlight">mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"</span>
<span class="highlight">mailman-join: "|/var/lib/mailman/mail/mailman join mailman"</span>
<span class="highlight">mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"</span>
<span class="highlight">mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"</span>
<span class="highlight">mailman-request: "|/var/lib/mailman/mail/mailman request mailman"</span>
<span class="highlight">mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"</span>
<span class="highlight">mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"</span>
完成后保存并关闭文件。您需要让 postfix 知道您添加的别名。您可以通过输入以下命令来实现:
sudo newaliases
我们可以通过输入以下命令来启动 mailman 服务:
sudo service mailman start
重新启动 postfix 服务以启用邮件更改:
sudo service postfix restart
当我们处理服务时,我们还应该停止并禁用 spamassassin。ISPConfig 根据需要调用它,因此它不需要一直运行:
sudo service spamassassin stop
然后告诉服务器不要在启动时再次启动它:
sudo update-rc.d -f spamassassin remove
LAMP 配置
我们需要在 PHP 中启用 mcrypt 功能:
sudo php5enmod mcrypt
我们还需要启用我们安装的一些 Apache 模块。
sudo a2enmod rewrite ssl actions include cgi dav_fs suexec dav auth_digest fastcgi alias
我们还需要对一些 Apache 配置文件进行一些调整。
我们启用的模块目前将拦截所有我们的 PHP 文件。我们希望阻止它这样做。打开 suphp 配置文件:
sudo nano /etc/apache2/mods-available/suphp.conf
<IfModule mod_suphp.c><FilesMatch "\.ph(p3?|tml)$">SetHandler application/x-httpd-suphp</FilesMatch>suPHP_AddHandler application/x-httpd-suphp
. . .
我们将用一个单一命令替换顶部块。完成后,它应该看起来像这样:
<IfModule mod_suphp.c><span class="highlight">AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml</span>suPHP_AddHandler application/x-httpd-suphp
完成后保存并关闭文件。
我们将不得不手动创建 mailman Apache 文件的符号链接。您可以通过输入以下命令来实现:
sudo ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf
然后通过输入以下命令来启用它:
sudo a2enconf mailman
如果您计划创建托管 Ruby 文件的站点,您应该在 mime.types 文件中注释掉对 .rb 文件的处理。ISPConfig 将自行处理这个问题:
sudo nano /etc/mime.types
application/x-rss+xml rss
<span class="highlight">#</span>application/x-ruby rb
application/x-rx
完成后保存并关闭文件。
现在,我们可以重新启动 Apache 以实施我们的更改:
sudo service apache2 restart
杂项配置
我们还需要编辑系统的一些其他部分。
由于 ISPConfig 经常用于细分服务器空间以进行转售,为客户提供 FTP 访问通常是一个要求。我们已经安装了必要的软件,但我们需要做一些调整。
首先编辑 FTP 服务器的配置:
sudo nano /etc/default/pure-ftpd-common
我们需要确保我们的 FTP 用户被限制在 chroot 环境中,以免干扰系统的其他部分。我们可以通过将 VIRTUALCHROOT 设置为 true 来实现这一点:
VIRTUALCHROOT=<span class="highlight">true</span>
由于 FTP 本身是不安全的,我们至少应该用 TLS 加密来保护它。我们可以通过创建一个简单包含 1 字符的标志文件来设置这一点:
sudo nano /etc/pure-ftpd/conf/TLS
1
现在,我们需要创建一个自签名证书供进程使用。我们可以通过调用以下命令来实现:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
该证书将在一年内有效。您将需要回答一些提示。请填写您的信息。Common Name 或许是最重要的部分。
之后,我们需要通过输入以下命令来锁定密钥文件:
sudo chmod 600 /etc/ssl/private/pure-ftpd.pem
当所有这些都完成后,我们可以重新启动服务:
sudo service pure-ftpd-mysql restart
这将允许我们的 FTP 守护程序使用加密。
我们在这个系统上设置 FTP 的一个原因是因为我们安装了一个名为 awstats 的监控守护程序,它配置为期望存在这项服务。
ISPConfig 将根据需要调用 awstats,因此它不需要依赖通常用于轮询服务器的 cron 作业。我们可以通过输入以下命令来删除它:
sudo rm /etc/cron.d/awstats
安装 ISPConfig
我们终于准备好安装实际的 ISPConfig 软件了。
我们可以通过将最新稳定版本下载到我们的服务器上来实现。截至目前,具有直接链接的最新稳定版本是版本 3。我们安装完所有内容后将更新安装。
现在,您应该切换到您的主目录并使用 wget 下载项目:
cd ~
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
下载完成后,解压目录结构并进入提取的文件夹结构的 install 子目录:
tar xzvf ISPConfig*
cd ispconfig3_install/install/
现在,我们准备安装软件。通过输入以下命令来执行:
sudo php -q install.php
您将经历一个非常冗长的安装过程。
幸运的是,您实际上只需要输入您的 MySQL root 密码!对于其他每个条目,只需按下 “ENTER” 使用默认值并跳过。
安装完成后,通过输入以下命令来更新到最新版本:
sudo php -q update.php
同样,只需按下 “ENTER” 使用每个命令的默认值。
完成后,您可以通过在您的 Web 浏览器中访问您的域名后跟 :8080 来访问您的 ISPConfig 服务:
https://<span class="highlight">server_domain_name</span>:8080
由于我们使用自签名证书,您将收到 SSL 警告:
!ISPConfig SSL 警告
点击 “proceed” 或 “continue” 来接受证书。
您将被带到登录界面。
!ISPConfig 登录界面
默认用户名和密码都是 admin:
用户名:admin
密码:admin
输入这些值,您将进入 ISPConfig3 界面:
!ISPConfig 主界面
一旦到达这里,您应该通过单击 “System” 按钮,然后在左侧导航菜单的 “User Management” 类别下单击 “CP Users” 链接来更改 admin 用户的密码。
在主窗口中点击 admin 用户帐户。您将在此页面上有更改管理员用户密码的选项。
结论
您现在应该已经安装和配置了 ISPConfig 面板。您应该能够从这个界面内管理域、邮件和帐户。
相关文章:
在 Ubuntu 14.04 服务器上安装 ISPConfig3 的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 虽然命令行是一个强大的工具,可以让您在许多情况下快速轻松地工作,但在某些情况下,可视化界面…...
ELK学习笔记
ElasticStack分布式日志系统概述 Elasticsearch: 一个分布式搜索引擎,能够快速存储、搜索和分析大量数据。核心概念包括索引(Index)、文档(Document)和分片(Shard)。使用 RESTful API 进行数据操…...
Python+Selenium+Pytest+POM自动化测试框架封装详解
1、测试框架简介 1)测试框架的优点 代码复用率高,如果不使用框架的话,代码会显得很冗余。可以组装日志、报告、邮件等一些高级功能。提高元素等数据的可维护性,元素发生变化时,只需要更新一下配置文件。使用更灵活的…...
Hidden Marlov Model(HMM)
一、Model 1、将声学特征设为X,经过语音识别得到的tokens设为Y,目标是找到通过X得到Y的最大概率,可以通过概率公式改变为 分为两个概率 2、将tokens序列Y转化为states序列S,声学特征分得更细 3、从states到声学特征的过程 二、HM…...
mamba的安装及下载速度慢问题解决
同事反馈mamba的安装时网络慢 mamba是conda的加速工具,相比于conda 对包和环境的管理,mamba可以实现并行运算。相比于 conda,mamba 是用C重写了 conda 的部分功能,运行效率显著提高,可以进行并行的下载,使…...
【Linux入门】Linux环境搭建
目录 前言 一、发行版本 二、搭建Linux环境 1.Linux环境搭建方式 2.虚拟机安装Ubuntu 22.02.4 1)安装VMWare 2)下载镜像源 3)添加虚拟机 4)换源 5)安装VM Tools 6)添加快照 总结 前言 Linux是一款自由和开放…...
CPU缓存一致性机制详解
CPU缓存一致性机制详解 在多核处理器中,缓存一致性是保证系统正常运行的重要环节。本文详细介绍了缓存一致性协议、写入策略、总线嗅探、目录协议等相关概念,并通过示例代码解释了这些机制是如何在实际应用中工作的。通过学习本文,读者可以深…...
Android 12系统源码_屏幕设备(一)DisplayManagerService的启动
前言 DisplayManagerService是Android Framework中管理显示屏幕相关的模块,各种Display的连接、配置等,都是通过DMS和来管理控制。 在DMS模块中,对显示屏幕的描述分为物理显示屏(physical display)和逻辑显示屏(logical display),…...
《AI视频类工具之十——D-ID》
一.简介 官网:D-ID | The #1 Choice for AI Generated Video Creation Platform D-ID是一个人工智能生成的视频创建平台,可以轻松快速地从文本输入中创建高质量、高性价比和引人入胜的视频,背后的Al技术是由Stable Difusion和GPT.3提供支持,可以在没有任何技术知识的情况…...
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
文章目录 局域网 LAN广域网 WAN网络中的重要概念IP 地址端口号 认识协议协议分层是什么OSI 七层网络模型TCP/IP 五层网络模型(或四层)物理层传输层网络层数据链表层应用层网络设备所在分层 封装和分用[站在发送方视角](封装)[站在…...
我司搜索中台的三次演变
本人从入职就开始负责我司的搜索中台了,总共是经历了三个大版本的迭代。 分别是: 基于阿里云智能开放搜索OpenSearch实现的第一代自研,开源canal(数据同步) 底层阿里云elasticsearch 对索引封装 实现的第二代自研&a…...
html+css+js网页设计 电商模版4个页面
htmlcssjs网页设计 电商模版4个页面 带js 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&…...
区块链技术在Facebook中的潜力:未来趋势与挑战
数据安全的新高度 区块链技术以其去中心化和不可篡改的特性,正在成为提升数据安全和隐私保护的重要工具。Facebook作为全球最大的社交媒体平台之一,正积极探索如何将区块链技术应用于其平台,以增强用户数据的安全性和隐私保护。Facebook在应…...
dockerfile自定义镜像
目录 概念 基于dockerfile创建 dockerfile的命令 构建容器 FROM ENTRYPOINT和CMD RUN COPY和ADD 工作目录和环境变量以及容器卷(挂载卷) EXPOSE 实战 概念 dockerfile就是自定义镜像,通过dockerfile创建的都是镜像,而…...
【工作状态】如何保持专注?
好的睡眠计划主题化 1、保持足够的睡眠,才能头脑清晰和有精力,工作不是纯拼体力,要用脑力的。 2、脑力主要工作放在午餐前,在脑力充足的时候使用脑力,下午五点后可以安排脑力活动较低的工作,比如听课读书。…...
欧科云链研究院对话:风浪越大鱼越贵—链上数据洞悉加密市场规律
作者 Hedy 出品 OKG Research “我们从来就不是理性人。但可以用最简单的工具——链上数据做‘最猛’的分析。” 在经历了超级宏观周之后,金融市场产生了巨大的震荡,加密市场的表现也越来越受到宏观经济因素的影响。欧科云链研究院OKG Research 集结多…...
SQLite库笔记:日期和时间函数
1. 函数概述 SQLite支持7个日期和时间函数,如下: 1 date(time-value, modifier, modifier, ...) 返回YYYY-MM-DD格式的日期 2 time(time-value, modifier, modifier, ...) 返回HH:MM:SS格式的时间 3 datetime(time-value, modifier, modifier, ...…...
Linux开发板运行报错/system/bin/sh: can‘t create /dev/leds: Permission denied
Linux开发板运行报错/system/bin/sh: cant create /dev/leds: Permission denied 1.问题解决 1.问题解决 /system/bin/sh: can’t create /dev/leds: Permission denied 在linux开发板下运行驱动报错没有权限,需要运行 su,同时也会停止打印 在运行: ch…...
月薪5W的项目经理是如何面试的?这份面试攻略请收好!
面试是项目经理求职必须经历的一关,但很多经验不够丰富的项目经理不知道面试会问些什么问题,也不知道要怎么回答,无疑会直接影响面试企业的判断,使项目经理求职受阳.所以,项目经理想要顺利求职,还是有必要掌…...
接口隔离原则
接口隔离原则 接口隔离原则就是客户端不应该依赖它不需要的接口,或者说类间的依赖关系应该建立在最小的接口上。 我们以搜索美女为例,设计了如下的类图: 源代码如下。美女及其实现类: 搜索程序及其子类源代码如下: 最…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
