前言
在香菇肥牛大佬的博客里看到了这个项目的搭建,跟着走一遍.看看有没有什么坑,顺便分享一下过程
原文链接:https://qing.su/article/personal-music-streaming-server-with-koel.html
koel介绍及预览图
Koel是著名的个人音乐在线播放与电台程序。在英文中,Koel是一种鸟类,它经常发出好听的叫声,该程序也因此得名。Koel完全免费开源,在Github上已经有一万多个Stars, 一千多次Forks. 今天我们将介绍如何在Ubuntu 20.04 LTS系统中搭建Koel私人音乐电台。
![](https://cdn.wangfuchao.com/pic/20201011004405.png)
准备工作
一台服务器:最低内存为1g,本文中使用1h2g的云服务器,演示系统为Ubuntu20.04 LTS
一个域名:二级域名即可.比如说我的域名 koel.wangfuchao.com
下面就演示一下怎么操作
域名解析
首先我们到自己的域名解析处解析一下自己的域名.
我的是阿里云,在阿里云控制台解析域名到我的服务器ip上.
![](https://cdn.wangfuchao.com/pic/20201010122040.png)
安装Nginx服务器与PHP
先输入 su root
进入root用户,本身root用户登录的可以无视.
然后输入命令apt-get update
和apt-get upgrade
更新一下.以防出现不必要的错误
输入以下命令来从包管理器安装Nginx
apt-get install nginx git
继续输入以下命令 从包管理器安装PHP. 这里,我们将安装默认的PHP7.4, 并安装一系列需要的PHP拓展。
apt-get install php php-bcmath php-json php-mbstring php-xml php-common openssl libssl-dev php-mysql php-dev php-zip php-curl php-fpm
需要注意的是,从包管理器安装PHP 7.4的时候,会一并安装上Apache2服务器。因此,安装PHP和各组件时会报错,如下图。您可以无视。
![](https://cdn.wangfuchao.com/pic/20201010123453.png)
安装完毕后,执行下面的命令卸载Apache2
.
apt-get remove apache2 && apt-get autoremove
Koel在播放音乐时需要较大的PHP内存,因此我们需要修改PHP的memory_limit参数。编辑文件/etc/php/7.4/cli/php.ini, 将memory_limit参数值修改为512M.
输入vi /etc/php/7.4/cli/php.ini
进入如下界面
![](https://cdn.wangfuchao.com/pic/20201010123745.png)
然后往下找,找到memory_limit =
,然后按下i键
进入编辑模式,将等号后面的值修改成512M
![](https://cdn.wangfuchao.com/pic/20201010124040.png)
修改完成后先按ESC,再输入:wq
保存退出
修改完毕后,可以不用着急重新载入Nginx. 我们后面配置Nginx的时候可以一并操作。
安装与配置MariaDB数据库
MariaDB是MySQL的替代产品,您也可以使用MySQL. 我们将直接从包管理器安装MariaDB.
执行以下命令来安装MariaDB:
apt-get install mariadb-server
安装好了MariaDB后需要设置一些基础的安全选项。
执行mysql_secure_installation
,会出现以下界面,由于我们是第一次安装,所以在如下界面直接按下回车键.
![](https://cdn.wangfuchao.com/pic/20201010124615.png)
之后会提示你设置root密码,输入y按照指示操作即可.
![](https://cdn.wangfuchao.com/pic/20201010124734.png)
连续两次输入密码后,会提示你是否删除匿名用户,这里选择y即可.
![](https://cdn.wangfuchao.com/pic/20201010124921.png)
之后的几项按照我下图所示都选择y即可.
![](https://cdn.wangfuchao.com/pic/20201010125028.png)
![](https://cdn.wangfuchao.com/pic/20201010125044.png)
![](https://cdn.wangfuchao.com/pic/20201010125118.png)
接下来我们要新建一个数据库,用来提供给Koel程序使用。首先,进入MariaDB命令行:
输入:mysql -u root -p
,会提示你输入密码,密码就是我们上文所设置的密码.
进入之后界面如下:
![](https://cdn.wangfuchao.com/pic/20201010125248.png)
然后我们来新建一个数据库。
依次输入以下命令
CREATE DATABASE koeldb;
GRANT ALL ON koeldb.* TO 'koeluser' IDENTIFIED BY 'koelpasswd';
quit;
输入命令时,不要忘记;
号
这样,我们新建了一个名为koeldb的数据库,数据库用户名为koeluser, 密码为koelpasswd.
这个用户名和密码按照自己的喜好来修改即可!
安装Composer与Laravel
Koel使用Laravel PHP框架作为后端。因此,我们需要安装Laravel框架。这里我们使用Composer来安装。
首先,安装Composer
,依次输入以下命令:
wget https://getcomposer.org/installer
php installer
mv composer.phar /usr/local/bin/composer
然后,使用Composer安装Laravel.
composer global require laravel/installer
箭头①所示可以不用管,箭头②说明我们要安装一下unzip
,输入apt-get install unzip
来安装即可
![](https://cdn.wangfuchao.com/pic/20201010130037.png)
安装NodeJS与Yarn
Koel的前端使用了Vue JS框架,因此我们需要安装NodeJS与yarn来编译生成前端JS文件。
首先,安装NodeJS. 请注意,Koel目前仅支持10.x版本的NodeJS. 新版本比如14.x版本的NodeJS无法正常运行Koel.
依次执行下述命令:
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install nodejs
然后,使用Node安装yarn.执行下面命令:
npm install -g yarn
安装Koel主程序
安装好所有这些组件之后,我们就可以开始部署Koel主程序了。我们将Koel主程序部署在/srv/www/koel/public_html/
目录,您可以根据个人喜欢部署在其他目录。
依次执行下方三条命令
mkdir -p /srv/www/koel/public_html
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
依次执行:
git checkout v4.4.0
composer install
此时,我们需要编辑文件.env, 配置数据库与管理员用户信息。输入vi .env
进入文件,在这个文件中,我们有三处需要修改。
首先,在下面几行中,填入我们前面安装和配置数据库时建立的数据库信息:
DB_DATABASE=koeldb
DB_USERNAME=koeluser
DB_PASSWORD=koelpasswd
在下面几行中填入管理员用户信息:姓名密码啥的都按照自己喜好修改一下.
ADMIN_NAME="wfc"
ADMIN_EMAIL=hi@example.com
ADMIN_PASSWORD=wangfuchao.com
更改APP_URL的值,将其修改为您的Koel域名:
APP_URL=http://koel.wangfuchao.com
修改完毕后,保存退出。
最后,我们初始化Koel. 该步骤将初始化Koel数据库,并自动执行yarn install安装前端文件。这一步需要较长时间,且中途可能会遇到各种warning, 可以不予理会。
php artisan koel:init
配置Nginx虚拟主机文件
Koel安装目录中提供了默认的Nginx虚拟主机配置文件,我们仅需稍微修改即可。请注意,您当前的操作目录应该是/srv/www/koel/public_html/.
先执行:cp nginx.conf.example /etc/nginx/conf.d/koel.conf
然后vi /etc/nginx/conf.d/koel.conf
:
将默认的程序路径/var/www/koel设置为我们安装的路径:
![](https://cdn.wangfuchao.com/pic/20201010133810.png)
将上图中红框内容改成下面的.
root /srv/www/koel/public_html;
之后依次找到下面的内容,并修改.
找到server_name选项,将其值设置为您的域名:server_name koel.wangfuchao.com;
找到fastcgi_pass选项。我们将其值设置为PHP-FPM的Unix Socket文件路径fastcgi_pass unix:/run/php/php7.4-fpm.sock;
编辑完毕后,退出该文件。然后,设置程序目录的访问权限,并重新载入Nginx配置文件,使得配置生效。chown -R www-data:www-data .
service nginx reload
此时,在浏览器中访问http://koel.wangfuchao.com, 将可以正确打开Koel登录界面了。
配置Let’s Encrypt安全证书
配置好Nginx虚拟主机之后,我们还可以使用Let’s Encrypt免费TLS安全证书来提高安全性。Ubuntu 20.04 LTS系统的包管理器自带了certbot及配套的Nginx-certbot安装程序,我们直接从包管理器安装即可。
apt-get install certbot python3-certbot-nginx
然后,让certbot自动帮我们配置证书即可。(域名记得修改成自己的)
certbot --nginx --redirect --staple-ocsp -d koel.wangfuchao.com
证书安装好之后,Certbot会自动帮我们重新载入Nginx配置文件。
由于更改了网站URL, 我们需要重新编译一下前端js文件。修改文件.env
, 将APP_URL=http://koel.wangfuchao.com修改为APP_URL=https://koel.wangfuchao.com
然后重新编译前端文件。执行:php artisan koel:init
此时,访问https://koel.wangfuchao.com, 即可看到Koel登录界面与安装好的安全证书了。我们使用之前设置的管理员账户即可登录并同步音乐文件。
使用Koel
最后,我们简要介绍一下如何使用Koel. 首先,我们需要把所有的音乐文件与目录放在服务器的一个目录里面。比如,我这里放在目录/media中。
然后,我们登录Koel, 点击左侧Settings, 在Media Path中输入我们的音乐文件存储位置,比如这里的/media. 请注意,存储在该目录的子目录中的所有音乐文件都会被包括在Koel库中。输入完毕后,点击Scan, 系统将会自动索引您的音乐文件。
索引完毕后,就可以开始听歌啦。
暂无评论内容