yagamil 发表于 2025-1-13 16:45:58

使用宝塔(aapanel)部署PPanel – 全网首发

### 原文地址

(https://forum.naixi.net/goto.php?url=https%3A%2F%2Fpmxu.wiki%2F261%2F)
新鲜出炉的1Panel部署教程地址(我就不搬过来了):(https://forum.naixi.net/goto.php?url=https%3A%2F%2Fpmxu.wiki%2F315%2F)

### 写在前面

- 何为PPanel?
官方原话:PPanel 是一个纯粹、专业且完美的开源代理面板工具,旨在成为您学习和实践的理想选择。

### 准备工作

- 云服务器(至少一台带公网IP)
- 域名

教程中使用的是腾讯云的轻量款新加坡 2C4G,自行准备个机器就行,演示打算all in one,所以就只用一个机器了,正常我觉得应该用多个机器分离式部署更好。另外我计划使用MySql8.x 所以内存最好4G以上吧

#### 域名解析

不管从哪里搞的域名,先将其与你的云服务器IP进行绑定,我使用的是CloudFlare进行域名解析。
!(https://img.pmxu.xyz/pmx/2025/01/09/677f938848e1a.webp)
需要解析三个子域名,前缀随意,我这个只是个示例,根据你的爱好来。
(https://forum.naixi.net/goto.php?url=http%3A%2F%2Fapi.dushilaoren.xyz) - 服务端
(https://forum.naixi.net/goto.php?url=http%3A%2F%2Fuser.dushilaoren.xyz) - 用户端
(https://forum.naixi.net/goto.php?url=http%3A%2F%2Fadmin.dushilaoren.xyz) - 管理端

### 环境准备

以下是本次部署的环境:

- aapanel
- Ubuntu 2404
- MySql 8.0+
- redis 7.0+
本教程的环境基于宝塔面板进行部署,毕竟宝塔用着挺简单的,不过这里使用的是海外版(反正大多数人这么叫)-aapanel。

#### 安装aapanel

这个安装很简单,直接使用官方的一键指令就OK,不会有什么问题,有问题就再执行一遍。

```shell
URL=https://www.aapanel.com/script/install_7.0_en.sh && if [ -f /usr/bin/curl ];then curl -ksSO "$URL" ;else wget --no-check-certificate -O install_7.0_en.sh "$URL";fi;bash install_7.0_en.sh aapanel aapanel
```

!(https://img.pmxu.xyz/pmx/2025/01/09/677f8feef0deb.webp)
这个提示输入‘Y’确认就可以开始安装了,默默等待几分钟安装完成就行,理论上网速越快安装越快。
!(https://img.pmxu.xyz/pmx/2025/01/09/677f90a7161f1.webp)
出现上面那一堆就OK了,用上面的信息登陆aapanel管理台,然后进入下一步安装其他环境

#### 使用aapanel安装剩下的环境

下面都是UI操作,基本上按照来就ok。

##### 安装Nginx 以及 MySql

首次登陆aapanel会有一个弹窗让你选择初始环境
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9192c6b98.webp)
只需要勾选图中这两个就行的,注意版本。
如果想要后期通过UI管理数据库可以勾选上另外两个工具
!(https://img.pmxu.xyz/pmx/2025/01/09/677f91e89ffd7.webp)
PHP版本7.4+就OK。
!(https://img.pmxu.xyz/pmx/2025/01/09/677f921ac8acb.webp)
接下来就只需要你的patience等待即可,预计十分钟左右。

##### 安装Redis

Redis需要自行去软件商店安装。首先来到软件商店,然后搜索Redis,最后点击安装
!(https://img.pmxu.xyz/pmx/2025/01/09/677f948a4877c.webp)
默认只有redis7,刚好也是我们需要的
!(https://img.pmxu.xyz/pmx/2025/01/09/677f94cdaf8a5.webp)
静静等待它后台安装完成

##### 安装Supervisor

这个主要用来进程守护,当然也可以用systemd。但是能够UI操作咱们就尽量UI操作
!(https://img.pmxu.xyz/pmx/2025/01/09/677f97b8460a8.webp)
和安装redis的流程一样,进行搜索安装即可

##### 安装Node.js

前端需要用nodejs进行托管,首先来到aapanel的website页面。
!(https://img.pmxu.xyz/pmx/2025/01/09/677fa1a2ae183.webp)
点击安装按钮,它会自动安装node.js管理器。
然后点击nodejs管理器安装nodejs
!(https://img.pmxu.xyz/pmx/2025/01/09/677fa1d972f59.webp)
默认的版本比较老,切换到官方源然后更新一下列表
!(https://img.pmxu.xyz/pmx/2025/01/09/677fa2089a02b.webp)
咱们选择22.13这个版本
!(https://img.pmxu.xyz/pmx/2025/01/09/677fa240616fd.webp)
安装完成之后记得cli也设置一下
!(https://img.pmxu.xyz/pmx/2025/01/09/677fa272d99e1.webp)

##### 创建数据库

这里主要是MySql的,Redis在安装时会自动配置。
!(https://img.pmxu.xyz/pmx/2025/01/09/677f955a5d1eb.webp)
先到数据库页面然后点击左上角的新增,按照图片中进行操作,注意数据集使用utf8mb4.

至此,环境就大功告成。

### 部署服务端

接下来就开始我们的主要工作了,首先是下载服务端的二进制文件。

- 下载文件

下载地址:

```shell
https://github.com/perfect-panel/ppanel/releases/download/v0.1.0/ppanel-server-v0.1.0-linux-amd64.tar.gz
```

将下载好的文件上传到云服务器:
首先创建一个路径`/www/wwwroot/ppanel`
!(https://img.pmxu.xyz/pmx/2025/01/09/677f98d76e2e5.webp)
将文件上传到这个路径下
!(https://img.pmxu.xyz/pmx/2025/01/09/677f990d549e6.webp)
点击上传按钮,将文件拖进来,上传完成后解压该文件
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9955ece0d.webp)
最好解压完之后改一下权限,返回上一层修改权限。
勾选文件夹,然后右键单击,进入权限菜单
!(https://img.pmxu.xyz/pmx/2025/01/09/677f99b02aaf3.webp)
设置后点击OK进行应用
!(https://img.pmxu.xyz/pmx/2025/01/09/677f99c654222.webp)
保持和我的一致就行。

- 启用程序
启动很简单,使用前面安装好的Supervisor进行管理。
首先来到Supervisor
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9a45416f3.webp)
然后添加一个进程
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9a5b88a77.webp)
按照刚刚的文件位置进行填写
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9d7b4d7e5.webp)
Start Command: `/www/wwwroot/ppanel/ppanel-server run`
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9d9dc6194.webp)
这个状态就是成功的
- 设置反向代理

aapanel的website页面,点击反向代理,创建新的代理
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9ed7325b4.webp)
接下来会用到之前解析的域名,[我这里使用api.dushilaoren.xyz](https://forum.naixi.net/goto.php?url=http%3A%2F%2Fxn--api-hb0ez26f2f0atb3bcjd.dushilaoren.xyz)
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9f3e0c8c5.webp)
然后申请ssl证书,先点击修改
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9f7a5d19e.webp)
然后跟着我的选,进行申请
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9f96b0631.webp)
完成之后如图
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9faa08760.webp)
接下来就可以访问这个域名进行基础配置
!(https://img.pmxu.xyz/pmx/2025/01/09/677f9fd1d73b7.webp)
点击右上角的中文按钮切换到中文页面。
输入邮箱密码以及创建的数据库信息。
!(https://img.pmxu.xyz/pmx/2025/01/09/677fa012446f1.webp)
数据库信息在如上图位置,将它们复制到对应的位置
!(https://img.pmxu.xyz/pmx/2025/01/09/677fa04d3dec2.webp)
可以在填写完成之后点击测试,redis保持默认信息就行,然后开始初始化即可
!(https://img.pmxu.xyz/pmx/2025/01/09/677fa07625e3b.webp)
几秒钟就安装完成。
接下来就是前端部署。

### 前端部署

前端分为用户端和管理端,首先部署用户端。

#### 部署管理端

- 下载源码

下载地址:

```shell
https://github.com/perfect-panel/ppanel-web/releases/download/v1.0.0-beta.4/ppanel-admin-web.tar.gz
```

- 上传源码
和服务端一样,创建一个文件夹然后将代码放进去并解压。
!(https://img.pmxu.xyz/pmx/2025/01/09/677fa3d50404e.webp)
完成上面操作之后如上图,然后修改权限。
由于这些步骤前面提到过就不重复演示。
!(https://img.pmxu.xyz/pmx/2025/01/09/677fa41230997.webp)
完成之后如上图
- 配置环境变量

启动项目之前需要先填写你的基础链接信息,首先来到启动脚本同级的路径,例如我现在的就应该是:`/www/wwwroot/ppanel-admin-web/apps/admin`
!(https://img.pmxu.xyz/pmx/2025/01/09/677fc21e0ae3d.webp)
图中的.env文件就是需要修改的文件,模版文件如下:

```yaml
# 应用的默认语言
NEXT_PUBLIC_DEFAULT_LANGUAGE=<您的默认语言 zh-CN | en-US>

# 站点 URL 和 API 端点
NEXT_PUBLIC_SITE_URL=<您的站点 URL>
NEXT_PUBLIC_API_URL=<您的 API URL>

# 支持或咨询的联系邮箱
NEXT_PUBLIC_EMAIL=<您的联系邮箱>

# 社区和社交媒体链接
NEXT_PUBLIC_TELEGRAM_LINK=<您的 Telegram 链接>
NEXT_PUBLIC_TWITTER_LINK=<您的 Twitter 链接>
NEXT_PUBLIC_DISCORD_LINK=<您的 Discord 链接>
NEXT_PUBLIC_INSTAGRAM_LINK=<您的 Instagram 链接>
NEXT_PUBLIC_LINKEDIN_LINK=<您的 LinkedIn 链接>
NEXT_PUBLIC_FACEBOOK_LINK=<您的 Facebook 链接>
NEXT_PUBLIC_GITHUB_LINK=<您的 GitHub 链接>

# 默认用户凭证(用于初始设置或测试目的)
NEXT_PUBLIC_DEFAULT_USER_EMAIL=<您的默认用户邮箱>
NEXT_PUBLIC_DEFAULT_USER_PASSWORD=<您的默认用户密码>
```

除了上面的内容还有一个地方需要修改,应该是aapanel的bug,node在启动命令的时候无法手动指定端口,因此为了避免后面的用户端面板冲突,所以需要手动修改一下启动文件。
这是我的:

```yaml
# 应用的默认语言
NEXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN
#<您的默认语言 zh-CN | en-US>

# 站点 URL 和 API 端点
NEXT_PUBLIC_SITE_URL=https://admin.dushilaoren.xyz
NEXT_PUBLIC_API_URL=https://api.dushilaoren.xyz

# 支持或咨询的联系邮箱
NEXT_PUBLIC_EMAIL=tingfeng@pmxu.xyz

# 社区和社交媒体链接
#NEXT_PUBLIC_TELEGRAM_LINK=<您的 Telegram 链接>
#NEXT_PUBLIC_TWITTER_LINK=<您的 Twitter 链接>
#NEXT_PUBLIC_DISCORD_LINK=<您的 Discord 链接>
#NEXT_PUBLIC_INSTAGRAM_LINK=<您的 Instagram 链接>
#NEXT_PUBLIC_LINKEDIN_LINK=<您的 LinkedIn 链接>
#NEXT_PUBLIC_FACEBOOK_LINK=<您的 Facebook 链接>
#NEXT_PUBLIC_GITHUB_LINK=<您的 GitHub 链接>
#
## 默认用户凭证(用于初始设置或测试目的)
#NEXT_PUBLIC_DEFAULT_USER_EMAIL=<您的默认用户邮箱>
#NEXT_PUBLIC_DEFAULT_USER_PASSWORD=<您的默认用户密码>
```

!(https://img.pmxu.xyz/pmx/2025/01/09/677fcc42d4189.webp)
将.env同级文件server.js的端口从3000改为3001

- 启动管理端

完成上面操作之后再次回到Website页面添加nodejs项目。
!(https://img.pmxu.xyz/pmx/2025/01/09/677fa43c7ee85.webp)
然后填写项目信息
!(https://img.pmxu.xyz/pmx/2025/01/09/677fcc8ee6207.webp)
主要注意项目路径以及自定义命令
例如我的自定义命令:

```shell
/www/wwwroot/ppanel-admin-web/apps/admin/server.js
```

接下来申请SSL证书,同样的点击修改
!(https://img.pmxu.xyz/pmx/2025/01/09/677fccbea2515.webp)
来到SSL管理页面,勾选域名然后申请
!(https://img.pmxu.xyz/pmx/2025/01/09/677fcce24f71f.webp)
然后就可以访问域名对管理端进行设置
!(https://img.pmxu.xyz/pmx/2025/01/09/677fd3cbc54cf.webp)
自行根据自己需求进行修改

#### 部署用户端

- 下载源码

下载地址:

```shell
https://github.com/perfect-panel/ppanel-web/releases/download/v1.0.0-beta.4/ppanel-user-web.tar.gz
```

- 上传源码

和上面的管理端一样的操作,这里忽略
上传并解压,然后修改权限,完成后如图
!(https://img.pmxu.xyz/pmx/2025/01/09/677fcf4ef3c8f.webp)

- 配置环境变量

用户端和管理端一样,都需要设置环境变量,以及端口修改
模版如下:

```yaml
# 应用的默认语言
NEXT_PUBLIC_DEFAULT_LANGUAGE=<您的默认语言 zh-CN | en-US>

# 站点 URL 和 API 端点
NEXT_PUBLIC_SITE_URL=<您的站点 URL>
NEXT_PUBLIC_API_URL=<您的 API URL>

# 支持或咨询的联系邮箱
NEXT_PUBLIC_EMAIL=<您的联系邮箱>

# 社区和社交媒体链接
NEXT_PUBLIC_TELEGRAM_LINK=<您的 Telegram 链接>
NEXT_PUBLIC_TWITTER_LINK=<您的 Twitter 链接>
NEXT_PUBLIC_DISCORD_LINK=<您的 Discord 链接>
NEXT_PUBLIC_INSTAGRAM_LINK=<您的 Instagram 链接>
NEXT_PUBLIC_LINKEDIN_LINK=<您的 LinkedIn 链接>
NEXT_PUBLIC_FACEBOOK_LINK=<您的 Facebook 链接>
NEXT_PUBLIC_GITHUB_LINK=<您的 GitHub 链接>

# 默认用户凭证(用于初始设置或测试目的)
NEXT_PUBLIC_DEFAULT_USER_EMAIL=<您的默认用户邮箱>
NEXT_PUBLIC_DEFAULT_USER_PASSWORD=<您的默认用户密码>
```

这是我的:

```yaml
# Default Language
NEXT_PUBLIC_DEFAULT_LANGUAGE=zh-CN

# Site URL and API URL
NEXT_PUBLIC_SITE_URL=https://user.dushilaoren.xyz
NEXT_PUBLIC_API_URL=https://api.dushilaoren.xyz

# Contact Email
NEXT_PUBLIC_EMAIL=tingfeng@pmxu.xyz
# Community Links
#NEXT_PUBLIC_TELEGRAM_LINK=https://t.me/ppanel
#NEXT_PUBLIC_TWITTER_LINK=https://github.com/perfect-panel/ppanel-web
#NEXT_PUBLIC_DISCORD_LINK=https://github.com/perfect-panel/ppanel-web
#NEXT_PUBLIC_INSTAGRAM_LINK=https://github.com/perfect-panel/ppanel-web
#NEXT_PUBLIC_LINKEDIN_LINK=https://github.com/perfect-panel/ppanel-web
#NEXT_PUBLIC_FACEBOOK_LINK=https://github.com/perfect-panel/ppanel-web
#NEXT_PUBLIC_GITHUB_LINK=https://github.com/perfect-panel/ppanel-web

# Default Login User
#NEXT_PUBLIC_DEFAULT_USER_EMAIL=admin@ppanel.dev
#NEXT_PUBLIC_DEFAULT_USER_PASSWORD=password

# Please put in the .env file, otherwise the i18n command will not work
# OpenAI API key and proxy URL required for i18n command (optional)
#OPENAI_API_KEY=
#OPENAI_PROXY_URL=
```

- 启动用户端程序

和管理端一样的去创建node项目
!(https://img.pmxu.xyz/pmx/2025/01/09/677fd05354535.webp)
然后用相同的方法创建SSL证书
!(https://img.pmxu.xyz/pmx/2025/01/09/677fd089306bf.webp)

访问你的域名即可正常进入用户端,平时只需要给用户提供用户端域名就好,不要泄露api以及管理端域名
!(https://img.pmxu.xyz/pmx/2025/01/09/677fd38f82c46.webp)
不得不说UI确实好看

### 注意事项

在安装过程中遇到一些小的问题。

- aapanel的node项目进程占用问题

在aapanel中部署的node项目,也就是管理端以及用户端无法通过aapanel的UI进行停止或者重启,你停止之后会出现无法启动的问题,主要原因是因为aapanel没有彻底结束这个进程,需要你手动去ssh通过shell命令查询改端口的PID然后杀死进程
`ss -tulnp | grep :3000`
通过上面的指令找到进程号,然后用下面的指令结束进程
`kill -9 331538`
!(https://img.pmxu.xyz/pmx/2025/01/09/677fd4b3d147c.webp)

- .env的环境变量中url地址要加上协议

比如`NEXT_PUBLIC_SITE_URL=<您的站点 URL>`和`NEXT_PUBLIC_API_URL=<您的 API URL>`需要写成`NEXT_PUBLIC_SITE_URL=https://xxxx`不能直接只写域名

------

最后夸赞一波开发者大大真厉害,这个面板真好看呀,希望能赶超其余面板
页: [1]
查看完整版本: 使用宝塔(aapanel)部署PPanel – 全网首发