GNU/Linux >> Tutoriels Linux >  >> Debian

Exécutez votre propre site Web de partage de vidéos avec YouPHPTube sur Debian 10 Buster

Ce didacticiel va vous montrer comment exécuter votre propre site Web de partage de vidéos avec YouPHPTube sur Debian 10 Buster. YouPHPTube est une alternative open source et auto-hébergée aux sites de partage de vidéos comme YouTube, Vimeo, etc. Avec YouPHPTube, vous pouvez télécharger une vidéo sur votre propre serveur et la partager avec Internet.

Fonctionnalités de YouPHPTube

  • Diffusions en direct illimitées et simultanées et vous pouvez avoir un nombre illimité d'utilisateurs connectés à chaque diffusion en direct.
  • Importer et encoder des vidéos d'autres sites directement depuis Internet
  • Encodage en masse à partir du répertoire vidéo local
  • Créer des vidéos privées
  • Fonction totalement intégrée avec Youtube, vous permettant de synchroniser vos vidéos avec Youtube
  • Transcoder plusieurs formats de fichiers multimédias en fichiers MP4, WebM et MP3
  • Prise en charge d'Amazone S3 (service de stockage simple)
  • Mise en page réactive du site. YouPHPTube est incroyable sur n'importe quel appareil. (Vous pouvez choisir une mise en page de style YouTube ou Netfilx.)
  • Chaînes d'utilisateurs et playlists d'utilisateurs
  • Abonnez-vous aux chaînes que vous aimez
  • Vous pouvez surveiller les performances de vos vidéos avec des statistiques et des rapports à jour dans les statistiques de YouPHPTube.
  • Étendre les fonctionnalités du site avec des plugins.
  • Optimisé pour le référencement
  • Applications iOS et Android disponibles

Configuration requise pour le serveur YouTube

Tout d'abord, vous devez savoir qu'un processeur monocœur n'est pas viable pour un site Web de partage de vidéos, car le processus d'encodage utilisera beaucoup de ressources processeur.

Choisissez ensuite les spécifications du serveur en fonction du nombre d'utilisateurs de votre site.

  • Si vous souhaitez simplement l'utiliser pour partager vos propres vidéos, vous avez besoin d'un serveur avec au moins 2 cœurs de processeur et 4 Go de RAM. Vous pouvez acheter un puissant VPS (serveur privé virtuel) auprès de Contabo à très peu de frais.
  • Si vous vous attendez à ce que votre site ait des dizaines d'utilisateurs, vous pouvez envisager le très grand VPS Contabo, qui dispose de 10 cœurs de processeur, de 60 Go de RAM, d'une vitesse de port de 1 Gbit/s, d'un espace disque de 1,6 To, d'un trafic illimité mais ne coûte que 26,99 €. Euros/mois.
  • Lorsque votre site se développe au-delà de cela, vous devez acheter un serveur dédié.

Configuration logicielle requise pour l'installation de YouPHPTube sur Debian 10 Buster

YouPHPTube nécessite PHP et MySQL/MariaDB. Pour suivre ce tutoriel, vous devez déjà avoir configuré une pile LAMP ou LEMP. Si vous préférez utiliser le serveur Web Apache, installez la pile LAMP.

  • Comment installer la pile LAMP (Apache, MariaDB, PHP) sur Debian 10 Buster

Si vous préférez utiliser le serveur Web Nginx, installez la pile LEMP.

  • Comment installer la pile LEMP (Nginx, MariaDB, PHP) sur Debian 10 Buster

Remarque :Le support de YouPHPTube avec Nginx n'est qu'expérimental. Vous pouvez rencontrer des problèmes si vous utilisez Nginx.

Vous avez également besoin d'un nom de domaine. J'ai enregistré mon nom de domaine chez NameCheap car le prix est bas et ils offrent une protection de confidentialité whois gratuite à vie.

YouPHPTube est composé de deux parties.

  • La partie principale est le serveur de diffusion frontal, qui permet aux utilisateurs de regarder des vidéos existantes.
  • L'autre partie est l'encodeur, qui permet aux utilisateurs de mettre en ligne leurs vidéos.

