在阿里云国际上构建共享虚拟主机业务

news2024/11/26 15:22:19

我们需要3个ECS实例,1个RDS MySQL实例和2个域名。我将使用该域作为我的主域和辅助域。sarathy.infosarathy.site

以下架构图左侧所示的两个 ECS 实例将托管我们的主网站。一个ECS实例用于部署WHMCS,另一个实例用于部署WordPress。WordPress 和 WHMCS 都需要 MySQL。因此,我们还将部署一个云数据库RDS版实例。

下图右侧所示的 ECS 实例将用于托管我们客户的站点。我们将使用一种非常流行的软件来自动化一切,称为WHM(虚拟主机管理器)。

注意,阿里云国际通过corebyt注册并充值,首充送50%,具体查看:https://corebyte.com/activity

1


架构图

先决条件

  • 两个在 Ubuntu 18.04 上运行的 ECS 实例和一个在 CentOS 7 上运行的 ECS 实例,至少具有 20 GB 磁盘空间和 1 GB RAM
  • 运行最新版MySQL的RDS实例,具有两个数据库和两个用户账号
  • 两个域名

步骤 1:配置 DNS

主域的 DNS 配置

记录类型主机价值
一个@ECS实例的IP(运行WordPress)
一个万维网ECS实例的IP(运行WordPress)
一个门户ECS 实例的 IP(运行 WHMCS)

辅助域的 DNS 配置

记录类型主机价值
NS系列NS1型ECS 实例的 IP(运行 WHM)
NS系列NS2型ECS 实例的 IP(运行 WHM)

第 2 步:WHMCS 服务器设置

首先,您需要从他们的官方网站下载 WHMCS

2

接下来,我们必须通过SCP(安全复制)协议将下载的文件复制到我们的服务器

scp -i path-to-ssh-key.pem path-to-whmccs.zip root@instance-ip:/root 

现在,WHMCS 安装文件将被复制到我们服务器的 root 用户的主目录 (/root) 中。

让我们登录我们的 ECS 实例来安装 WHMCS

ssh -i path-to-ssh-key.pem root@ecs-instance-ip

您将登录ECS实例,如下所示

3

验证我们是否已成功将 WHMCS 安装文件传输到我们的 ECS 实例中。

ls /root

如果您获得以下输出,您就可以开始了!

4

更新系统

apt update

升级系统

apt full-upgrade -y

删除不必要的软件包

apt auoremove -y

安装所需的组件

apt install unzip sendmail software-properties-common wget -y

安装 Apache Web 服务器

apt install apache2 -y

通过在 Web 浏览器中访问 ECS 实例的 IP 地址来验证 Apache 服务器的安装

5

在启动期间启动 Apache

systemctl enable apache2

安装 PHP

apt install php-fpm -y

安装 WHMCS 所需的 PHP 扩展

apt install php-curl php-gd php-json php-mbstring php-imap php-iconv php-dev php-mysql -y

安装 Ioncube 加载器

cd /root
Wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar -xf ioncube*
cp ioncube/ioncube_loader_lin_7.2.so /use/lib/php/20170718/

创建自定义 PHP 配置文件

nano /etc/php/7.2/apache2/conf.d/10-custom.ini

粘贴以下行

zend_extension="/usr/lib/php/20170718/ioncube_loader_lin_7.2.so"
max_execution_time = 60
max_input_time =60
memory_limit = 512M
max_input_vars = 6000
upload_max_filesize = 512M
post_max_size = 512M

重新启动 PHP 和 Apache Web 服务器

systemctl restart php7.2-fpm
systemctl restart apache2

删除默认网页

rm -rf /var/www/htm/index.html

修改 Apache 的配置文件

vim /etc/apache2/sites-available/000-default.conf

添加以下行

ServerName your-primary-domain.tld

重新启动 Apache Web 服务器

systemctl restart apache2

解压缩WHMCS安装包

cd /root
unzip whmcs_v771_full.zip

将安装文件移动到 Web 服务器的根目录

