技术教程 · 2019年11月9日 0

如何在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参数确保父目录如果不存在,自动创建。varwww

导航到文档根文件夹。

$ 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来保存文件。现在,您的媒体库将在每个午夜同步。

有关更多内容,请参阅Koel官方文档

使用“让我们加密”设置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

结论

到此结束我们的教程。您可以将媒体从服务器流式传输到您内心的内容。

原文:https://www.howtoforge.com/how-to-install-koel-music-streaming-server-on-ubuntu-1804/