如何在Ubuntu 18.04上安装Koel Music Streaming Server
如何在Ubuntu 18.04上安装Koel Music Streaming Server
Koel是一个基于Web的个人音频流应用程序,在客户端用Vue.js编写,在服务器端用Laravel编写。本教程将介绍如何在基于Ubuntu 18.04的服务器上安装Koel。
先决条件
-
运行Ubuntu 18.04的服务器。
-
非root用户sudo用户。
-
确保所有内容都已更新。
$ sudo apt update && sudo apt upgrade
-
系统需要的软件包很少。
$ sudo apt install ca-certificates curl unzip build-essential libpng-dev gnupg2 lsb-release ufw -y
其中一些软件包可能已经安装在您的系统上。
配置防火墙
第一步是配置防火墙。在启用防火墙之前,我们需要允许SSH端口,否则我们将被锁定在服务器之外。
$ sudo ufw allow OpenSSH
启用防火墙。
$ sudo ufw enable
允许HTTP和HTTPS端口。
$ sudo ufw allow http
$ sudo ufw allow https
检查防火墙的状态。
$ sudo ufw status
您应该会看到类似的输出。
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
安装Git
我们将从安装Git开始。
$ sudo apt install git -y
$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@domain.com"
安装Node.js
我们将安装Node 10.x而不是最新的12.x,因为Koel打包了一些与Node 12不兼容的过时的库。
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
检查节点是否正确安装。
$ node --version
您应该会看到类似的输出。
v10.17.0
安装Yarn
安装Yarn程序包管理器。
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt update && sudo apt install -y yarn
检查Yarn是否正常工作。
$ yarn --version
您应该会看到类似的输出。
1 .19.1
安装PHP
安装PHP 7.2及其所有必需的扩展。
$ sudo apt install -y php7.2-fpm php7.2-mbstring php7.2-bcmath php7.2-xml php7.2-mysql php7.2-curl php7.2-zip
检查PHP是否正常工作。
$ php --version
您应该会看到类似的输出。
PHP 7.2.24-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Oct 24 2019 18:29:11) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.24-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
安装MariaDB
MariaDB是MySQL的直接替代品,这意味着运行和操作MariaDB的命令与MySQL的命令相同。要安装MariaDB,请发出以下命令。
$ sudo apt install mariadb-server
检查MariaDB是否正确安装。
$ mysql --version
您应该看到以下输出。
mysql Ver 15.1 Distrib 10.1.41-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
运行以下命令以执行默认配置,例如提供root密码,删除匿名用户,禁止远程root登录以及删除测试表。输入“ yes”,然后设置root密码。
$ sudo mysql_secure_installation
有一个设置根密码的警告。默认情况下,MariaDB允许系统root用户无需密码即可登录MariaDB。但是,如果您要使用第三方应用程序通过root访问,则必须输入密码,否则类似PHPMyAdmin的应用程序将失败。为此,您需要禁用基于插件的身份验证,这是MariaDB的默认选项。
要禁用插件身份验证并恢复root密码,请首先使用以下命令输入MySQL提示。
$ sudo mysql -u root
现在输入以下命令以禁用插件身份验证。
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit
此后,重新启动您的MariaDB服务。
$ sudo systemctl 重新启动 mariadb.service
而已。下次您要登录MySQL时,请使用以下命令
$ sudo mysql -u root -p
出现提示时输入您的root密码。
为Koel配置MariaDB
现在我们需要建立一个数据库以用于Koel应用程序。为此,请登录到MySQL提示符。在本教程的其余部分中,我们将假定您使用MariaDB的默认身份验证方法(即,不使用root密码)。
$ sudo mysql -u root
一旦在提示符下,输入这将建立一个名为数据库以下命令koelmusic和数据库用户名为koeluser并授予其访问数据库。
mysql> CREATE DATABASE koelmusic;
mysql> CREATE USER 'koeluser'@'localhost' IDENTIFIED BY 'yourpassword';
mysql> GRANT ALL PRIVILEGES ON koelmusic.* TO 'koeluser'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> exit
安装Nginx
安装Nginx服务器。
$ sudo apt安装nginx
检查它是否正常工作。
$ nginx -v
您应该看到以下输出。
nginx version: nginx/1.14.0 (Ubuntu)
运行以下命令以添加Koel的配置文件。
$ sudo nano /etc/nginx/sites-available/koel.conf
将以下代码粘贴到编辑器中。
server {
listen *:80;
server_name koel.example.com;
root /var/www/koel;
index index.php;
gzip on;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript application/json;
gzip_comp_level 9;
# Whitelist only index.php, robots.txt, and some special routes
if ($request_uri !~ ^/$|index/.php|robots/.txt|(public|api)/|remote|api-docs|sw/.js) {
return 404;
}
location /media/ {
internal;
alias $upstream_http_x_media_root;
access_log /var/log/nginx/koel.access.log;
error_log /var/log/nginx/koel.error.log;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ /.php$ {
try_files $uri $uri/ /index.php?$args;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+/.php)(/.+)$;
fastcgi_intercept_errors on;
include fastcgi_params;
}
}
该文件假定我们将Koel安装到域和目录中。koel.example.com
/var/www/koel
通过将其链接到目录来激活该配置文件。sites-enabled
$ sudo ln -s /etc/nginx/sites-available/koel.conf / etc / nginx / sites-enabled /
测试配置。
$ sudo nginx -t
您应该看到以下输出,表明您的配置正确。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加载Nginx服务。
$ sudo systemctl重新加载nginx
安装Composer
这是我们继续安装之前需要做的最后一件事。
输入以下命令以安装Composer。
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer
检查它是否正常工作。
$ composer --version
您应该看到以下输出。
作曲版本1 .9.1 2019 -11-01 17:20:17
安装Koel
为Koel创建一个空的文档根文件夹。
$ sudo mkdir -p / var / www / koel
该-p参数确保父目录和如果不存在,自动创建。var
www
导航到文档根文件夹。
$ cd / var / www / koel
将文档根目录的所有权更改为我们用于教程的非根用户。user
$ sudo chown -R用户:user / var / www / koel
克隆Koel Git存储库并签出其最新版本。您可以从其发行页面查看最新版本。
$ git clone --recurse-submodules https://github.com/phanan/koel.git
$ git checkout v4.1.1
安装依赖项。
$作曲家安装
运行以下命令来设置数据库和管理员帐户。输入mysql作为数据库类型,跳过端口并输入我们在上面创建的数据库凭据。对于媒体文件夹,您可以输入。/home/user/songs
$ php artisan koel:init
将文档根文件夹的所有权更改回用户。www-data
$ sudo chown -R www-data:www-data / var / www / koel
现在安装完成。在浏览器中打开并使用上面创建的凭据登录并开始流式传输。Koel的网站也可以通过手机访问。koel.example.com
配置Koel
您可以通过使用以下命令编辑文件来配置更多详细信息。.env
$ sudo nano /var/www/koel/.env
在这里,您可以输入SMTP详细信息,为Koel配置Youtube和Last.fm并做更多的事情。
重新加载Nginx服务器以实施更改。
如果要重置管理员密码,可以通过发出以下命令来完成。
$ php artisan koel:admin:change-password
如果要扫描媒体库中的更新文件,可以通过以下命令进行。
$ php artisan koel:sync
您应该看到以下输出。
Koel syncing started.
953/953 [????????????????????????????] 100%
Completed! 944 new or updated song(s), 0 unchanged song(s), and 9 invalid file(s).
在命令后缀-v标志,它将为您提供更多详细信息,例如同步错误。
您甚至可以将此命令设置为cron作业,例如,在每个午夜运行。为此,请运行以下命令。
$ crontab -e
选择1(nano)作为编辑器。
将以下行粘贴到文件末尾。
0 0 * * * cd /var/www/koel && /usr/bin/php artisan koel:sync >/dev/null 2>&1
通过按Ctrl + X并在出现提示时输入Y来保存文件。现在,您的媒体库将在每个午夜同步。
使用“让我们加密”设置HTTPS
要使用“让我们加密”,我们需要安装Certbot软件包。
添加存储库。
$ sudo add-apt-repository ppa:certbot / certbot
安装Certbot。
$ sudo apt安装python-certbot-nginx
安装证书。
$ sudo certbot --nginx -d koel.example.com
如果这是您第一次使用此服务器上的工具,则需要同意条款并输入您的电子邮件地址。说没有,当询问是否要与EFF基金会分享您的电子邮件。
如果成功,将询问您如何配置HTTPS设置certbot
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
选择2,然后按。您的证书现已安装并激活。您的证书将在90天内自动更新。ENTER
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/32185.html