GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare AVideo/YouPHPTube sul server Ubuntu 18.04

Questo tutorial ti mostrerà come eseguire il tuo sito Web di condivisione video con AVideo (precedentemente YouPHPTube) su Ubuntu 18.04. AVideo è un'alternativa open source e self-hosted ai siti Web di condivisione video come YouTube, Vimeo, ecc. Con AVideo, gli utenti possono caricare video sul tuo server e condividerli con Internet.

Caratteristiche video

  • Live streaming illimitati e simultanei e puoi avere utenti illimitati connessi a ogni live streaming.
  • Importa e codifica video da altri siti direttamente da Internet
  • Codifica in blocco dalla directory video locale
  • Crea video privati
  • Funzione totalmente integrata con Youtube, sincronizzando i tuoi video con Youtube
  • Transcodifica più formati di file multimediali in file MP4, WebM e MP3
  • Supporta Amazon S3 (servizio di archiviazione semplice)
  • Layout del sito reattivo. AVideo sembra incredibile su qualsiasi dispositivo. (Puoi scegliere il layout in stile YouTube o Netfilx.)
  • Canali utente e playlist utente
  • Iscriviti ai canali che ti piacciono
  • Puoi monitorare il rendimento dei tuoi video con metriche e rapporti aggiornati in AVideo Statistics.
  • Estendi le funzionalità del sito con i plug-in.
  • Ottimizzato SEO
  • App iOS e Android disponibili

Requisiti del server video

Innanzitutto, dovresti sapere che una CPU single-core non è valida per un sito Web di condivisione video, perché il processo di codifica utilizzerà molte risorse della CPU.

Quindi scegli le specifiche del server in base al numero di utenti del tuo sito.

  • Se vuoi usarlo solo per condividere i tuoi video, hai bisogno di un server con almeno 2 core CPU e 4 GB di RAM. Puoi acquistare un potente VPS (virtual private server) da Contabo con costi molto contenuti.
  • Se prevedi che il tuo sito abbia dozzine di utenti, puoi prendere in considerazione il VPS extra large di Contabo, che ha 10 core CPU, 60 GB di RAM, velocità della porta 1 Gbit/s, 1,6 TB di spazio su disco, traffico illimitato ma costa solo 26,99 Euro/mese.
  • Quando il tuo sito cresce oltre, dovresti acquistare un server dedicato.

Requisiti software per l'installazione di AVideo su Ubuntu 18.04

AVideo richiede PHP e MySQL/MariaDB. Per seguire questo tutorial, dovresti aver già impostato uno stack LAMP o uno stack LEMP. Se preferisci utilizzare il server Web Apache, installa lo stack LAMP.

  • Come installare lo stack LAMP (Apache, MariaDB, PHP) su Ubuntu 18.04

Se preferisci utilizzare il server web Nginx, installa lo stack LEMP.

  • Come installare lo stack LEMP (Nginx, MariaDB, PHP) su Ubuntu 18.04

Nota :Il supporto video con Nginx è solo sperimentale. Il tuo sito potrebbe avere problemi se usi Nginx .

Hai anche bisogno di un nome di dominio. Ho registrato il mio nome di dominio su NameCheap perché il prezzo è basso e offrono protezione della privacy a Whois gratuita per tutta la vita.

Il video è composto da due parti.

  • La parte principale è il server di streaming front-end, che consente agli utenti di guardare i video esistenti.
  • L'altra parte è il codificatore, che consente agli utenti di caricare i propri video.

Il codificatore pubblico utilizza il nome di dominio https://encoder1.avideo.com . Se non desideri che gli utenti lascino il tuo sito durante il caricamento di video, devi configurare il tuo codificatore privato. Ti mostrerò come in questo articolo. Senza ulteriori indugi, iniziamo.

Passaggio 1:scarica un video su Ubuntu 18.04 Server

Accedi al tuo server Ubuntu 18.04 tramite SSH. Quindi vai alla directory principale del Web.

cd /var/www/

Clona il repository di streamer AVideo da Github.

