GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Sonerezh Music Streaming Server su Ubuntu 16.04 con Apache o Nginx

Sonerezh è un server di streaming musicale basato sul Web self-hosted scritto in PHP e HTML5. È leggero rispetto a Subsonic che è scritto in Java. Sonerezh è un software open source, distribuito secondo i termini di AGPL. Questo tutorial ti mostrerà come installare Sonerezh su Ubuntu 16.04 con Apache o Nginx.

Caratteristiche di Sonerezh:

  • Interfaccia web moderna e semplice da usare
  • Gestione playlist:aggiungi titoli, album e artisti alle tue playlist.
  • Condividi musica tramite il sistema di gestione degli utenti
  • Estrazione automatica dei metadati e importazione di file
  • Transcodifica automatica in mp3
  • Motore di ricerca semplice

Con Sonerezh puoi ascoltare la tua musica ovunque ti trovi con un browser web e una connessione Internet.

Per seguire questo tutorial, dovrai avere installato LAMP o LEMP su Ubuntu 16.04. Se non l'hai già fatto, dai un'occhiata ai seguenti tutorial.

  • Come installare LAMP (Apache, MariaDB, PHP7) su Ubuntu 16.04
  • Come installare LEMP (Nginx, MariaDB, PHP7-FPM) su Ubuntu 16.04

Una volta installato LAMP o LEMP, torna qui e continua a leggere.

Installazione di Sonerezh su Ubuntu 16.04

L'ultima versione stabile è Sonerezh 1.1.3, rilasciata il 19 dicembre 2016. Puoi scaricarla con Git dal repository Github.

Cambia directory in /var/www/ .

cd /var/www/

Installa git e usa git per clonare Sonerezh da Github.

sudo apt install git

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

Imposta il server web (www-data ) come proprietario della nuova directory.

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

Crea database MariaDB/MySQL per Sonerezh

Accedi al server del database MariaDB/MySQL con il seguente comando:

mysql -u root -p

Quindi creare un database per Sonerezh. Questo tutorial nomina il database sonerezh . Puoi usare il nome che preferisci.

create database sonerezh;

Crea l'utente del database e concedi a questo utente tutti i privilegi sul database sonerezh. Sostituisci your-password con la tua password preferita.

grant all privileges on sonerezh.* to sonerezh@localhost identified by 'your-password';

Elimina i privilegi ed esci.

flush privileges;

exit;

Configurazione dell'host virtuale Apache

Creeremo un sonerezh.conf file in /etc/apache2/sites-available/ directory.

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

Copia e incolla le seguenti righe nel file. Sostituisci il testo rosso con il tuo nome di dominio preferito. Devi anche creare un record A per il nome di dominio. Se installi Sonerezh sul tuo server di casa, devi anche configurare il port forwarding nel router.

<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>

Salva e chiudi il file.

sudo a2ensite sonerezh.conf

Quindi abilita il modulo mod_rewrite e ricarica il server Web Apache per rendere effettive le modifiche.

sudo a2enmod rewrite

sudo systemctl reload apache2

Ora vai su music.your-domain.com/install . Vedrai il programma di installazione web Sonerezh, che elenca alcuni requisiti. Per soddisfare questi requisiti, esegui il comando seguente.

sudo apt install php7.0-gd libav-tools

Abilitazione HTTPS (Apache)

Per completare l'installazione, è necessario inserire i dettagli del database e creare un account amministratore. Ma prima di farlo, installiamo un certificato TLS gratuito da Let's Encrypt in modo che ciò che inserisci nel programma di installazione web non venga annusato.

