[Updated]你祖母也能看懂的点歌台部署——SyncMusic

发布于 2020-03-17  731 次阅读


前言

前几天无聊翻GitHub 康到了一个比较有趣的开源项目SyncMusic

kasuganosoras/SyncMusic

GitHub地址: https://github.com/kasuganosoras/SyncMusic

V2EX地址: https://www.v2ex.com/t/617224

因为想着在窝VTB整活,以及给我的HXD(大家可以去康康他)直播整活,窝打算部署这个开源程序

你所需要的前置是:

  • PHP 7.0+
  • PHP引擎Swoole
  • Python3.6+ 以及扩展 mutagen
  • Nginx 以及模块 sub_filte (仅使用https需要)
  • 各系统的基础环境配置(wget screen curl git)

部署:

首先 在服务器里安装基础环境

P.S:MoeDev平常使用OneInStack安装,但是OneInStack编译安装是不带有sub_filte的,请自行斟酌

首先 把OneinStack的nginx编译安装脚本上 加上 sub_filte 模块

脚本位置在/[user]/oneinstack/includes/nginx.sh

./configure --prefix=${nginx_install_dir} --user=${run_user} --group=${run_user} --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-${openssl11_ver} --with-pcre=../pcre-${pcre_ver} --with-pcre-jit --with-ld-opt='-ljemalloc' ${nginx_modules_options}
后面加上
--add-module=/root/ngx_http_substitutions_filter_module

然后编译安装Nginx。漫长的安装后,开始着手PHP

curl https://tql.ink/php.sh | bash - | curl https://tql.ink/swoole.sh | bash -

安装完成后,配置PHP环境变量&Swoole

#vim /etc/profile
//加上
export PATH=$PATH:/usr/local/php/bin
保存退出
#php -v
php -m | grep swoole
有输出即可

安装Python&扩展mutagen

//CentOS/RHEL↓
yum install python36 python36-pip -y
//Ubuntu/Dabian
apt-get install python36 python36-pip
//Arch/Banjaro
panman -S python36 python36-pip
########################
然后执行命令
pip3 install mutagen

将项目拉到本地并修改配置

git clone https://github.com/kasuganosoras/SyncMusic/
cd SyncMusic/
vim server.php

配置文件需更改出多已注释,检查无误可以启动后端

screen -S music
php server.php

配置后端 在OneInStack根目录中添加虚拟主机

此时基础配置以及完成,只要将根目录下的以下文件复制到你的网站根目录 即可使用

  • index.html
  • face.html
  • face(Directory)

❤HTTPS❤

介绍到此结束,下文是HTTPS配置中踩的坑以及部署时遇到的困难(肝功能障碍者请谨慎观看)

根据官方文档,若要实现HTTPS,窝们需要使用Nginx搭建反向代理

首先,分析一下HTTP的程序逻辑

这是用nginx反向代理实现HTTPS的逻辑

基本逻辑还是相当简单的,但是在配置过程中踩了不少小坑

坑①:都是键盘的锅

因为窝之前配置的时候超级困,配置证书的时候留下了致命错误,导致产生了中间人公鸡的错觉,但实际上只是因为字打错了(

坑②:思维的死胡同

为了解决这个问题,烷妹被我折腾了一个通宵,期间写了无数份Nginx配置文件,并且每解决一个报错就多出来十个报错。。。

坑③:人类是有极限的!

虽然烷妹非常可爱,但窝还是被榨干了。所以,窝不部署啦!烷烷!

最终解决方案

实际上问题非常简单,如我画的流程图为例,只需要配置好反代就可以,但是直接配置是木大的!你需要设置几个Header。所以请这样写location块()

 location / {
        # 反向代理后端的地址,端口号要设置为 server.php 里面的监听端口
        proxy_pass                  http://127.0.0.1:811;
        proxy_redirect              off;
        proxy_set_header            Host $host; 
        proxy_set_header            X-Real-IP $remote_addr; 
        proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version          1.1;
        proxy_set_header Upgrade    $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

能用了,绒布球们看了都哭了

现在已经在https://sh.moedev.net/部署了点歌台(HTTPS ONLY),请随意使用吧~

2020.03.08截稿