sudo apt install git
sudo git clone https://github.com/WWBN/AVideo.git

Quindi vai nella directory.

cd AVideo/

Clona il repository di codificatore AVideo da Github.

sudo git clone https://github.com/WWBN/AVideo-Encoder.git

Verrà salvato come AVideo-Encoder . Lo rinominiamo in upload , in modo che gli utenti possano avere un'idea migliore dell'utilità di questo URL durante il caricamento dei video.

sudo mv AVideo-Encoder upload

Successivamente, dobbiamo impostare www-data (l'utente del server web) come proprietario della radice web.

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

Passaggio 2:installa le dipendenze

AVideo usa FFmpeg per codificare i video. Possiamo facilmente installare FFmpeg dal repository Ubuntu predefinito.

sudo apt install ffmpeg

Per leggere e scrivere metainformazioni nei file multimediali, dobbiamo installare libimage-exiftool-perl pacchetto.

sudo apt install libimage-exiftool-perl

Devi anche installare alcune estensioni PHP comuni.

sudo apt install php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-curl php7.2-gd php7.2-xml

Per recuperare video da altri siti, dobbiamo installare YouTube-DL. Sebbene sia incluso nel repository di Ubuntu, ma è obsoleto. Installeremo YouTube-DL dall'indice dei pacchetti Python, che contiene sempre l'ultima versione di YouTube-DL.

sudo apt install python3-pip
sudo -H pip3 install youtube-dl

È molto importante utilizzare la versione più recente, altrimenti potresti non essere in grado di scaricare video da altri siti. Possiamo creare un processo Cron per controllare e installare automaticamente l'ultima versione.

sudo crontab -e

Aggiungi la riga seguente alla fine del file Crontab per provare ad aggiornare YouTube-DL ogni giorno.

@daily sudo -H pip3 install --upgrade youtube-dl > /dev/null

Fase 3:crea database e utente in MariaDB

Prima di creare il database e l'utente, è necessario modificare alcune impostazioni in MariaDB. Modifica il file di configurazione.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

AVideo utilizzerà un prefisso chiave indice grande nella banca dati. Tuttavia, MariaDB 10.1 utilizza il COMPACT formato riga, che non supporta il prefisso della chiave dell'indice di grandi dimensioni. Possiamo configurare MariaDB per utilizzare il DYNAMIC formato riga, che è l'impostazione predefinita nelle versioni più recenti di MariaDB, aggiungendo le seguenti righe in InnoDB sezione sotto il [mysqld] unità nel file.

# The Antelope file format doesn't support dynamic row format, we must use the
# Barracuda file format.
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda

# Dynamic row format is only supported if innodb_file_per_table is set to ON.
innodb_file_per_table = ON

# Set dynamic as the default row format, which supports large index key prefix.
innodb_default_row_format = dynamic

# Enable large prefix
innodb_large_prefix = ON

Salva e chiudi il file. Quindi riavvia MariaDB.

sudo systemctl restart mariadb

Accedi al server del database MariaDB con il seguente comando. Dal momento che MariaDB ora sta usando unix_socket plug-in per l'autenticazione dell'accesso utente, non è necessario inserire la password di root di MariaDB. Dobbiamo solo anteporre mysql comando con sudo .

sudo mysql

Quindi crea un database per AVideo. Questo tutorial nomina il database AVideo . Puoi usare il nome che preferisci.

create database AVideo;

Crea l'utente del database. Anche in questo caso, puoi utilizzare il tuo nome preferito per questo utente. Sostituisci your-password con la tua password preferita.

create user AVideo@localhost identified by 'your-password';

Concedi a questo utente tutti i privilegi su AVideo banca dati.

grant all privileges on AVideo.* to AVideo@localhost;

Dobbiamo anche creare un database separato per il codificatore.

create database AVideoEncoder;

Crea un utente per questo database.

create user AVideoEncoder@localhost identified by 'your-password';

Concedi privilegi.

grant all privileges on AVideoEncoder.* to AVideoEncoder@localhost;

Svuota la tabella dei privilegi ed esci.

flush privileges;

exit;

Fase 4:configurazione del server Web

Possiamo usare il web server Apache o Nginx.

Apache

Se preferisci Apache, crea un file host virtuale per AVideo con un editor di testo a riga di comando come Nano.

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

Inserisci il seguente testo nel file. Sostituisci il testo di colore rosso con i tuoi dati effettivi. Uso un sottodominio in questo tutorial. Se preferisci, puoi utilizzare il tuo nome di dominio principale. Non dimenticare di impostare il record DNS A per il nome di dominio nel tuo gestore di record DNS. Inoltre, tieni presente che la directory radice del documento fa distinzione tra maiuscole e minuscole e non dovresti aggiungere una barra alla fine.

<VirtualHost *:80>
    ServerName tube.yourdomain.com
    DocumentRoot /var/www/AVideo

    <Directory /var/www/AVideo>
       DirectoryIndex index.php
       Options +FollowSymLinks
       AllowOverride All
       Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/avideo.error.log
    CustomLog ${APACHE_LOG_DIR}/avideo.access.log combined

</VirtualHost>

Salva e chiudi il file. Quindi abilita questo host virtuale.

sudo a2ensite avideo.conf

Dobbiamo abilitare il modulo di riscrittura.

sudo a2enmod rewrite

Riavvia Apache per rendere effettive le modifiche.

sudo systemctl restart apache2

Ora visita tube.yourdomain.com e verrai reindirizzato alla pagina della procedura guidata di configurazione (tube.yourdomain.com/install/index.php ). Se vedi la pagina Apache predefinita invece della procedura guidata di configurazione, devi disabilitare l'host virtuale predefinito.

sudo a2dissite 000-default.conf

E riavvia Apache.

Prima di inserire qualsiasi informazione nella procedura guidata di configurazione, è necessario abilitare HTTPS.

Nginx

Se preferisci Nginx, crea un avideo.conf file in /etc/nginx/conf.d/ directory.

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

Inserisci il seguente testo nel file. Sostituisci il testo di colore rosso con i tuoi dati effettivi. Uso un sottodominio in questo tutorial. Se preferisci, puoi utilizzare il tuo nome di dominio principale. Non dimenticare di impostare il record DNS A per il nome di dominio nel tuo gestore di record DNS. Inoltre, nota che la directory principale del documento fa distinzione tra maiuscole e minuscole.

server {
    listen      80;
    listen      [::]:80;
    server_name tube.yourdomain.com;

    root /var/www/AVideo;
    index index.php index.html index.htm;
    charset utf-8;
    client_max_body_size 2G;

    access_log  /var/log/nginx/avideo.access.log;
    error_log   /var/log/nginx/avideo.error.log;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    # translating Apache rewrite rules in the .htaccess file to Nginx rewrite rules
    location / {
        rewrite ^/$ /view/ last;
    }
    location /bootstrap {
        rewrite ^/bootstrap/(.+)$ /view/bootstrap/$1 last;
    }
    location /js {
        rewrite ^/js/(.+)$ /view/js/$1 last;
    }
    location /css {
        rewrite ^/css/(.+)$ /view/css/$1 last;
    }
    location /img {
        rewrite ^/img/(.+)$ /view/img/$1 last;
    }
    location /page {
        rewrite ^/page/([0-9]+)/?$ /view/?page=$1 last;
    }
    location /videoOnly {
        rewrite ^/videoOnly/?$ /view/?type=video last;
    }
    location /audioOnly {
        rewrite ^/audioOnly/?$ /view/?type=audio last;
    }
    location = /download {
        rewrite ^(.*)$ /view/downloadExternalVideo.php last;
    }
    location = /downloadNow {
        rewrite ^(.*)$ /objects/downloadVideo.php last;
    }
    location = /getDownloadProgress {
        rewrite ^(.*)$ /objects/downloadVideoProgress.php last;
    }
    location = /about {
        rewrite ^(.*)$ /view/about.php last;
    }
    location = /contact {
        rewrite ^(.*)$ /view/contact.php last;
    }
    location = /sendEmail {
        rewrite ^(.*)$ /objects/sendEmail.json.php last;
    }
    location = /captcha {
        rewrite ^(.*)$ /objects/getCaptcha.php last;
    }
    location /monitor {
        rewrite ^/monitor/(.+)$ /objects/ServerMonitor/$1 last;
    }
    location /cat {
        rewrite ^/cat/([A-Za-z0-9-]+)/?$ /view/?catName=$1 last;
    }
    location /video {
        rewrite ^/video/([A-Za-z0-9-_.]+)/?$ /view/?videoName=$1 last;
    }
    location /videoEmbeded {
        rewrite ^/videoEmbeded/([A-Za-z0-9-_.]+)/?$ /view/videoEmbeded.php?videoName=$1 last;
    }
    location = /upload {
        rewrite ^(.*)$ /view/mini-upload-form/ last;
    }
    location = /fileUpload {
        rewrite ^(.*)$ /view/mini-upload-form/upload.php last;
    }
    location /uploadStatu {
        rewrite ^/uploadStatus /view/mini-upload-form/videoConversionStatus.php last;
    }
    location = /user {
        rewrite ^(.*)$ /view/user.php last;
    }
    location = /users {
        rewrite ^(.*)$ /view/managerUsers.php last;
    }
    location = /users.json {
        rewrite ^(.*)$ /objects/users.json.php last;
    }
    location = /updateUser {
        rewrite ^(.*)$ /objects/userUpdate.json.php last;
    }
    location = /savePhoto {
        rewrite ^(.*)$ /objects/userSavePhoto.php last;
    }
    location = /addNewUser {
        rewrite ^(.*)$ /objects/userAddNew.json.php last;
    }
    location = /deleteUser {
        rewrite ^(.*)$ /objects/userDelete.json.php last;
    }
    location = /recoverPass {
        rewrite ^(.*)$ /objects/userRecoverPass.php last;
    }
    location = /saveRecoverPassword {
        rewrite ^(.*)$ /objects/userRecoverPassSave.json.php last;
    }
    location = /signUp {
        rewrite ^(.*)$ /view/signUp.php last;
    }
    location = /createUser {
        rewrite ^(.*)$ /objects/userCreate.json.php last;
    }
    location = /usersGroups {
        rewrite ^(.*)$ /view/managerUsersGroups.php last;
    }
    location = /usersGroups.json {
        rewrite ^(.*)$ /objects/usersGroups.json.php last;
    }
    location = /addNewUserGroups {
        rewrite ^(.*)$ /objects/userGroupsAddNew.json.php last;
    }
    location = /deleteUserGroups {
        rewrite ^(.*)$ /objects/userGroupsDelete.json.php last;
    }
    location = /ads {
        rewrite ^(.*)$ /view/managerAds.php last;
    }
    location = /addNewAd {
        rewrite ^(.*)$ /objects/video_adsAddNew.json.php last;
    }
    location = /ads.json {
        rewrite ^(.*)$ /objects/video_ads.json.php last;
    }
    location = /deleteVideoAd {
        rewrite ^(.*)$ /objects/video_adDelete.json.php last;
    }
    location /adClickLo {
        rewrite ^/adClickLog /objects/video_adClickLog.php last;
    }
    location = /categories {
        rewrite ^(.*)$ /view/managerCategories.php last;
    }
    location = /categories.json {
        rewrite ^(.*)$ /objects/categories.json.php last;
    }
    location = /addNewCategory {
        rewrite ^(.*)$ /objects/categoryAddNew.json.php last;
    }
    location = /deleteCategory {
        rewrite ^(.*)$ /objects/categoryDelete.json.php last;
    }
    location = /orphanFiles {
        rewrite ^(.*)$ /view/orphanFiles.php last;
    }
    location = /mvideos {
         rewrite ^(.*)$ /view/managerVideos.php last;
    }
    location = /videos.json {
        rewrite ^(.*)$ /objects/videos.json.php last;
    }
    location = /deleteVideo {
        rewrite ^(.*)$ /objects/videoDelete.json.php last;
    }
    location = /addNewVideo {
        rewrite ^(.*)$ /objects/videoAddNew.json.php last;
    }
    location = /refreshVideo {
        rewrite ^(.*)$ /objects/videoRefresh.json.php last;
    }
    location = /setStatusVideo {
        rewrite ^(.*)$ /objects/videoStatus.json.php last;
    }
    location = /reencodeVideo {
        rewrite ^(.*)$ /objects/videoReencode.json.php last;
    }
    location = /addViewCountVideo {
        rewrite ^(.*)$ /objects/videoAddViewCount.json.php last;
    }
    location = /saveComment {
        rewrite ^(.*)$ /objects/commentAddNew.json.php last;
    }
    location /comments {
        rewrite ^/comments.json/([0-9]+)$ /objects/comments.json.php?video_id=$1 last;
    }
    location = /login {
        rewrite ^(.*)$ /objects/login.json.php last;
    }
    location = /logoff {
        rewrite ^(.*)$ /objects/logoff.php last;
    }
    location = /like {
        rewrite ^(.*)$ /objects/like.json.php?like=1 last;
    }
    location = /dislike {
        rewrite ^(.*)$ /objects/like.json.php?like=-1 last;
    }
    location /update {
        rewrite ^/update/?$ /update/update.php last;
    }
    location = /siteConfigurations {
        rewrite ^(.*)$ /view/configurations.php last;
    }
    location = /updateConfig {
        rewrite ^(.*)$ /objects/configurationUpdate.json.php last;
    }
    location = /charts {
        rewrite ^(.*)$ /view/charts.php last;
    }

    location = /upload/index.php {
       rewrite ^(.*)$ /upload/view/index.php last;
    }

    location = /upload/isAdmin {
      rewrite ^(.*)$ /upload/view/isAdmin.php last;
   }

   location = /upload/removeStreamer {
     rewrite ^(.*)$ /upload/view/removeStreamer.php last;
   }

  location = /upload/priority {
     rewrite ^(.*)$ /upload/view/priority.php last;
  }

  location = /upload/status {
     rewrite ^(.*)$ /upload/view/status.php last;
  }

  location = /upload/serverStatus {
    rewrite ^(.*)$ /upload/view/status.php?serverStatus=1 last;
  }

  location = /upload/upload {
    rewrite ^(.*)$ /upload/view/upload.php last;
  }

  location = /upload/listFiles.json {
   rewrite ^(.*)$ /upload/view/listFiles.json.php last;
  }

  location = /upload/deleteQueue {
    rewrite ^(.*)$ /upload/view/deleteQueue.php last;
  }

  location = /upload/saveConfig {
    rewrite ^(.*)$ /upload/view/saveConfig.php last;
  }

  location = /upload/youtubeDl.json {
    rewrite ^(.*)$ /upload/view/youtubeDl.json.php last;
  }

  location = /upload/send.json {
    rewrite ^(.*)$ /upload/view/send.json.php last;
  }

  location = /upload/streamers.json {
    rewrite ^(.*)$ /upload/view/streamers.json.php last;
  }

  location = /upload/queue.json {
    rewrite ^(.*)$ /upload/view/queue.json.php last;
  }

  location = /upload/queue {
    rewrite ^(.*)$ /upload/view/queue.php last;
  }

  location = /upload/login {
    rewrite ^(.*)$ /upload/objects/login.json.php last;
  }

  location = /upload/logoff {
    rewrite ^(.*)$ /upload/objects/logoff.json.php last;
  }

  location /upload/ {
    rewrite "^/getImage/([A-Za-z0-9=/]+)/([A-Za-z0-9]{3})$" /upload/objects/getImage.php?base64Url=$1&format=$2 last;
    rewrite "^/getImageMP4/([A-Za-z0-9=/]+)/([A-Za-z0-9]{3})/([0-9.]+)$" /upload/objects/getImageMP4.php?base64Url=$1&format=$2&time=$3 last;
  }

  location /upload/getSpiritsFromVideo {
    rewrite ^/getSpiritsFromVideo/([A-Za-z0-9=/]+)/([0-9]+)/([0-9]+)$ /upload/objects/getSpiritsFromVideo.php?base64Url=$1&tileWidth=$2&totalClips=$3 last;
  }

  location /upload/getLinkInfo {
    rewrite ^/getLinkInfo/([A-Za-z0-9=/]+)$ /upload/objects/getLinkInfo.json.php?base64Url=$1 last;
  }

}

Salva e chiudi il file. Quindi testa la configurazione di Nginx.

sudo nginx -t

Se il test ha esito positivo, ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

Ora visita tube.yourdomain.com e verrai reindirizzato alla pagina della procedura guidata di configurazione (tube.yourdomain.com/install/index.php ). Prima di inserire qualsiasi informazione nella procedura guidata di configurazione, è necessario abilitare HTTPS.

Fase 5:abilitazione di HTTPS

Per crittografare il traffico HTTP, possiamo abilitare HTTPS installando un certificato TLS gratuito emesso da Let's Encrypt. Esegui il comando seguente per installare il client Let's Encrypt (certbot) sul server Ubuntu 18.04.

sudo apt install certbot

Se usi Apache, devi anche installare il plugin Certbot Apache.

sudo apt install python3-certbot-apache

Ed esegui questo comando per ottenere e installare il certificato TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d tube.yourdomain.com

Se usi Nginx, installa il plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Quindi, esegui il comando seguente per ottenere e installare il certificato TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d tube.yourdomain.com

Dove

  • --nginx :usa il plugin nginx.
  • --apache :usa il plugin Apache.
  • --agree-tos :Accetta i termini di servizio.
  • --redirect :Forza HTTPS tramite reindirizzamento 301.
  • --hsts :aggiungi l'intestazione Strict-Transport-Security a ogni risposta HTTP. Forzare il browser a utilizzare sempre TLS per il dominio. Difende dallo stripping SSL/TLS.
  • --staple-ocsp :Abilita la pinzatura OCSP. Una risposta OCSP valida viene pinzata al certificato offerto dal server durante TLS.

Il certificato dovrebbe ora essere ottenuto e installato automaticamente.

Fase 6:termina l'installazione con l'installazione guidata

Ora vai su tube.yourdomain.com/install/index.php e apparirà la procedura guidata di configurazione. Sul lato sinistro puoi vedere se il tuo server soddisfa i requisiti.

Se usi Nginx, puoi ignorare il seguente messaggio.

Your server is nginx/1.14.2, you must install Apache.

Come puoi vedere, il PHP post_max_size dovrebbe essere almeno 100M e upload_max_filesize dovrebbe essere almeno 100M. Dobbiamo modificare il php.ini file per modificare i due valori. Se usi il server web Apache, allora

sudo nano /etc/php/7.2/apache2/php.ini

Se usi Nginx con PHP-FPM, devi modificare la versione FPM del file php.ini.

sudo nano /etc/php/7.2/fpm/php.ini

Trova le due righe seguenti.

post_max_size = 8M
upload_max_filesize = 2M

Modifica i valori in base alla dimensione del file video che intendi caricare. Ad esempio, se consenti il ​​caricamento di file video 1G,

post_max_size = 1024M
upload_max_filesize = 1024M

Salva e chiudi il file. Riavvia Apache per rendere effettive le modifiche.

sudo systemctl restart apache2

Se usi Nginx con PHP-FPM, riavvia PHP-FPM.

sudo systemctl restart php7.2-fpm

Ora aggiorna la pagina della procedura guidata di installazione di AVideo. Il tuo server dovrebbe soddisfare tutti i requisiti. Ora sul lato destro, puoi inserire un titolo nel tuo sito di video e impostare una password di amministratore di sistema. Inserisci il nome del database AVideo, l'utente e la password che hai creato in precedenza. (Nota:dovresti usare il database principale, non il database del codificatore. Tieni anche presente la distinzione tra maiuscole e minuscole.)

Fai clic su Install now pulsante e AVideo dovrebbero essere installati correttamente.

Ora dobbiamo rimuovere il /var/www/AVideo/install/ directory.

sudo rm /var/www/AVideo/install/ -r

Fai clic su Go to the main page e vedrai la pagina principale di AVideo.

Puoi fare clic sul menu a discesa a sinistra e accedere come admin utente e con la password che hai impostato pochi istanti fa.

Fase 7:imposta l'encoder

Vai a https://tube.yourdomain.com/upload/ . Verrai reindirizzato alla procedura guidata di configurazione dell'encoder. Se non vieni reindirizzato automaticamente, puoi inserire manualmente l'URL della procedura guidata di configurazione.

https://tube.yourdomain.com/upload/install/index.php/

Il lato sinistro ti mostrerà se il tuo server soddisfa i requisiti di AVideo Encoder.

Se usi Nginx, puoi ignorare il seguente messaggio.

Your server is nginx/1.14.2, you must install Apache.

Come puoi vedere il PHP max_execution_time dovrebbe essere almeno 7200 e PHP memory_limit dovrebbe essere almeno 512M. Dobbiamo modificare il php.ini file per modificare i due valori. Se usi il server web Apache, allora

sudo nano /etc/php/7.2/apache2/php.ini

Se usi Nginx con PHP-FPM, devi modificare la versione FPM del file php.ini.

sudo nano /etc/php/7.2/fpm/php.ini

Trova le due righe seguenti.

max_execution_time = 30
memory_limit = 128M

Modifica i valori.

max_execution_time = 7200
memory_limit = 512M

Nota che se la codifica video successiva si interrompe a metà, devi aumentare il max_execution_time o aggiorna la tua CPU.

Salva e chiudi il file. Riavvia Apache per rendere effettive le modifiche.

sudo systemctl restart apache2

Se usi Nginx con PHP-FPM, riavvia PHP-FPM.

sudo systemctl restart php7.2-fpm

Ora aggiorna la pagina della procedura guidata di installazione di AVideo Encoder. Il tuo server dovrebbe soddisfare tutti i requisiti. Ora sul lato destro, devi inserire il nome del database di AVideoEncoder, l'utente e la password che hai creato in precedenza. Fai attenzione alla distinzione tra maiuscole e minuscole e inserisci la password di amministratore del sito streamer.

Fare clic sul pulsante Installa ora e verrà installato AVideo Encoder.

Rimuovere la directory di installazione.

sudo rm /var/www/AVideo/upload/install/ -r

E vai alla pagina principale.

Passaggio 8:modifica l'URL dell'encoder

Per impostazione predefinita, AVideo utilizza il codificatore pubblico per caricare i video. Per utilizzare il tuo codificatore, accedi come amministratore in AVideo (non in AVideo Encoder) e vai al pannello di amministrazione dalla barra laterale sinistra.

Vai a settings -> site settings -> advanced configuration . Modifica l'URL del codificatore in https://tube.yourdomain.com/upload/ . Salva le impostazioni, svuota la directory della cache e genera una nuova mappa del sito.

Ora esci e accedi nuovamente. Se fai clic su encode video and audio pulsante nell'angolo in alto a destra, verrai indirizzato al tuo codificatore per caricare i video. Va notato che la velocità di codifica dipende dalla potenza della CPU del server. Non richiede molta RAM perché il codificatore copierà il video in un file temporaneo nella directory di caricamento (/var/www/AVideo/upload/videos ).

Fase 9:Configura SMTP

Per inviare e-mail (come la registrazione dell'account, la reimpostazione della password, ecc.), è necessario configurare un server SMTP. Se desideri utilizzare il tuo server di posta per inviare e-mail ai client, consulta il seguente articolo per configurare il tuo server di posta. Nota che consiglio vivamente di eseguire il server di posta iRedMail su un nuovo sistema operativo pulito. L'installazione di iRedMail su un sistema operativo che dispone di altre applicazioni Web può non riuscire e probabilmente interrompere le applicazioni esistenti.

  • Come configurare facilmente un server di posta elettronica su Ubuntu 18.04 con iRedMail

Se desideri utilizzare un servizio di inoltro SMTP, ti consiglio Mailjet. Puoi seguire il tutorial qui sotto per configurare l'inoltro SMTP sul tuo server AVideo.

  • Come configurare l'inoltro SMTP di Postfix su Ubuntu con Mailjet

Puoi testare l'invio di e-mail andando al admin panel -> Setttings -> Site Settings -> Advanced Configuration , puoi trovare la configurazione SMTP. Usa le seguenti impostazioni.

  • Abilita SMTP.
  • Abilita autenticazione SMTP.
  • Usa tls in SMTP sicuro.
  • Usa 587 come porta SMTP.
  • Inserisci il nome host del tuo server di posta.
  • Inserisci un nome utente e una password SMTP.

Fai clic su Save per salvare le impostazioni, quindi fare clic su Test Email per vedere se funziona.

Abilita TCP BBR

Per un server di streaming video, si consiglia di abilitare l'algoritmo di controllo della congestione TCP BBR nel kernel Linux seguendo le istruzioni nell'articolo seguente.

  • Come aumentare facilmente le prestazioni della rete Ubuntu abilitando TCP BBR

App mobili

Puoi scaricare l'app Android gratuita o l'app iOS cercando AVideo su Google Play Store o YPT Mobile nell'Apple Store. L'app mobile white label richiede una licenza a pagamento.

Risoluzione dei problemi

Se la tua pagina principale di AVideo non riesce a caricare alcune risorse CSS e JavaScript,

È probabile che tu abbia aggiunto una barra in avanti aggiuntiva nel file dell'host virtuale Apache o Nginx per la directory principale del Web. Invece di usare

DocumentRoot /var/www/AVideo/

Dovresti usare

DocumentRoot /var/www/AVideo

Se il sito Web principale non funziona correttamente, puoi controllare il file di registro in /var/www/AVideo/videos/avideo.log . Se il tuo codificatore non funziona correttamente, puoi controllare il file di registro su /var/www/AVideo/upload/videos/avideo.log .

Altre curiosità

Durante la codifica dei video, puoi scegliere le risoluzioni (bassa, SD, HD). Se utilizzi AVideo come sito di streaming video personale, ti consiglio di scegliere la risoluzione HD solo per ridurre il tempo di codifica e risparmiare spazio su disco. Se hai già codificato i video in tutte e 3 le risoluzioni, puoi andare nella directory dei video AVideo (/var/www/AVideo/videos) ed eliminare i video a bassa risoluzione e SD.

cd /var/www/AVideo/videos/
sudo rm *Low.mp4
sudo rm *SD.mp4

Come scaricare tutti i video dal tuo sito di video

Puoi usare il youtube-dl utilità da riga di comando per scaricare tutti i video. Innanzitutto, devi andare alla dashboard di AVideo, quindi andare alla pagina dell'elenco dei video e scorrere fino in fondo, fare clic su scarica l'elenco dei video (file permalink .txt) pulsante. Vedrai un elenco di URL per tutti i video.

Quindi, apri un terminale e crea un file txt con un editor di testo, copia gli URL dalla pagina Web e incollali nel file. Quindi puoi eseguire il seguente comando per scaricare i video. Sostituisci video-list.txt con il tuo nome file.

youtube-dl -a video-list.txt

Ubuntu
  1. Come installare MySQL su Ubuntu 18.04

  2. Come installare il server Minecraft su Ubuntu 18.04

  3. Come installare Nginx su Ubuntu 20.04

  4. Come installare MariaDB su Ubuntu 20.04

  5. Come installare Zimbra 8.6 su Ubuntu 14.04 Server

Come installare Cockpit su Ubuntu 20.04

Come installare il server VNC su Ubuntu 20.04

Come installare il server HTTrack su Ubuntu 20.04

Come installare Snappass su Ubuntu

Come installare AVideo/YouPHPTube sul server CentOS 8

Come installare AVideo/YouPHPTube sul server Ubuntu 20.04