GNU/Linux >> Linux Esercitazione >  >> Debian

Gestisci il tuo sito Web di condivisione video con YouPHPTube su Debian 10 Buster

Questo tutorial ti mostrerà come eseguire il tuo sito Web di condivisione video con YouPHPTube su Debian 10 Buster. YouPHPTube è un'alternativa open source self-hosted ai siti Web di condivisione video come YouTube, Vimeo, ecc. Con YouPHPTube puoi caricare video sul tuo server e condividerli con Internet.

Funzionalità di YouTube

  • 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, che ti consente di sincronizzare i tuoi video con Youtube
  • Transcodifica più formati di file multimediali in file MP4, WebM e MP3
  • Supporta Amazone S3 (servizio di archiviazione semplice)
  • Layout del sito reattivo. YouPHPTube 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 nelle statistiche di YouPHPTube.
  • Estendi le funzionalità del sito con i plug-in.
  • Ottimizzato SEO
  • App iOS e Android disponibili

Requisiti del server YouTube

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 YouPHPTube su Debian 10 Buster

YouPHPTube 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 Debian 10 Buster

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

  • Come installare lo stack LEMP (Nginx, MariaDB, PHP) su Debian 10 Buster

Nota :Il supporto di YouPHPTube con Nginx è solo sperimentale. Potresti 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.

YouPHPTube è composto da due parti.

  • La parte principale è il server streamer 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 encoder.youphptube.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 YouPHPTube su Debian 10 Buster Server

Accedi al tuo server Debian 10 Buster tramite SSH. Quindi vai alla directory principale del Web.

cd /var/www/

Clona il repository di streamer YouPHPTube da Github.

sudo apt install git
sudo git clone https://github.com/YouPHPTube/YouPHPTube.git

Quindi vai nella directory.

cd YouPHPTube/

Clona il repository dell'encoder YouPHPTube da Github.

sudo git clone https://github.com/YouPHPTube/YouPHPTube-Encoder.git

Verrà salvato come YouPHPTube-Encoder . Lo rinominiamo in upload , in modo che gli utenti possano avere un'idea migliore a cosa serve questo URL durante il caricamento dei video.

sudo mv YouPHPTube-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/YouPHPTube/ -R

Passaggio 2:installa le dipendenze

YouPHPTube utilizza FFmpeg per codificare i video. Possiamo facilmente installare FFmpeg dal repository Debian 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.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline php7.3-curl php7.3-gd php7.3-xml

Per recuperare video da altri siti, dobbiamo installare YouTube-DL. Sebbene sia incluso nel repository Debian, 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

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 YouTube. Questo tutorial nomina il database YouPHPTube . Puoi usare il nome che preferisci.

create database YouPHPTube;

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 youphptube@localhost identified by 'your-password';

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

grant all privileges on YouPHPTube.* to youphptube@localhost;

Dobbiamo anche creare un database separato per il codificatore.

create database YouPHPTubeEncoder;

Crea un utente per questo database.

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

Concedi privilegi.

grant all privileges on YouPHPTubeEncoder.* to encoder@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 YouPHPTube con un editor di testo a riga di comando come Nano.

sudo nano /etc/apache2/sites-available/youphptube.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. Tieni inoltre presente che la directory principale 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/YouPHPTube

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

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

</VirtualHost>

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

sudo a2ensite youphptube.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 youphptube.conf file in /etc/nginx/conf.d/ directory.

sudo nano /etc/nginx/conf.d/youphptube.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. Nota inoltre che la directory radice del documento fa distinzione tra maiuscole e minuscole.

server {
    listen      80;
    server_name tube.yourdomain.com;

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

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

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.3-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 Debian 10 Buster.

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 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.3/apache2/php.ini

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

sudo nano /etc/php/7.3/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.3-fpm

Ora aggiorna la pagina della procedura guidata di installazione di YouPHPTube. Il tuo server dovrebbe soddisfare tutti i requisiti. Ora sul lato destro, puoi inserire un titolo per il tuo sito di video. Inserisci il nome del database di YouPHPTube, l'utente e la password che hai creato in precedenza. (Nota:dovresti usare il database principale, non il database dell'encoder. Fai attenzione anche alla distinzione tra maiuscole e minuscole.) E imposta una password di amministratore di sistema.

Fai clic su Install now e YouTube dovrebbero essere installati correttamente.

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

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

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

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 YouPHPTube 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.3/apache2/php.ini

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

sudo nano /etc/php/7.3/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.3-fpm

Ora aggiorna la pagina della procedura guidata di installazione di YouPHPTube Encoder. Il tuo server dovrebbe soddisfare tutti i requisiti. Ora sul lato destro, devi inserire il nome del database di YouPHPTubeEncoder, 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.

Fai clic sul pulsante Installa ora e YouPHPTube Encoder verrà installato.

Rimuovere la directory di installazione.

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

E vai alla pagina principale.

Passaggio 8:modifica l'URL dell'encoder

Per impostazione predefinita, YouPHPTube utilizza il codificatore pubblico per caricare i video. Per utilizzare il tuo codificatore, accedi come amministratore in YouPHPTube (non codificatore YouPHPTube) e vai al pannello di amministrazione dal pannello di amministrazione sul lato sinistro.

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 tuo server.

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.

  • Come configurare rapidamente un server di posta su Debian 9 con Modoboa

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

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

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. (È scritto per Ubuntu, ma funziona anche su Debian 10 Buster.)

  • Come aumentare facilmente le prestazioni di rete di Ubuntu 16.04/18.04 abilitando TCP BBR

App mobili

Puoi scaricare l'app Android gratuita o l'app iOS effettuando una ricerca su YouPHPTube 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 pagina principale di YouPHPTube non è riuscita 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/YouPHPTube/

Dovresti usare

DocumentRoot /var/www/YouPHPTube

Se il tuo codificatore non funziona correttamente, puoi controllare il file di registro su /var/www/YouPHPTube/upload/videos/youphptube.log .

Altre curiosità

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

cd /var/www/YouPHPTube/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 YouPHPTube, 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

Debian
  1. Crea il tuo server di streaming video con Linux

  2. Passaggi di installazione di Debian 10 (Buster) con schermate

  3. Come proteggere il tuo server con badIPs.com e segnalare gli IP con Fail2ban su Debian

  4. Come installare MySQL Server su Debian 10 Buster

  5. Configura un server di posta con PostfixAdmin su Debian 9

Come configurare Samba Server con Debian 11

Come installare un server minimo Debian 10 (Buster).

Come eseguire il proprio server dei nomi con ISPConfig e providerdomain.de (Schlund)

Come eseguire il tuo server Git con GitlabHQ su Ubuntu 14.04

Procedura:proteggere il tuo server Ubuntu o Debian con IPTables

Server Freenas NAS fai-da-te - Costruisci il tuo NAS con Freenas