L'encodeur public utilise le nom de domaine encoder.youphptube.com . Si vous ne voulez pas que les utilisateurs quittent votre site lors du téléchargement de vidéos, vous devez configurer votre encodeur privé. Je vais vous montrer comment dans cet article. Sans plus tarder, commençons.

Étape 1 :Téléchargez YouPHPTube sur le serveur Debian 10 Buster

Connectez-vous à votre serveur Debian 10 Buster via SSH. Accédez ensuite au répertoire racine du site Web.

cd /var/www/

Clonez le référentiel de streamer YouPHPTube depuis Github.

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

Allez ensuite dans le répertoire.

cd YouPHPTube/

Clonez le dépôt de l'encodeur YouPHPTube depuis Github.

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

Il sera enregistré sous YouPHPTube-Encoder . Nous le renommons en upload , afin que les utilisateurs puissent avoir une meilleure idée à quoi sert cette URL lorsqu'ils mettent en ligne des vidéos.

sudo mv YouPHPTube-Encoder upload

Ensuite, nous devons faire de www-data (l'utilisateur du serveur Web) le propriétaire de la racine Web.

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

Étape 2 :Installer les dépendances

YouPHPTube utilise FFmpeg pour encoder des vidéos. Nous pouvons facilement installer FFmpeg à partir du référentiel Debian par défaut.

sudo apt install ffmpeg

Pour lire et écrire des méta-informations dans des fichiers multimédia, nous devons installer le libimage-exiftool-perl paquet.

sudo apt install libimage-exiftool-perl

Vous devez également installer certaines extensions PHP courantes.

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

Pour récupérer des vidéos d'autres sites, nous devons installer YouTube-DL. Bien qu'il soit inclus dans le référentiel Debian, mais il est obsolète. Nous allons installer YouTube-DL à partir du Python Package Index, qui contient toujours la dernière version de YouTube-DL.

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

Il est très important que vous utilisiez la dernière version, sinon vous ne pourrez peut-être pas télécharger de vidéos à partir d'autres sites. Nous pouvons créer une tâche Cron pour vérifier et installer automatiquement la dernière version.

sudo crontab -e

Ajoutez la ligne suivante à la fin du fichier Crontab pour essayer de mettre à jour quotidiennement YouTube-DL.

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

Étape 3 :Créer une base de données et un utilisateur dans MariaDB

Connectez-vous au serveur de base de données MariaDB avec la commande suivante. Puisque MariaDB utilise maintenant unix_socket plugin pour authentifier la connexion de l'utilisateur, il n'est pas nécessaire d'entrer le mot de passe root MariaDB. Nous avons juste besoin de préfixer le mysql commande avec sudo .

sudo mysql

Créez ensuite une base de données pour YouPHPTube. Ce tutoriel nomme la base de données YouPHPTube . Vous pouvez utiliser le nom de votre choix.

create database YouPHPTube;

Créez l'utilisateur de la base de données. Encore une fois, vous pouvez utiliser votre nom préféré pour cet utilisateur. Remplacez your-password avec votre mot de passe préféré.

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

Accordez à cet utilisateur tous les privilèges sur le youphptube base de données.

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

Nous devons également créer une base de données distincte pour l'encodeur.

create database YouPHPTubeEncoder;

Créez un utilisateur pour cette base de données.

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

Accorder des privilèges.

grant all privileges on YouPHPTubeEncoder.* to encoder@localhost;

Videz la table des privilèges et quittez.

flush privileges;

exit;

Étape 4 :Configuration du serveur Web

Nous pouvons utiliser le serveur Web Apache ou Nginx.

Apache

Si vous préférez Apache, créez un fichier d'hôte virtuel pour YouPHPTube avec un éditeur de texte en ligne de commande comme Nano.

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

Mettez le texte suivant dans le fichier. Remplacez le texte de couleur rouge par vos données réelles. J'utilise un sous-domaine dans ce tutoriel. Vous pouvez utiliser votre nom de domaine principal si vous préférez. N'oubliez pas de définir un enregistrement DNS A pour le nom de domaine dans votre gestionnaire d'enregistrements DNS. Notez également que le répertoire racine du document est sensible à la casse et que vous ne devez pas ajouter de barre oblique à la fin.

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

Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel.

sudo a2ensite youphptube.conf

Nous devons activer le module de réécriture.

sudo a2enmod rewrite

Redémarrez Apache pour que les modifications prennent effet.

sudo systemctl restart apache2

Visitez maintenant tube.yourdomain.com et vous serez redirigé vers la page de l'assistant d'installation (tube.yourdomain.com/install/index.php ). Si vous voyez la page Apache par défaut au lieu de l'assistant de configuration, vous devez désactiver l'hôte virtuel par défaut.

sudo a2dissite 000-default.conf

Et redémarrez Apache.

Avant de saisir des informations dans l'assistant de configuration, nous devons activer HTTPS.

Nginx

Si vous préférez Nginx, créez un youphptube.conf fichier dans /etc/nginx/conf.d/ répertoire.

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

Mettez le texte suivant dans le fichier. Remplacez le texte de couleur rouge par vos données réelles. J'utilise un sous-domaine dans ce tutoriel. Vous pouvez utiliser votre nom de domaine principal si vous préférez. N'oubliez pas de définir un enregistrement DNS A pour le nom de domaine dans votre gestionnaire d'enregistrements DNS. Notez également que le répertoire racine du document est sensible à la casse.

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

}