mv whmcs/* /var/www/html

创建新的 WHMCS 配置文件

cd /var/www/html
mv configuration.php.new configuration.php

更改 Web 服务器根目录的所有权

chown -R www-data:www-data /var/www/html

步骤 3:为 WHMCS 部署 HTTPS

HTTPS协议在我们的服务器和客户端之间提供安全的加密连接。我们将从 Let's Encrypt 证书颁发机构安装一个 SSL 证书。我们将使用一个名为 certbot 的程序来自动化颁发 SSL 证书的过程

添加 certbot PPA

apt-add-repository ppa:certbot/certbot

更新程序包

apt update

安装适用于 Apache Web 服务器的 certbot

apt install python-certbot-apache -y

颁发SSL证书

certbot --apache -d portal.your-primary-domaindomain.tld

输入您的电子邮件,然后输入 A 同意条款和条件。

颁发证书后,certbot 将显示两个选项。选择 Redirect all requests to secure HTTPS access (重定向所有请求以保护 HTTPS 访问)

6

选择上述选项后,HTTPS 将成功部署。

Let's Encrypt CA 提供的证书有效期仅为 90 天。

因此,您必须每 3 个月登录一次服务器并输入以下命令来续订证书

certbot renew

第 4 步:安装 WHMCS

到目前为止,我们已经完成了安装 WHMCS 的所有必要步骤。现在是时候开始安装过程了

从网络浏览器转到 https://portal.your-rimarydomain.tld/install/install.php

阅读条款和条件后,单击“同意

7

WHMCS将检查所有基本要求。如果满足要求,则可以继续安装。否则,WHMCS 会让您知道缺少的要求

单击“开始安装”

8

您将被要求输入您的许可证密钥和数据库详细信息。您可以从WHMCS仪表板获取许可证密钥。有关数据库详细信息,请输入您的 RDS 实例详细信息。输入详细信息后,单击“继续”

9

安装几乎完成。我们只需要添加一个 cronjob 并删除安装文件夹

登录ECS实例并执行以下命令

crontab -e

添加以下行

*/5 * * * * /usr/bin/php -q /var/www/html/crons/cron.php

删除安装目录

rm -rf /var/www/html/install

转到 https://portal.your-primary-domain.tld/admin 登录 WHMCS

第 5 步:安装 WordPress

通过SSH登录Ubuntu 18.04操作系统的ECS实例

ssh -i path-to-public-key.pem root@ecs-instance-ip

安装 EasyEngine

wget -qO ee rt.cx/ee4 && bash ee

安装完成后,你将获得类似于下图的安装摘要

10

让我们部署我们的 WordPress 网站

ee site create YOUR-PRIMARY-DOMAIN.TLD \
--cache \
--type=wp \
--admin-user=YOUR-WORDPRESS-USERNAME \
--admin-pass=YOUR-WORDPRESS_PASSWORD \
--admin-email=YOUR WORDPRESS EMAIL \
--dbname=YOUR DB NAME \
--dbuser=YOUR DB USERNAME \
--dbhost=YOUR RDS INSTANCE HOSTNAME \
--ssl=le

部署站点后,你将获得类似于下图的已部署网站的摘要

11

现在转到 https://your-primary-domain.tld/wp-admin

第 6 步:安装 WHM

通过SSH方式登录CentOS 7操作系统的弹性云服务器

ssh -i path-to-public-key.pem root@ecs-instance-ip

更新系统

yum update

设置完全限定的 Damion 名称 (FQDN)

echo "server.your-primary-domain.tld" > /etc/hostname
hostname -F /etc/hostname

禁用防火墙

iptables.save > ~/firewall.rules
systemctl stop firewalld.service
systemctl disable firewalld.service

禁用网络管理器

systemctl stop NetworkManager.service
systemctl disable NetworkManager.service

下载并安装 WHM

cd /home
curl -o latest -L https://securedownloads.cpanel.net/latest
sh latest

安装最多需要 45 分钟才能完成。安装结束后,使用以下命令获取 WHM 登录 URL。

Whmlogin

12

转到显示的登录 URL 并完成安装

