前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >翼龙游戏面板 Pterodactyl Pane前端架设

翼龙游戏面板 Pterodactyl Pane前端架设

原创
作者头像
德迅云安全--陈琦琦
发布2024-05-30 22:01:45
940
发布2024-05-30 22:01:45

介绍

翼龙面板是一个开源的,用于游戏服务器管理的程序,可以方便地在网页界面中创建 Minecraft,起源引擎游戏和 Teamspeak3 服务器。它使用前后端程序,因此可以创建多后端节点,对游戏服务器和服务器节点进行统一管理。对游戏配置文件的自定义支持允许我们自由地配置不同需求的游戏服务器。

环境要求

系统

  • Ubuntu: 支持 16.04 和 18.04 版本,14.04 版本也可以,但队列任务执行方法不一样注意自行采坑
  • Centos:支持 Centos7,完全不支持 Centos6
  • Debian: 支持 Debian9,在 Debian8 下需要升级包括 docker 在内的一些程序为最新版

环境依赖

  • PHP 7.2 或更高并包含以下拓展
  • cli, openssl,gd,mysql,PDO,mbstring,tokenizer,bcmath,xml 或 dom,curl,zip, 如果使用 nginx 则需要 fpm
  • Mysql 5.7 或者 MariaDB 10.1.3 或更高版本
  • Redis
  • curl,tar,unzip,git,composer

环境搭建

  • 首先是创造前端程序需要的环境,这里以 OneinStack 一键包为例,使用 nginx+PHP+Mysql 为例。你可以选择传统的交互式界面安装程序,也可以使用官方提供的自动安装脚本,如果后者可以参考如下代码和图。

wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --nginx_option 1 --php_option 7 --phpcache_option 1 --php_extensions ioncube,imagick,fileinfo,redis --phpmyadmin --db_option 2 --dbinstallmethod 1 --dbrootpwd oneinstack --redis --reboot

  • 由于需要使用 composer 所以也可以直接用 OneinStack 中的拓展包来安装
  • 安装 prestissimo。这是一个 composer 插件,支持并行下载,如需深度配置请查看 Github

composer global require hirak/prestissimo

  • 修改 PHP 配置文件

vi /usr/local/php/etc/php.ini

找到 disable_function 这一行,删除上文所说的需要的拓展(当然你全删了也可以),随后重启 PHP

service php-fpm restart

  • 创建 vhost,以下假定目录为 /data/wwwroot/gaming,由于翼龙面板使用了 Laravel,所以我们需要在 nginx 配置文件中加入以下 Laravel 伪静态文件,否则之后会出 404 错误,也可以顺带设置一下自己的证书。

location / {

try_files $uri $uri/ /index.php?$query_string;

}

# 去除末尾的斜杠,SEO更加友好

if (!-d $request_filename)

{

rewrite ^/(.+)/$ /$1 permanent;

}

# 去除index action

if ($request_uri ~* index/?$)

{

rewrite ^/(.*)/index/?$ /$1 permanent;

}

# 根据laravel规则进行url重写

if (!-e $request_filename)