Enregistrez et fermez le fichier. Testez ensuite la configuration de Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx pour que les modifications prennent effet.

sudo systemctl reload nginx

Visitez maintenant tube.yourdomain.com et vous serez redirigé vers la page de l'assistant d'installation (tube.yourdomain.com/install/index.php ). Avant de saisir des informations dans l'assistant de configuration, nous devons activer HTTPS.

Étape 5 :Activer HTTPS

Pour chiffrer le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) sur le serveur Debian 10 Buster.

sudo apt install certbot

Si vous utilisez Apache, vous devez également installer le plugin Certbot Apache.

sudo apt install python3-certbot-apache

Et exécutez cette commande pour obtenir et installer le certificat TLS.

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

Si vous utilisez Nginx, installez le plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.

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

  • --nginx  :Utilisez le plug-in nginx.
  • --apache :Utilisez le plug-in Apache.
  • --agree-tos  :acceptez les conditions d'utilisation.
  • --redirect  :Forcer HTTPS par redirection 301.
  • --hsts  : ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Protège contre le SSL/TLS Stripping.
  • --staple-ocsp  : Active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur propose pendant TLS.

Le certificat devrait maintenant être obtenu et installé automatiquement.

Étape 6 :Terminez l'installation avec l'assistant de configuration

Allez maintenant sur tube.yourdomain.com et l'assistant de configuration apparaîtra. Sur le côté gauche, vous pouvez voir si votre serveur répond aux exigences.

Si vous utilisez Nginx, vous pouvez ignorer le message suivant.

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

Comme vous pouvez le voir, le PHP post_max_size doit être d'au moins 100 Mo et upload_max_filesize doit être d'au moins 100M. Nous devons éditer le php.ini fichier pour modifier les deux valeurs. Si vous utilisez le serveur Web Apache, alors

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

Si vous utilisez Nginx avec PHP-FPM, vous devez modifier la version FPM du fichier php.ini.

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

Trouvez les deux lignes suivantes.

post_max_size = 8M
upload_max_filesize = 2M

Modifiez les valeurs en fonction de la taille du fichier vidéo que vous allez télécharger. Par exemple, si vous autorisez le téléchargement d'un fichier vidéo 1G, alors

post_max_size = 1024M
upload_max_filesize = 1024M

Enregistrez et fermez le fichier. Redémarrez Apache pour que les modifications prennent effet.

sudo systemctl restart apache2

Si vous utilisez Nginx avec PHP-FPM, redémarrez PHP-FPM.

sudo systemctl restart php7.3-fpm

