开源ThinkMusic搭建音乐网站,并实现公网连接

news2024/11/25 0:21:46

请添加图片描述

1、前言

在我们的日常生活中,音乐已经成为不可或缺的要素之一,听几首喜欢的音乐,能让原本糟糕的心情变得好起来。虽然现在使用电脑或移动电子设备听歌都很方便,但难免受到诸多会员或VIP限制,难免让我们回想起音乐网站遍地开花的时代。今天,我们就为大家介绍,如何在本地电脑上搭建一个风格界面都不错的ThinkMusic音乐网站,并通过cpolar创建的内网穿透数据隧道将其发布到公共互联网上,让我们能够上传自己喜欢的音乐与大家分享,只为不再受制于人。

2、本地网页搭建

2.1 环境使用

现在个人电脑上最常用的系统是Windows系统,因此可以使用PHPStudy这款软件,作为ThinkMusic音乐网站的虚拟运行环境。

img

2.2 支持组建选择

ThinkMusic音乐网站是基于php框架开发,可以提供音乐的上传分享,其运行环境组件包括Nginx、php、MySQL、SQL-Front、FileZilla几项。而PHPStudy也支持这几项软件的直接安装和设置。

img[

2.3 网页安装

在PHPStudy安装好网页所需的各项软件后,就可以正式进入ThinkMusic网页的安装。由于ThinkMusic网站是开源的,因此可以轻松找到其源代码的下载。

img

网站源码下载后,可直接将其解压到PHPStudy的网页文件夹下即可(即WWW文件夹内)。

img

接着我们在PHPStudy的“网站”页面,找到左上角的“创建网站”按钮并点击,设置ThinkMusic音乐网站所需的运行环境,内容包括以下几项

  • 域名 – 即本地访问网站的域名;
  • 端口 – 即本地ThinkMusic网站的输出端口号;
  • 根目录 - 即ThinkMusic网站文件存放的路径,如果记不得详细路径的,可以通过栏位右侧的“浏览”按钮选择网站文件存放位置,自动生成路径;
  • 创建FTP和数据库 - 勾选这两项后,PHPStudy会弹出新窗口,分别对FTP和数据库进行设置,设置内容主要为用户名、密码、名称几项;
  • PHP版本 - 通常这项并不需做单独选择,但为防止网站安装时自检报错,因此最好选择5.2(5.X系列)或同系较高版本。

img

img

img

各项设置完成后,即可点击页面下方的“确认”按钮,生成ThinkMusic网站的运行环境。如果之后对网站的运行环境有任何变更,也可以点击条目右侧的“管理”按钮,在下拉菜单中进行修改。

img

接着我们在浏览器地址栏中输入“localhost:86/install”(之前设置ThinkMusic网站时将输出端口设置在86端口,因此此处输入86.若设置网站输出端口时有不同,则应输入实际端口号)执行网站安装程序,就能进入ThinkMusic音乐网站的安装界面。

img
接下来就是常规设置,在这里需要对两个部分进行修改,第一部分数据库名称、数据库用户名和密码,我们只要输入PHPStudy设置数据库时设定的用户名和密码即可;第二部分是ThinkMusic网站站长的信息设置,我们只要按实填写即可。

完成必要的信息修改和设置后,就可以点击安装页面下方的“提交”,完成ThinkMusic音乐网站的安装。此时网站会提示我们是进入前台或是后台,前台就是访客能够看到的网站,而后台则是我们对该网站进行设置的界面。

img[外链图片转存失败,源站可能有防盗链机制,建议

这时就可以在浏览器地址栏输入localhost:86(自设的端口号)登录本地网站的前台页面进行功能测试,或输入localhost:86/admin登录网站后台进行管理。

img

img

所有已注册用户都可以上传自己喜欢的歌曲与大家分享,或者创立喜欢的音乐专辑。

img

3、本地网页发布

现在,本地ThinkMusic音乐网站已经就绪,接下来要做的,就是将这个本地网站,通过cpolar创建的内网穿透数据隧道发布到公共互联网上。Cpolar支持三种网页隧道模式,分别是

  • 临时数据隧道 - 免费试用,24小时重置隧道编号,适用于临时测试场景;
  • 固定二级子域名 – 基础版及以上用户可选,可以自定义二级子域名,数据隧道一旦固定就不会变化,并且支持https协议,适合对域名要求不高的小范围网页发布场景。
  • 自定义域名 – 专业版及以上用户可选,能够使用从域名供应商处购买的特定域名,并且支持用户自上传网站密钥及证书文件,十分适合商业推广等大范围应用场景。

为能更好的说明cpolar的使用方式,我们以固定二级子域名隧道为演示。首先我们需要登录cpolar官网(官网地址为https://www.cpolar.com),下载好cpolar客户端(暂时不用安装,可以先设置好固定二级子域名空白隧道)

img

3.1 Cpolar云端设置

首先,登录cpolar的官网,在“仪表盘”页面左侧找到“预留”项,并在“预留”页面选择“保留二级子域名”栏位并对该隧道进行几项简单的信息设置,这几项信息为:

  • 地区 - 这里我们在下拉菜单中选择实际使用地即可;
  • 二级域名 - 二级域名可以选择自己喜欢的内容填写,不过需要注意的是,该内容最终会显示的公网URL中,因此需要选择合适的内容填入;
  • 描述 – 该栏可以看做这条数据隧道的备注,只要方便分辨即可;

img

这三项信息填写完毕后,直接点击右侧的“保留”按钮,创建一条固定的二级子域名隧道。

img

到这里,我们就在cpolar云端设定好一条空白数据隧道,接着我们回到本地电脑,安装cpolar客户端软件,并将cpolar云端的空白二级子域名数据隧道与本地ThinkMusic网站关联起来。

3.2 Cpolar本地设置

Cpolar客户端下载完成后,可以直接解压双击.msi安装文件进行安装。

img

接着只要一路“next”即可完成安装。

img

接着我们打开cpolar在本地电脑的客户端(可以在浏览器中输入localhost:9200打开cpolar的Web-UI界面,也可以在开始菜单中找到cpolar的快捷方式)

img

img

在cpolar本地端,我们选择“隧道管理”项下的“创建隧道”项,进入“创建隧道”页面,在这个页面,我们需要填写几项基本信息用于创建数据隧道,这些信息包括:

  • 隧道名称 – 可以看做cpolar本地的隧道信息注释,只要方便分辨即可;
  • 协议 – 这里我们默认选择http协议;
  • 本地地址 – 本地地址即为音乐网站的输出端口号,在这个例子中为86;
  • 域名类型 – 由于我们已经在cpolar云端预留了二级子域名的固定隧道,因此勾选“二级子域名”(如果预留的是自定义域名,则勾选自定义域名),并在下一行“Sub Domain”栏中填入预留的二级子域名,该例子中为“thinkmusic”;
  • 地区 – 与cpolar云端预留的信息一样,我们依照实际使用地填写即可;

这些信息填写完毕后,就可点击页面下方的“创建”按钮,生成能够发布本地音乐网站的公网地址。

img

img

4、公网访问测试

最后,我们可以在“状态”项下的“在线隧道列表”中,找到thinkmusic音乐网站的公共互联网地址,将这个公共互联网地址输入浏览器,就能成功访问到位于本地电脑上的thinkmusic音乐网站。

img

img

img

可以看到,使用cpolar生成的内网穿透数据隧道,可以很轻松的将本地电脑上的ThinkMusic音乐网站发布到公共互联网上,即可以作为个人原创音乐发布平台,也能集合一众音乐同好,分享各自对音乐的理解。最重要的是,可以从此不在看别人脸色听歌,打造属于自己的音乐天堂。

5、结语

可以看到,使用cpolar生成的内网穿透数据隧道,可以很轻松的将本地电脑上的ThinkMusic音乐网站发布到公共互联网上,即可以作为个人原创音乐发布平台,也能集合一众音乐同好,分享各自对音乐的理解。最重要的是,可以从此不在看别人脸色听歌,打造属于自己的音乐天堂。

使用cpolar发布个人音乐网站,只是cpolar内网穿透功能的一个应用场景,cpolar创建的内网穿透数据隧道,还能应用在更多场景中。如果您对cpolar的使用有任何疑问,欢迎与我们联系,我们必将为您提供力所能及的协助。当然也欢迎加入cpolar的VIP官方群,共同探索cpolar的无限潜能。

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

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

相关文章

DAY6,C++(将顺序栈,顺序循环队列定义成模板类);

1.将顺序栈定义成模板类&#xff1b;​​​​​​ 顺序栈模板代码--- #include <iostream>using namespace std;template<typename T> class Stack { private:T *data; //指向堆区空间int top; //记录栈顶位置public:Stack(); //无参构造Stack(T size); //有…

子网划分路由网卡安全组

1."IPv4 CIDR" "IPv4 CIDR" 是与互联网协议地址&#xff08;IP address&#xff09;和网络的子网划分有关的概念。 - "IPv4" 代表 "Internet Protocol version 4"&#xff0c;也就是第四版互联网协议&#xff0c;这是互联网上最广泛使…

动态规划入门第4课,经典DP问题3 ----公共最长子序列

练习 第1题 最长公共子串 查看测评数据信息 给出2个小写字母组成的字符串&#xff0c;求它们最长的公共子串的长度是多少&#xff1f; 例如&#xff1a;”abcdefg” 与”xydoeagab”。有最长的公共子串”deg”&#xff0c; 答案为&#xff1a;3。 输入格式 第一行&#xff…

Java并发编程学习笔记(一)线程的入门与创建

一、进程与线程 认识 程序由指令和数据组成&#xff0c;简单来说&#xff0c;进程可以视为程序的一个实例 大部分程序可以同时运行多个实例进程&#xff0c;例如记事本、画图、浏览器等少部分程序只能同时运行一个实例进程&#xff0c;例如QQ音乐、网易云音乐等 一个进程可以…

【密码学】三、DES

DES 1、DES的加密过程2、初始置换3、16轮迭代变换过程3.1 扩展变换/位选择函数E3.2 S盒代换3.3P盒置换 4、初始逆置换5、密钥扩展5.1 选择置换PC_15.2选择置换PC_2 6、DES的解密过程7、多重DES 美国正式公布实施的DES是一个众所周知的分组密码&#xff0c;其 分组长度是64bit&…

Redis 缓存机制介绍

.Redis 缓存 缓存&#xff08;cache&#xff09;&#xff0c;原始意义是指访问速度比一般随机存取存储器&#xff08;RAM&#xff09;快的一种高速存储器&#xff0c;通常它不像系统主存那样使用 DRAM 技术&#xff0c;而使用昂贵但较快速的 SRAM 技术。缓存的设置是所有现代计…

arm点灯

.text .global _start _start: /**********LED1点灯**************/RCC_INIT:LDR R0,0X50000A28LDR R1,[R0]orr R1,R1,#(0x1<<4)orr R1,R1,#(0X1<<5)STR R1,[R0] LED1_INIT:/**/LDR R0,0X50006000LDR R1,[R0]and R1,R1,#(~(0X3<<20))orr R1,R1,#(0x1<<…

windows下载pytorch gpu时遇见的问题以及解决方案

一些很奇怪的问题 使用官方命令下载失效离线下载之后使用pip安装又md报错了 使用官方命令下载失效 这是官方的下载命令&#xff0c;我在运行这个命令的时候咋的都报错&#xff0c;真的无语。 报错信息如下&#xff08;当时没截图&#xff0c;我再创建个新环境运行此命令给大家…

13.2 【Linux】帐号管理

13.2.1 新增与移除使用者&#xff1a; useradd, 相关配置文件, passwd,usermod, userdel 我们登陆系统时会输入&#xff08;1&#xff09;帐号与 &#xff08;2&#xff09;密码&#xff0c; 所以创建一个可用的帐号同样的也需要这两个数据。那帐号可以使用 useradd 来新建使用…

深度剖析数据在内存中的储存

深度剖析数据在内存中的储存 整形在内存的储存大小端浮点型在内存中的存储浮点数在内存中存储规则 整形在内存的储存 #include <stdio.h> int main() {int a 0x11223344; }将整形a赋值为0x11223344 然后监视内存的地址 将地址在内存调试窗口中搜索&#xff0c;可以找到…

【MySQL】SQL性能分析 (七)

&#x1f697;MySQL学习第七站~ &#x1f6a9;本文已收录至专栏&#xff1a;MySQL通关路 ❤️文末附全文思维导图&#xff0c;感谢各位点赞收藏支持~ 假如我们需要对SQL进行优化&#xff0c;我们就必须对他足够的了解&#xff0c;比如 对哪一类SQL进行优化&#xff08;增删改查…

【计算机组成原理】24王道考研笔记——第二章 数据的表示和运算

第二章 数据的表示和运算 一、数值与编码 1.1 进制转换 任意进制->十进制&#xff1a; 二进制<->八进制、十六进制&#xff1a; 各种进制的常见书写方式&#xff1a; 十进制->任意进制&#xff1a;&#xff08;用拼凑法最快&#xff09; 真值&#xff1a;符合人…

【C/C++】类之间的横向关系

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

Qt曲线绘制-QChart使用(一)

最近打算研究一下qt绘制曲线图&#xff0c;以前项目中绘制曲线图都是纯painter画的&#xff0c;查了一下才发现qt关于曲线的图绘制有自带的qchart&#xff0c;还有第三方的qcustomplot、qwt、echarts等等&#xff0c;先研究QChart&#xff0c;QChart是Qt5.7之后才有的并且安装q…

基于antd@5.x封装Form.List组件

基于antd5.x封装Form.List组件 使用案例 const initFormState {formList1: [{start: 测试,end: 100,},{start: abc,end: value,},],formList2: [{start: 测试2,end: 6,},{start: vxcv,end: jksdhfjk,},], };<Formform{form}onFinish{onFinish}autoCompleteoffinitialValue…

源码对接微软Azure OpenAI 规范注意点

众所周知&#xff0c;我们是访问不通OpenAI官方服务的&#xff0c;但是我们可以自己通过代理或者使用第三方代理访问接口 现在新出台的规定禁止使用境外的AI大模型接口对境内客户使用&#xff0c;所以我们需要使用国内的大模型接口 国内的效果真的很差&#xff0c;现在如果想合…

【RabbitMQ】RabbitMQ集群搭建(Docker版本)

个人主页&#xff1a;金鳞踏雨 个人简介&#xff1a;大家好&#xff0c;我是金鳞&#xff0c;一个初出茅庐的Java小白 目前状况&#xff1a;22届普通本科毕业生&#xff0c;几经波折了&#xff0c;现在任职于一家国内大型知名日化公司&#xff0c;从事Java开发工作 我的博客&am…

react+redux异步操作数据

reactredux异步操作数据 redux中操作异步方法&#xff0c;主要是&#xff1a; 1、借助createAsyncThunk()封装异步方法&#xff1b;2、通过extraReducers处理异步方法触发后的具体逻辑&#xff0c;操作派生的state 1、异步操作的slice import { createSlice, createAsyncThunk…

关于Docker的基本概念和使用

关于Docker的基本概念和使用 一、Docker 概述1、Dcker的概念2、容器的优势3、Docker与虚拟机的区别4、容器在内核中支持2种重要技术5、Docker核心概念 二、安装 Docker1、安装依赖包2、设置阿里云镜像源3、安装 Docker-CE并设置为开机自动启动3、查看 docker 版本信息4、docker…

【蓝图】p36-p39蓝图通信、自定义事件、类型转换、角色移动速度、触发加速

p36-p39蓝图通信、自定义事件、类型转换、角色移动速度、触发加速 p36蓝图通信和自定义事件蓝图通信自定义事件 p37类型转换加速功能类型转换 p38创建自定义事件p39实现触发加速 p36蓝图通信和自定义事件 蓝图通信 在Unreal Engine&#xff08;UE&#xff09;中&#xff0c;蓝…