第 6 步:集成 WordPress 和 WHMCS

登录WordPress

转到插件>>添加新的插件

13

搜索 WHMCS Bridge

找到后单击立即安装

14

单击“激活”按钮以激活插件

转到 WHMCS Bridge >>设置

输入您的 WHMCS URL

15

单击“检查我的安装

如果集成成功,将显示一条成功消息,如下所示

16

就是这样!

第 7 步:集成 WHM 和 WHMCS

登录WHMCS

转到“设置”>>产品/服务>>服务器

单击“添加新服务器

17

输入服务器名称、IP 地址、网络主机名等

然后,登录 WHM

转到开发>>管理 API 令牌

单击 Generate Token

18

检查以下权限并单击保存

19

复制生成的 API 令牌

20

返回 WHMCS。填写以下详细信息

  • 服务器类型:CPanel
  • 用户名:root
  • 密码:您的WHM密码
  • API 令牌:粘贴从 WHM 复制的令牌

单击保存更改

现在我们已经成功地集成了WHMCS和WHM

第 8 步:将 PayPal 与 WHMCS 集成

我们将使用 PayPal 接收客户的付款。

转到 PayPal.Com 并注册企业帐户。如果您已经拥有PayPal个人帐户,则可以选择将其升级到企业帐户,如下所示

创建企业帐户后,转到网站上>>工具>>企业设置>>付款设置

单击“通过 PayPal 处理所有付款(包括信用卡和借记卡)”下的“继续”按钮

21

单击“获取您的 API 凭据

22

选择“请求 API 签名”,然后单击“同意并提交”

23

复制 API 用户名、API 密码、API 签名

登录WHMCS

转到 Payment Gateways >> PayPal Express Checkout >>付款>>付款设置

粘贴复制的 API 用户名、API 密码和 API 签名。

然后单击“保存更改”

24

我们现在已经成功地将PayPal与WHMCS集成在一起!

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

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

相关文章

pytorch-mask-rcnn 官方

This is a Pytorch implementation 实现 of Mask R-CNN that is in large parts based on Matterports Mask_RCNN. Matterports repository is an implementation on Keras and TensorFlow. The following parts of the README are excerpts 摘录 from the Matterport README. …

Amazon CodeWhisperer 提供新的人工智能驱动型代码修复、IaC 支持以及与 Visual Studio 的集成...

Amazon CodeWhisperer 的人工智能(AI)驱动型代码修复和基础设施即代码(IaC)支持已正式推出。Amazon CodeWhisperer 是一款用于 IDE 和命令行的人工智能驱动型生产力工具,现已在 Visual Studio 中推出,提供预…

C# WPF上位机开发(简易图像处理软件)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 图像处理是工业生产重要的环节。不管是定位、测量、检测还是识别,图像处理在工业生产中扮演重要的角色。而c#由于自身快速开发的特点&a…

12.8 作业

1, 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin"&#…

持续集成和持续交付