Actualisez maintenant la page de l'assistant d'installation de YouPHPTube. Votre serveur doit répondre à toutes les exigences. Maintenant, sur le côté droit, vous pouvez entrer un titre pour votre site vidéo. Entrez le nom de la base de données YouPHPTube, l'utilisateur et le mot de passe que vous avez créés précédemment. (Remarque :vous devez utiliser la base de données principale, pas la base de données de l'encodeur. Faites également attention à la casse.) Et définissez un mot de passe d'administrateur système.

Cliquez sur Install now bouton et YouPHPTube devrait être installé avec succès.

Maintenant, nous devons supprimer le /var/www/YouPHPTube/install/ répertoire.

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

Cliquez sur Go to the main page et vous verrez la page principale de YouPHPTube.

Vous pouvez cliquer sur le menu déroulant à gauche et vous connecter en tant que admin utilisateur et avec le mot de passe que vous avez défini il y a quelques instants.

Étape 7 :Configurer l'encodeur

Allez sur https://tube.yourdomain.com/upload/ . Vous serez redirigé vers l'assistant de configuration de l'encodeur. Si vous n'êtes pas automatiquement redirigé, vous pouvez saisir manuellement l'URL de l'assistant de configuration.

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

Le côté gauche vous montrera si votre serveur répond aux exigences de YouPHPTube Encoder.

Si vous utilisez Nginx, vous pouvez ignorer le message suivant.

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

Comme vous pouvez le voir le PHP max_execution_time doit être au moins 7200 et PHP memory_limit doit être d'au moins 512M. Nous devons éditer le php.ini fichier pour modifier les deux valeurs. Si vous utilisez le serveur Web Apache, alors

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

Si vous utilisez Nginx avec PHP-FPM, vous devez modifier la version FPM du fichier php.ini.

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

Trouvez les deux lignes suivantes.

max_execution_time = 30
memory_limit = 128M

Modifiez les valeurs .

max_execution_time = 7200
memory_limit = 512M

Notez que si l'encodage vidéo ultérieur s'arrête à mi-parcours, vous devez augmenter le max_execution_time , ou mettez à niveau votre CPU.

Enregistrez et fermez le fichier. Redémarrez Apache pour que les modifications prennent effet.

sudo systemctl restart apache2

Si vous utilisez Nginx avec PHP-FPM, redémarrez PHP-FPM.

sudo systemctl restart php7.3-fpm

Actualisez maintenant la page de l'assistant d'installation de YouPHPTube Encoder. Votre serveur doit répondre à toutes les exigences. Maintenant, sur le côté droit, vous devez entrer le nom de la base de données YouPHPTubeEncoder, l'utilisateur et le mot de passe que vous avez créés précédemment. Faites attention à la casse et saisissez le mot de passe administrateur du site de streamer.

Cliquez sur le bouton Installer maintenant et l'encodeur YouPHPTube sera installé.

Supprimez le répertoire d'installation.

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

Et allez à la page principale.

Étape 8 :Modifier l'URL de l'encodeur

