如何在带有Apache或Nginx的Ubuntu 16.04上安装Sonerezh Music Streaming Server

Sonerezh是使用PHP和HTML5编写的基于Web的自托管音乐流服务器。 与用Java编写的Subsonic相比,它轻巧。 Sonerezh是根据AGPL条款分发的开源软件。 本教程将向您展示如何使用Apache或Nginx在Ubuntu 16.04上安装Sonerezh。

Sonerezh功能:

  • 现代且易于使用的Web界面
  • 播放列表管理:将标题,专辑和艺术家添加到您的播放列表。
  • 通过用户管理系统共享音乐
  • 自动元数据提取和文件导入
  • 自动转码为mp3
  • 简单的搜索引擎

使用Sonerezh,您可以通过Web浏览器和Internet连接从任何地方收听音乐。

要遵循本教程,您需要在Ubuntu 16.04上安装LAMP或LEMP。 如果您尚未这样做,请查看以下教程。

  • 如何在Ubuntu 16.04上安装LAMP(Apache,MariaDB,PHP7)
  • 如何在Ubuntu 16.04上安装LEMP(Nginx,MariaDB,PHP7-FPM)

一旦安装了LAMP或LEMP,请回到这里继续阅读。

在Ubuntu 16.04上安装Sonerezh

最新的稳定版本是Sonerezh 1.1.3,已于2016年12月19日发布。您可以从Github存储库使用Git下载它。

将目录更改为 /var/www/

cd /var/www/

安装 git 并使用git从Github克隆Sonerezh。

sudo apt install git

sudo git clone --branch master https://github.com/Sonerezh/sonerezh.git

设置网络服务器(www-data)作为新目录的所有者。

sudo chown www-data:www-data /var/www/sonerezh/ -R

为Sonerezh创建MariaDB / MySQL数据库

使用以下命令登录MariaDB / MySQL数据库服务器:

mysql -u root -p

然后为Sonerezh创建一个数据库。 本教程为数据库命名 sonerezh。 您可以使用任何喜欢的名称。

create database sonerezh;

创建数据库用户,并向该用户授予sonerezh数据库的所有特权。 更换 your-password 使用您的首选密码。

grant all privileges on sonerezh.* to [email protected] identified by 'your-password';

刷新特权并退出。

flush privileges;

exit;

设置Apache虚拟主机

我们将创建一个 sonerezh.conf 归档在 /etc/apache2/sites-available/ 目录。

sudo nano /etc/apache2/sites-available/sonerezh.conf

将以下行复制并粘贴到文件中。 将红色文本替换为您的首选域名。 您还需要为域名创建一个A记录。 如果在家庭服务器上安装Sonerezh,则还需要在路由器中配置端口转发。

<VirtualHost *:80>
   ServerName music.your-domain.com
   DocumentRoot /var/www/sonerezh

   <Directory /var/www/sonerezh>
     Options -Indexes
     AllowOverride All

    # Apache 2.2.x
    <IfModule !mod_authz_core.c>
      Order Allow,Deny
      Allow from all
    </IfModule>

   # Apache 2.4.x
   <IfModule mod_authz_core.c>
     Require all granted
    </IfModule>
 </Directory>

 CustomLog /var/log/apache2/sonerezh-access.log "Combined"
 ErrorLog /var/log/apache2/sonerezh-error.log
</VirtualHost>

保存并关闭文件。

sudo a2ensite sonerezh.conf

然后启用mod_rewrite模块并重新加载Apache Web服务器以使更改生效。

sudo a2enmod rewrite

sudo systemctl reload apache2

现在去 music.your-domain.com/install。 您将看到Sonerezh Web安装程序,其中列出了一些要求。 为了满足这些要求,请运行以下命令。

sudo apt install php7.0-gd libav-tools

启用HTTPS(Apache)

要完成安装,您需要输入数据库详细信息并创建一个管理员帐户。 但是在此之前,让我们从Let’s Encrypt安装一个免费的TLS证书,这样您在Web安装程序中输入的内容将不会被嗅探。

安装certbot(让我们加密)客户端。

sudo apt install letsencrypt python-letsencrypt-apache

现在发出以下命令以获得免费的TLS / SSL证书。 将红色文本替换为您的实际数据。

sudo letsencrypt --apache --agree-tos --redirect --hsts --email your-email-address -d music.your-domain.com

说明:

  • –apache:使用Apache插件自动获取并安装证书。
  • –同意:同意服务条款。
  • –重定向:将所有HTTP通信重定向到虚拟主机的HTTPS
  • –hsts:强制浏览器始终使用TLS。

在几秒钟内,您将看到以下内容,这意味着将获得免费的TLS / SSL证书并将其安装在Apache服务器上。

