Koel是著名的个人音乐在线播放与电台程序。在英文中,Koel是一种鸟类,它经常发出好听的叫声,该程序也因此得名。Koel完全免费开源,在Github上已经有一万多个Stars, 一千多次Forks. 今天我们将介绍如何在Ubuntu 20.04 LTS系统中搭建Koel私人音乐电台。
本文作者为香菇肥牛,原文链接为https://qing.su/article/personal-music-streaming-server-with-koel.html, 转载需著名原文链接。谢谢!
1, 基础系统环境
本文将以Ubuntu 20.04 LTS操作系统为例,介绍Koel音乐播放与电台系统的搭建。您需要将您的域名解析到服务器的IP地址上。下文中,我们将以域名koel.qing.su为例。
在开始之前,首先介绍一下该程序的架构。Koel的后端使用Laravel PHP框架,前端使用Vue JS框架。本文将使用基础的Nginx + MariaDB架构来实现Koel的搭建。由于需要用到两个框架,程序安装过程中,需要的组件较多,步骤较为繁杂,我们将提供图文教程和图文教程。
该程序需要至少1 GB的内存。Koel没有官方的Docker镜像,只有第三方开发的镜像,而且性能会弱于非Docker的安装方法。因此我们将不介绍Docker方式的安装。
下面,我就来详细介绍如何在Ubuntu 20.04 LTS操作系统中手动搭建Koel私人音乐电台。由于步骤较多,我们一并录制了SSH轻视频,您可以点击下方的播放键观看,视频上任意内容均可使用鼠标直接复制。若您的浏览器没有加载播放器,请刷新本页面。
2, 安装Nginx服务器与PHP
我们直接从包管理器安装Nginx. 执行:
2
apt-get install nginx git
继续从包管理器安装PHP. 这里,我们将安装默认的PHP7.4, 并安装一系列需要的PHP拓展。
需要注意的是,从包管理器安装PHP 7.4的时候,会一并安装上Apache2服务器。因此,安装PHP和各组件时会报错,如下图。您可以无视。
安装完毕后,执行下面的命令卸载Apache2.
Koel在播放音乐时需要较大的PHP内存,因此我们需要修改PHP的memory_limit参数。编辑文件/etc/php/7.4/cli/php.ini, 将memory_limit参数值修改为512M.
如下图:
修改完毕后,可以不用着急重新载入Nginx. 我们后面配置Nginx的时候可以一并操作。
3, 安装与配置MariaDB数据库
这一节,我们将安装MariaDB数据库。MariaDB是MySQL的替代产品,您也可以使用MySQL. 我们将直接从包管理器安装MariaDB. 执行:
这样就安装好了MariaDB. 首次安装,需要设置一些基础的安全选项。
然后,新建一个数据库,用来提供给Koel程序使用。首先,进入MariaDB命令行:
然后,新建一个数据库。
2
3
GRANT ALL ON koeldb.* TO ‘koeluser’ IDENTIFIED BY ‘qing.su’;
quit;
这样,我们新建了一个名为koeldb的数据库,数据库用户名为koeluser, 密码为qing.su.
4, 安装Composer与Laravel
Koel使用Laravel PHP框架作为后端。因此,我们需要安装Laravel框架。这里我们使用Composer来安装。
首先,安装Composer.
2
3
php installer
mv composer.phar /usr/local/bin/composer
然后,使用Composer安装Laravel.
上面这一步的执行过程中可能会看到如下的警告,可以无视。
5, 安装NodeJS与Yarn
Koel的前端使用了Vue JS框架,因此我们需要安装NodeJS与yarn来编译生成前端JS文件。
首先,安装NodeJS. 请注意,Koel目前仅支持10.x版本的NodeJS. 新版本比如14.x版本的NodeJS无法正常运行Koel.
2
apt-get install nodejs
然后,使用Node安装yarn.
您也可以添加源然后使用包管理器安装yarn.
2
3
echo “deb https://dl.yarnpkg.com/debian/ stable main” | tee /etc/apt/sources.list.d/yarn.list
apt-get update && apt-get install yarn
6, 安装Koel主程序
安装好所有这些组件之后,我们就可以开始部署Koel主程序了。我们将Koel主程序部署在/srv/www/koel/public_html/目录,您可以根据个人喜欢部署在其他目录。
2
3
cd /srv/www/koel/public_html
git clone –recurse-submodules https://github.com/phanan/koel.git .
这里,您可以前往https://github.com/phanan/koel/releases查看最新的Koel版本号,然后安装对应的版本。我这里是4.4.0.
2
composer install
此时,我们需要编辑文件.env, 配置数据库与管理员用户信息。在这个文件中,我们有三处需要修改。
首先,在下面几行中,填入我们在第三部分建立的数据库信息:
2
3
DB_USERNAME=user
DB_PASSWORD=qing.su
在下面几行中填入管理员用户信息:
2
3
更改APP_URL的值,将其修改为您的Koel域名:
如下图:
修改完毕后,保存退出。
最后,我们初始化Koel. 该步骤将初始化Koel数据库,并自动执行yarn install安装前端文件。这一步需要较长时间,且中途可能会遇到各种warning, 可以不予理会。
执行完毕后,我们可以测试一下Koel是否正确安装。我们可以使用PHP自带的临时服务器,测试一下我们是否能够正常访问Koel. 执行:
然后,在浏览器中访问http://koel.qing.su:8000, 如果您的Koel正确安装,浏览器中将会出现Koel的登录界面了。
测试完毕后,执行CTRL + C结束这个临时服务器。我们将使用Nginx来实现浏览器访问,而不是用这个简易的临时服务器来提供访问。
7, 配置Nginx虚拟主机文件
Koel安装目录中提供了默认的Nginx虚拟主机配置文件,我们仅需稍微修改即可。请注意,您当前的操作目录应该是/srv/www/koel/public_html/.
编辑文件/etc/nginx/conf.d/koel.conf:
将默认的程序路径/var/www/koel设置为我们安装的路径:
找到server_name选项,将其值设置为您的域名:
找到fastcgi_pass选项。我们将其值设置为PHP-FPM的Unix Socket文件路径:
编辑完毕后,退出该文件。然后,设置程序目录的访问权限,并重新载入Nginx配置文件,使得配置生效。
2
service nginx reload
此时,在浏览器中访问http://koel.qing.su, 将可以正确打开Koel登录界面了。
8, 配置Let’s Encrypt安全证书
配置好Nginx虚拟主机之后,我们还可以使用Let’s Encrypt免费TLS安全证书来提高安全性。Ubuntu 20.04 LTS系统的包管理器自带了certbot及配套的Nginx-certbot安装程序,我们直接从包管理器安装即可。
然后,让certbot自动帮我们配置证书即可。
证书安装好之后,Certbot会自动帮我们重新载入Nginx配置文件。
由于更改了网站URL, 我们需要重新编译一下前端js文件。修改文件.env, 将APP_URL=http://koel.qing.su修改为https地址:
然后重新编译前端文件。执行:
此时,访问https://koel.qing.su, 即可看到Koel登录界面与安装好的安全证书了。我们使用之前设置的管理员账户即可登录并同步音乐文件。
9, 使用Koel
最后,我们简要介绍一下如何使用Koel. 首先,我们需要把所有的音乐文件与目录放在服务器的一个目录里面。比如,我这里放在目录/media中。
然后,我们登录Koel, 点击左侧Settings, 再Media Path中输入我们的音乐文件存储位置,比如这里的/media. 请注意,存储在该目录的子目录中的所有音乐文件都会被包括在Koel库中。输入完毕后,点击Scan, 系统将会自动索引您的音乐文件。
索引完毕后,就可以开始听歌啦。
至此,我们在Ubuntu 20.04 LTS服务器中安装并配置好了Koel个人音乐播放与电台程序。
如果有任何问题,您可以在这里留言,我将尽力解答。本文作者为香菇肥牛,原文链接为https://qing.su/article/personal-music-streaming-server-with-koel.html, 转载需著名原文链接。谢谢!