Par défaut, YouPHPTube utilise l'encodeur public pour télécharger des vidéos. Pour utiliser votre propre encodeur, connectez-vous en tant qu'administrateur dans YouPHPTube (et non dans l'encodeur YouPHPTube) et accédez au panneau d'administration à partir du panneau d'administration de gauche.

Accédez aux settings -> site settings -> advanced configuration . Changez l'URL de l'encodeur en https://tube.yourdomain.com/upload/ . Enregistrez les paramètres, effacez le répertoire de cache et générez un nouveau sitemap.

Maintenant, déconnectez-vous et reconnectez-vous. Si vous cliquez sur encode video and audio dans le coin supérieur droit, vous serez redirigé vers votre propre encodeur pour télécharger des vidéos. Il convient de noter que la vitesse d'encodage dépend de la puissance du processeur de votre serveur.

Étape 9 :Configurer SMTP

Pour envoyer des e-mails (tels que l'enregistrement d'un compte, la réinitialisation du mot de passe, etc.), vous devez configurer un serveur SMTP. Si vous souhaitez utiliser votre propre serveur de messagerie pour envoyer des e-mails aux clients, veuillez consulter l'article suivant pour configurer votre propre serveur de messagerie.

  • Comment configurer rapidement un serveur de messagerie sur Debian 9 avec Modoboa

Si vous souhaitez utiliser un service de relais SMTP, je vous recommande Mailjet. Vous pouvez suivre le tutoriel ci-dessous pour configurer le relais SMTP sur votre serveur YouPHPTube.

  • Comment configurer le relais SMTP de Postfix sur Debian avec Mailjet

Activer TCP BBR

Pour un serveur de streaming vidéo, il est recommandé d'activer l'algorithme de contrôle de congestion TCP BBR dans le noyau Linux en suivant les instructions de l'article ci-dessous. (Il est écrit pour Ubuntu, mais fonctionne également sur Debian 10 Buster.)

  • Comment améliorer facilement les performances réseau d'Ubuntu 16.04/18.04 en activant TCP BBR

Applications mobiles

Vous pouvez télécharger l'application Android gratuite ou l'application iOS en effectuant une recherche sur YouPHPTube sur Google Play Store ou YPT Mobile dans l'Apple Store. L'application mobile en marque blanche nécessite une licence payante.

Dépannage

Si votre page principale YouPHPTube n'a pas réussi à charger certaines ressources CSS et JavaScript,

Il est probable que vous ayez ajouté une barre oblique supplémentaire dans le fichier d'hôte virtuel Apache ou Nginx pour le répertoire racine Web. Au lieu d'utiliser

DocumentRoot /var/www/YouPHPTube/

Vous devez utiliser

DocumentRoot /var/www/YouPHPTube

Si votre encodeur ne fonctionne pas correctement, vous pouvez consulter le fichier journal sur /var/www/YouPHPTube/upload/videos/youphptube.log .

Autres informations

Lors de l'encodage des vidéos, vous pouvez choisir des résolutions (basse, SD, HD). Si vous utilisez YouPHPTube comme site de streaming vidéo personnel, je vous recommande de choisir la résolution HD uniquement pour réduire le temps d'encodage et économiser de l'espace disque. Si vous avez déjà encodé des vidéos dans les 3 résolutions, vous pouvez accéder au répertoire vidéo de YouPHPTube (/var/www/YouPHPTube/videos) et supprimer les vidéos en basse résolution et en résolution SD.

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

Comment télécharger toutes les vidéos de votre site vidéo

Vous pouvez utiliser le youtube-dl utilitaire de ligne de commande pour télécharger toutes les vidéos. Tout d'abord, vous devez accéder au tableau de bord YouPHPTube, puis accéder à la page de la liste des vidéos et faire défiler vers le bas, cliquez sur télécharger votre liste de vidéos (fichier permalien .txt) bouton. Vous verrez une liste d'URL pour toutes les vidéos.

Ensuite, ouvrez un terminal et créez un fichier txt avec un éditeur de texte, copiez les URL de la page Web et collez-les dans le fichier. Ensuite, vous pouvez exécuter la commande suivante pour télécharger les vidéos. Remplacez video-list.txt avec votre propre nom de fichier.

youtube-dl -a video-list.txt

Debian
  1. Créez votre propre serveur de streaming vidéo avec Linux

  2. Étapes d'installation de Debian 10 (Buster) avec captures d'écran

  3. Comment protéger votre serveur avec badIPs.com et signaler les IP avec Fail2ban sur Debian

  4. Comment installer le serveur MySQL sur Debian 10 Buster

  5. Configurer un serveur de messagerie avec PostfixAdmin sur Debian 9

Comment configurer le serveur Samba avec Debian 11

Comment installer un serveur minimal Debian 10 (Buster)

Comment exécuter votre propre serveur de noms avec ISPConfig et providerdomain.de (Schlund)

Comment exécuter votre propre serveur Git avec GitlabHQ sur Ubuntu 14.04

Comment :sécuriser votre serveur Ubuntu ou Debian avec IPTables

DIY NAS Freenas Server - Construisez votre propre NAS avec Freenas