{

rewrite ^/(.*)$ /index.php?/$1 last;

break;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

程序安装

下载

进入网站目录,下载最新版文件(写本文时版本为 v0.7.15)

cd /data/wwwroot/gaming

curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/download/v0.7.15/panel.tar.gz

tar --strip-components=1 -xzvf panel.tar.gz

rm -rf panel.tar.gz

chmod -R 755 storage/* bootstrap/cache/

chown www:www -R /data/wwwroot/gaming

  • 这个时候,你已经下载好最新的翼龙面板程序。在这个时候请先使用自己的工具为程序手动创建一个 Mysql 数据库,因为很快就需要使用到。

安装

  • 创建默认的环境配置文件,安装核心依赖,生成专有加密密钥

cp .env.example .env

composer install --no-dev --optimize-autoloader

php artisan key:generate --force ## 如果不是首次安装程序,请忽略这一行

安全提示

请备份.env 文件中的 APP_KEY,它是程序的数据加密密钥,如果密钥丢失则无法解密数据库,这是网站恢复或迁移时所必须的。

  • 如果出现这样的错误,请仔细阅读红色区域中的错误信息,查看是哪一个模块不存在,然后去 PHP 配置文件中将其从禁用列表中删除

设定环境

程序设置

php artisan p:environment:setup

所需信息如下:

  • Egg Author Email: 填写自己的邮箱,如果创建了自定义游戏服务器配置文件时,这个邮箱会作为作者邮箱使用
  • Application URL: 网站域名
  • Application Timezone: 程序时区,建议和所用服务器的时区统一
  • Cache Driver: Redis(程序推荐的,也是我们一开始就准备好的)
  • Session Driver: Redis
  • Queue Driver: Redis
  • Enable UI based setting editor: Yes, 基于 UI 的编辑器
  • Redis Host: 留空直接回车
  • Redis Password: 留空直接回车(OneinStack 的设置,如果没有使用请根据自己情况修改)
  • Redis Port: 留空直接回车

数据库设置

php artisan p:environment:database

所需信息如下:

  • Database Host: 数据库地址,默认本地
  • Database Port: 数据库端口,默认 3306
  • Database Name: 数据库名,让你们提前创建的
  • Databse Username: 数据库用户名,自己设置
  • Database Password: 数据库用户密码
  • 完成后开始导入默认数据

php artisan migrate --seed

邮件设置

  • 程序发邮件的设定,建议提前准备好 smtp 配置文件,一共就几个很简单的我就懒得写了。主要原因是这一步是可以跳过的,等网站创建好了后可以直接去网页后台设置,效果一样,自行决定。

php artisan p:environment:mail

添加用户

  • 为程序添加第一个账户

php artisan p:user:make

所需信息如下:

  • Is this user an administrator: Yes,设为管理员
  • Email Address: 用户邮箱
  • User Name: 用户名,和前一条邮箱都可以用作登陆
  • First Name, last name:自己设
  • Password: 密码,需要至少 8 位并且包含大小写和数字

停用 ReCAPTCHA

  • ReCAPTCHA 被用在了网页登陆页面,如果需要考虑网络条件差的人使用,则可以考虑停用 ReCAPTCHA
  • 在.env 文件中加入 RECAPTCHA_ENABLED=false 后刷新缓存即可

php artisan cache:clear

php artisan view:clear

设置网站文件权限

  • 刚刚的操作又创建和修改了很多文件,所以重新设置一下权限

chown www:www -R /data/wwwroot/gaming

chmod -R 755 /data/wwwroot/gaming

创建任务队列

Crontab

创建队列任务,保证程序可以保证邮件操作之类的任务

crontab -e

加入以下内容

* * * * php /data/wwwroot/gaming schedule:run >> /dev/null 2>&1

Queue Worker

  • 在 /etc/systemd/system 中创建一个名为 pteroq.service 的文件,内容如下:

# Pterodactyl Queue Worker File

# ----------------------------------

[Unit]

Description=Pterodactyl Queue Worker

After=redis-server.service

[Service]

# On some systems the user and group might be different.

# Some systems use `apache` or `nginx` as the user and group.

User=www-data

Group=www-data

Restart=always

ExecStart=/usr/bin/php /data/wwwroot/gaming queue:work --queue=high,standard,low --sleep=3 --tries=3

[Install]

WantedBy=multi-user.target

  • 如果你使用的是 Centos,请把 After=redis-server.service 修改为 After=redis.service 以保证 redis 在队列任务开始前工作
  • 如果你使用的不是 redis,请删除 After= 这一行全部内容
  • 最后我们需要设置 redis 开机启动

systemctl enable --now redis-server

systemctl enable --now pteroq.service

收尾工作

  • 进入 nginx 的网站配置文件,修改网站目录为 /data/wwwroot/gaming/public
  • 重启系统(或者你一个个重启 crontab, nginx, php 和那些之前修改过配置文件的程序)
  • 这个时候,你的前端程序应该已经可以正常工作了

前端就此架设完毕,前端架设的话需要对应承载的的服务器,德迅云弹性云服务器将满足所有的需求,而且配置随时都可以升级,不用担心配置不够的问题

弹性云服务器

产品优势

稳定 单实例可用性达 99.975%,多可用区多实例可用性达 99.995%,云盘可靠性达9个9,可实现宕机自动迁移、快照备份

弹性 支持分钟级别创建千台实例,多种弹性付费选择更贴合业务现状,同时带来弹性的扩容能力,实例与带宽均可随时升降配,云盘可扩容

安全 提供DDoS防护、木马查杀等服务,提供支持可信计算、硬件加密、虚拟化加密计算的实例,通过多方国际安全认证,云服务器云盘支持数据加密功能

高性能 单实例最高可选256vCPU ,内存6TB,主频3.8GHz,性能最高可达2400万PPS,80Gbps,100万IOPS,1600万session,网络时延20us+

易用性 丰富的操作系统和应用软件,通过镜像可一键简单部署,同一镜像可在多台云服务器中快速复制环境,轻松扩展

可拓展性 弹性云服务器可与德迅云安全产品无缝衔接,可持续为业务发展提供完整的计算、存储、安全等解决方案

产品功能

丰富的实例类型和多种存储选择

面向各类企业应用场景,弹性云服务器将提供超过100款高性能规格族供您选择。按您的实际业务场景可选择不同配置实例搭配1到16块不同容量的存储磁盘。

计算架构

提供X86、ARM计算架构,在选型时您可以选择适合的架构,充分贴合您的业务场景。

实例规格

每种计算架构下提供多种面向不同场景的实例类型和规格,在满足您需求的同时提供极致的性价比。

存储类型

按您的实际业务场景可选择不同配置实例,搭配1到65块不同容量的存储磁盘。云盘、本地盘提供给您多样选择的同时,云盘将提供给您最高9个9的可靠性。

VPC专有网络

基于德迅云构建的一个隔离的网络环境,专有网络之间逻辑上彻底隔离,只能通过对外映射的IP(弹性公网IP和NAT IP)互联。由于使用隧道封装技术对云服务器的IP报文进行封装,所以云服务器的数据链路层(二层MAC地址)信息不会进入物理网络,实现了不同云服务器间二层网络隔离,因此也实现了不同专有网络间二层网络隔离。专有网络内的云服务器使用安全组防火墙进行三层网络访问控制。

访问控制

灵活的访问控制规则。 满足政务、金融的安全隔离规范。

软件定义网络

按需配置网络设置,软件定义网络。管理操作实时生效。

丰富的网络连接方式

支持软件VPN;支持专线连接。

快照与多种镜像类型

快照与多种镜像类型,支持您的业务快速部署。

快照安全系数更高

每个云盘有多个快照额度,为客户数据提供更长的保护周期和更细的保护粒度。

自动快照策略

实现无人值守的自动化数据备份,减轻运维部门工作负担。

快照灵活易用

性能影响小,用户业务无感知,随时支持数据快照备份。支持秒级创建/回滚的极速快照和快照一致性组。

镜像种类丰富

公共镜像、镜像市场、自定义镜像、社区镜像满足各类型用户对于应用环境的快速部署、灵活管理的需求。

实例规格

每种计算架构下提供多种面向不同场景的实例类型和规格,在满足您需求的同时提供极致的性价比。

多种付费和存储选择

通过包年包月、按量付费等付费模式分别满足长周期低成本以及周期高弹性的计算要求。

包年包月购买

适合长期稳定的业务,购买周期越长,折扣越高

按量付费购买

紧贴业务需求购买资源的付费方式,秒级计费,用多少花多少。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 环境要求
    • 系统
      • 环境依赖
        • 环境搭建
        • 程序安装
          • 下载
            • 安装
            • 安全提示
            • 设定环境
              • 程序设置
                • 数据库设置
                  • 邮件设置
                    • 添加用户
                      • 停用 ReCAPTCHA
                        • 设置网站文件权限
                          • 创建任务队列
                            • Crontab
                            • 加入以下内容
                            • Queue Worker
                        • 收尾工作
                        • 弹性云服务器
                          • 产品优势
                            • 产品功能
                              • 丰富的实例类型和多种存储选择
                              • VPC专有网络
                              • 快照与多种镜像类型
                              • 多种付费和存储选择
                          相关产品与服务
                          云数据库 Redis
                          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档