sonerezh Ubuntu 16.04

在TLS实验室测试中,默认的TLS / SSL配置得分为A +。

设置Nginx服务器块

如果您使用Nginx代替Apache,则创建一个Nginx服务器块文件。

sudo nano /etc/nginx/conf.d/sonerezh.conf

将以下行复制并粘贴到文件中。 将红色文本替换为您的首选域名。 您还需要为域名创建一个A记录。 如果在家庭服务器上安装Sonerezh,则还需要在路由器中配置端口转发。

server {
    listen      80;
    server_name music.your-domain.com;
    root        /var/www/sonerezh/app/webroot;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
        expires 14d;
        add_header Cache-Control 'public';
    }

    # The section below handle the thumbnails cache, on the client (browser)
    # side (optional but recommended)
    location ~* /([^/]+_[0-9]+x[0-9]+(@[0-9]+x)?.[a-z]+)$ {
        try_files /img/resized/$1 /index.php?$args;
        add_header Cache-Control 'public';
        expires 14d;
        access_log off;
    }

    location ~ .php$ {
        try_files $uri =404;
        fastcgi_index index.php;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        include fastcgi.conf;

        # If fastcgi.conf is not available on your platform you may want to
        # uncomment the following line
        #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

保存并关闭文件。 然后测试配置。

sudo nginx -t

如果测试成功,请重新加载Nginx。

sudo systemctl reload nginx

现在去 music.your-domain.com/install。 您将看到Sonerezh Web安装程序,其中列出了一些要求。 为了满足这些要求,请运行以下命令。

sudo apt install php7.0-gd libav-tools

启用HTTPS(Nginx)

要完成安装,您需要输入数据库详细信息并创建一个管理员帐户。 但是在此之前,让我们从Let’s Encrypt安装一个免费的TLS证书,这样您在Web安装程序中输入的内容将不会被嗅探。

安装certbot(让我们加密)客户端。

sudo apt install letsencrypt

现在发出以下命令以获得免费的TLS / SSL证书。 将红色文本替换为您的实际数据。

sudo letsencrypt certonly --webroot --agree-tos --email your-email-address -d music.your-domain.com -w /var/www/sonerezh/app/webroot/

在几秒钟内,您将看到以下内容,这意味着将获得免费的TLS / SSL证书。

sonerezh ubuntu nginx

现在,编辑Sonerezh服务器阻止文件以配置TLS。

sudo nano /etc/nginx/conf.d/sonerezh.conf

将配置更改为以下内容。

server {
    listen      80;
    server_name music.your-domain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name music.your-domain.com;
    root        /var/www/sonerezh/app/webroot;

    ssl_certificate /etc/letsencrypt/live/music.your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/music.your-domain.com/privkey.pem;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;

    # modern configuration. tweak to your needs.
    ssl_protocols TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
    ssl_prefer_server_ciphers on;

    # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
    add_header Strict-Transport-Security max-age=15768000;

    # OCSP Stapling ---
    # fetch OCSP records from URL in ssl_certificate and cache them
    ssl_stapling on;
    ssl_stapling_verify on;

    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
        expires 14d;
        add_header Cache-Control 'public';
    }

    # The section below handle the thumbnails cache, on the client (browser)
    # side (optional but recommended)
    location ~* /([^/]+_[0-9]+x[0-9]+(@[0-9]+x)?.[a-z]+)$ {
        try_files /img/resized/$1 /index.php?$args;
        add_header Cache-Control 'public';
        expires 14d;
        access_log off;
    }

    location ~ .php$ {
        try_files $uri =404;
        fastcgi_index index.php;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        include fastcgi.conf;

        # If fastcgi.conf is not available on your platform you may want to
        # uncomment the following line
        #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

保存并关闭文件。 然后测试配置。

sudo nginx -t

如果测试成功,请重新加载Nginx。

sudo systemctl reload nginx

完成安装

现在,您的连接已启用HTTPS,您可以在Web安装程序中输入数据库详细信息。 并创建一个管理员帐户并指定音乐文件夹。

sonerezh nginx

Sonerezh基于Web的音乐流服务器

sonerezh音乐流服务器

自动续订证书

要自动续订我们的加密证书,请编辑root用户的crontab文件。

sudo crontab -e

在文件末尾添加以下行。

@daily letsencrypt renew --quiet && systemctl reload apache2

如果使用Nginx,则将apache2替换为nginx。

@daily letsencrypt renew --quiet && systemctl reload nginx

Web服务器需要重新加载才能获取新证书。

而已! 我希望本教程可以帮助您在具有Apache或Nginx的Ubuntu 16.04上安装Sonerezh音乐流服务器。 您可能还想了解如何安装Subsonic音乐流服务器。

Sidebar