Installa il client certbot (Let's Encrypt).

sudo apt install letsencrypt python-letsencrypt-apache

Ora emetti il ​​seguente comando per ottenere un certificato TLS/SSL gratuito. Sostituisci il testo di colore rosso con i tuoi dati effettivi.

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

Spiegazione:

  • –apache :usa il plugin Apache per ottenere e installare automaticamente il certificato.
  • –accetto :Accetta i termini di servizio.
  • –reindirizzamento :Reindirizza tutto il traffico HTTP su HTTPS per l'host virtuale
  • –hsts : Forzare il browser a utilizzare sempre TLS.

Entro pochi secondi dovresti vedere quanto segue, il che significa che è stato ottenuto e installato un certificato TLS/SSL gratuito sul tuo server Apache.

Le configurazioni TLS/SSL predefinite ottengono un punteggio A+ nel test SSL Labs.

Configurazione di Nginx Server Block

Se usi Nginx invece di Apache, crea un file di blocco del server Nginx.

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

Copia e incolla le seguenti righe nel file. Sostituisci il testo rosso con il tuo nome di dominio preferito. Devi anche creare un record A per il nome di dominio. Se installi Sonerezh sul tuo server di casa, devi anche configurare il port forwarding nel router.

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;
    }
}

Salva e chiudi il file. Quindi prova la configurazione.

sudo nginx -t

Se il test ha esito positivo, ricarica Nginx.

sudo systemctl reload nginx

Ora vai su music.your-domain.com/install . Vedrai il programma di installazione web Sonerezh, che elenca alcuni requisiti. Per soddisfare questi requisiti, esegui il comando seguente.

sudo apt install php7.0-gd libav-tools

Abilitazione HTTPS (Nginx)

Per completare l'installazione, è necessario inserire i dettagli del database e creare un account amministratore. Ma prima di farlo, installiamo un certificato TLS gratuito da Let's Encrypt in modo che ciò che inserisci nel programma di installazione web non venga annusato.

Installa il client certbot (Let's Encrypt).

sudo apt install letsencrypt

Ora emetti il ​​seguente comando per ottenere un certificato TLS/SSL gratuito. Sostituisci il testo di colore rosso con i tuoi dati effettivi.

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

Entro pochi secondi dovresti vedere quanto segue, il che significa che è stato ottenuto un certificato TLS/SSL gratuito.

Ora modifica il file di blocco del server Sonerezh per configurare TLS.

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

Modifica le configurazioni come segue.

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;
    }
}

Salva e chiudi il file. Quindi prova la configurazione.

sudo nginx -t

Se il test ha esito positivo, ricarica Nginx.

sudo systemctl reload nginx

Completa l'installazione

Ora la tua connessione è abilitata per HTTPS, puoi inserire i dettagli del tuo database nel programma di installazione web. E crea anche un account amministratore e specifica la cartella della musica.

Server di streaming musicale basato sul Web Sonerezh

Rinnovo automatico del certificato

Per rinnovare automaticamente il certificato Let's Encrypt, modifica il file crontab dell'utente root.

sudo crontab -e

Aggiungi la riga seguente alla fine del file.

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

Se usi Nginx, sostituisci apache2 con nginx.

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

È necessario ricaricare il server Web per prelevare il nuovo certificato.

Questo è tutto! Spero che questo tutorial ti abbia aiutato a installare il server di streaming musicale Sonerezh su Ubuntu 16.04 con Apache o Nginx. Potresti anche voler controllare come installare il server di streaming musicale Subsonic.


Ubuntu
  1. Come installare Nginx su Ubuntu 20.04

  2. Come installare Jenkins Automation Server con Apache su Ubuntu 16.04

  3. Come installare il server HTTP Git con Nginx su Ubuntu 16.04

  4. Come installare Koel Music Streaming Server su Ubuntu 18.04

  5. Come installare HTTP Git Server con Nginx su Ubuntu 20.04

Installa Roundcube Webmail su Ubuntu 20.04 con Apache/Nginx

Come installare InvoiceNinja su Ubuntu 18.04 Server con Apache/Nginx

Come installare InvoiceNinja su Ubuntu 20.04 Server con Apache/Nginx

Come installare phpMyAdmin con Apache su Ubuntu 22.04 LTS

Come installare Nginx su Ubuntu

Come installare LetsEncrypt con Nginx su Ubuntu 15.04