引言 CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一种面向开发和运维团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题(亦称:“集成地狱”&#…

【后端学前端学习记录】第一天 css动画 内凹导航栏

1、学习信息 css动画 内凹导航栏_哔哩哔哩_bilibili 随便找的的视频&#xff0c;主要原因是在公司不方便有声音 2、源码 最终源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title…

Tabbar切换效果(vant)

route 是否开启路由模式 <template><div class"layout-page"><!-- 二级路由出口 --><router-view></router-view><van-tabbar route><van-tabbar-item to"/home">首页<!-- 图标切换为active是高亮 -->&…

Zabbix结合Grafana打造高逼格监控系统

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

8、操作符重载

友元 可以通过friend关键字&#xff0c;把一个全局函数、另一个类的成员函数或者另一个类整体&#xff0c;声明为授权类的友元友元拥有访问授权类任何非公有成员的特权友元声明可以出现在授权类的公有、私有或者保护等任何区域且不受访问控制限定符的约束友元不是成员&#xf…

Nginx按指定格式记录访问日志

今天突然想起来一个日志的一个东西,因为拉项目无意中看到了日志文件的一些东西,现在不经常做后端了,加上其他的一些原因吧.有时候有些问题也没想太多,马马虎虎就过了,后来想想还是要记录一下这方面的处理过程吧: 一般我们作为开发人员关注的日志只是在应用程序层面的,我们称它…

Hanlp自然语言处理如何再Spring Boot中使用

一、HanLP HanLP (Hankcs NLP) 是一个自然语言处理工具包&#xff0c;具有功能强大、性能高效、易于使用的特点。HanLP 主要支持中文文本处理&#xff0c;包括分词、词性标注、命名实体识别、依存句法分析、关键词提取、文本分类、情感分析等多种功能。 HanLP 可以在 Java、Py…

delphi/python 实现小红书xhs用户作品列表和图片/视频无水印解析

技术学习&#xff0c;请勿用与非法用途&#xff01;&#xff01;&#xff01; 成品图用户作品列表接口 /api/sns/web/v1/user_posted?num30&cursor&user_id642bf0850000000011022c4e&image_scenes http Get方式&#xff0c;请求头需要带上x-s x-t签名验证笔记明细…

二叉树的层序遍历[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你二叉树的根节点root&#xff0c;返回其节点值的 层序遍历 。&#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],…

【算法每日一练]-图论(保姆级教程篇12 tarjan篇)#POJ3352道路建设 #POJ2553图的底部 #POJ1236校园网络 #缩点

目录&#xff1a; 今天知识点 加边使得无向图图变成双连通图 找出度为0的强连通分量 加边使得有向图变成强连通图 将有向图转成DAG图进行dp POJ3352&#xff1a;道路建设 思路&#xff1a; POJ2553&#xff1a;图的底部 思路&#xff1a; POJ1236校园网络 思路&#x…

[ndss 2023]确保联邦敏感主题分类免受中毒攻击

Securing Federated Sensitive Topic Classification against Poisoning Attacks 摘要 我们提出了一种基于联邦学习 (FL) 的解决方案&#xff0c;用于构建能够检测包含敏感内容的 URL 的分布式分类器&#xff0c;即与健康、政治信仰、性取向等类别相关的内容。尽管这样的分类器…

docker:搭建私有仓库

文章目录 1、拉取镜像2、运行容器3、测试成功4、修改daemon.json5、重启docker 服务6、上传镜像到私有仓库6.1 标记某个镜像为私有仓库镜像6.2 上传镜像到私有仓库 其他注意项 1、拉取镜像 docker pull registry2、运行容器 docker run -di --nameregistry -p 5000:5000 regi…

3DCAT+上汽奥迪:打造新零售汽车配置器实时云渲染解决方案

在 5G、云计算等技术飞速发展的加持下&#xff0c;云渲染技术迎来了突飞猛进的发展。在这样的背景下&#xff0c;3DCAT应运而生&#xff0c;成为了业内知名的实时云渲染服务商之一。 交互式3D实时云看车作为云渲染技术的一种使用场景&#xff0c;也逐步成为一种新的看车方式&a…

HttpComponents: 领域对象的设计

1. HTTP协议 1.1 HTTP请求 HTTP请求由请求头、请求体两部分组成&#xff0c;请求头又分为请求行(request line)和普通的请求头组成。通过浏览器的开发者工具&#xff0c;我们能查看请求和响应的详情。 下面是一个HTTP请求发送的完整内容。 POST https://track.abc.com/v4/tr…

金融银行业更适合申请哪种SSL证书?

在当今数字化时代&#xff0c;金融行业的重要性日益增加。越来越多的金融交易和敏感信息在线进行&#xff0c;金融银行机构必须采取必要的措施来保护客户数据的安全。SSL证书作为一种重要的安全技术工具&#xff0c;可以帮助金融银行机构加密数据传输&#xff0c;验证网站身份&…

html中一个div中平均一行分配四个盒子,可展开与收起所有的盒子

html中一个div中平均一行分配四个盒子&#xff0c;可展开与收起所有的盒子 1.截图显示部分 2.代码展示部分 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"wid…