GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer AVideo/YouPHPTube sur le serveur Ubuntu 18.04

Ce didacticiel va vous montrer comment exécuter votre propre site Web de partage de vidéos avec AVideo (anciennement YouPHPTube) sur Ubuntu 18.04. AVideo est une alternative open source et auto-hébergée aux sites Web de partage de vidéos comme YouTube, Vimeo, etc. Avec AVideo, les utilisateurs peuvent télécharger des vidéos sur votre serveur et les partager avec Internet.

Fonctionnalités vidéo

  • 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, synchronisation de vos vidéos avec Youtube
  • Transcoder plusieurs formats de fichiers multimédias en fichiers MP4, WebM et MP3
  • Prise en charge d'Amazon S3 (service de stockage simple)
  • Mise en page réactive du site. Une vidéo 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 grâce à des statistiques et des rapports à jour dans AVideo Statistics.
  • Étendre les fonctionnalités du site avec des plugins.
  • Optimisé pour le référencement
  • Applications iOS et Android disponibles

AConfiguration requise pour le serveur vidéo

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 d'AVideo sur Ubuntu 18.04

AVideo 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 Ubuntu 18.04

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

  • Comment installer la pile LEMP (Nginx, MariaDB, PHP) sur Ubuntu 18.04

Remarque  :La prise en charge d'AVideo avec Nginx n'est qu'expérimentale. Votre site peut 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.

Une vidéo est composée de deux parties.

  • La partie principale est le serveur de flux 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 https://encoder1.avideo.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 AVideo sur le serveur Ubuntu 18.04

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

cd /var/www/

Clonez le référentiel de streamer AVideo à partir de Github.

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

Allez ensuite dans le répertoire.

cd AVideo/

Clonez le dépôt de l'encodeur AVideo à partir de Github.

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

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

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

Étape 2 :Installer les dépendances

AVideo utilise FFmpeg pour encoder des vidéos. Nous pouvons facilement installer FFmpeg à partir du référentiel Ubuntu 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.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-curl php7.2-gd php7.2-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 Ubuntu, 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

Avant de créer la base de données et l'utilisateur, nous devons modifier certains paramètres dans MariaDB. Modifiez le fichier de configuration.

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

AVideo utilisera un préfixe de clé d'index large dans la base de données. Cependant, MariaDB 10.1 utilise le COMPACT format de ligne, qui ne prend pas en charge le préfixe de clé d'index de grande taille. Nous pouvons configurer MariaDB pour utiliser le DYNAMIC format de ligne, qui est le paramètre par défaut dans les nouvelles versions de MariaDB, en ajoutant les lignes suivantes dans le InnoDB sous la section [mysqld] unité dans le fichier.

# 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

Enregistrez et fermez le fichier. Redémarrez ensuite MariaDB.

sudo systemctl restart 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 AVideo. Ce tutoriel nomme la base de données AVideo . Vous pouvez utiliser le nom de votre choix.

create database AVideo;

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

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

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

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

create database AVideoEncoder;

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

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

Accorder des privilèges.

grant all privileges on AVideoEncoder.* to AVideoEncoder@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 AVideo avec un éditeur de texte en ligne de commande comme Nano.

sudo nano /etc/apache2/sites-available/avideo.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/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>

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

sudo a2ensite avideo.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 avideo.conf fichier dans /etc/nginx/conf.d/ répertoire.

sudo nano /etc/nginx/conf.d/avideo.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;
    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;
  }

}

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 Ubuntu 18.04.

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/install/index.php 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.2/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.2/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.2-fpm

Actualisez maintenant la page de l'assistant d'installation d'AVideo. Votre serveur doit répondre à toutes les exigences. Maintenant, sur le côté droit, vous pouvez entrer un titre pour votre site vidéo et définir un mot de passe administrateur système. Entrez le nom, l'utilisateur et le mot de passe de la base de données AVideo 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.)

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

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

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

Cliquez sur Go to the main page et vous verrez la page principale d'AVideo.

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 d'AVideo 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.2/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.2/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.2-fpm

Actualisez maintenant la page de l'assistant d'installation d'AVideo 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 AVideoEncoder, 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 AVideo Encoder sera installé.

Supprimez le répertoire d'installation.

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

Et allez à la page principale.

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

Par défaut, AVideo utilise l'encodeur public pour télécharger des vidéos. Pour utiliser votre propre encodeur, connectez-vous en tant qu'administrateur dans AVideo (et non AVideo Encoder) et accédez au panneau d'administration dans la barre latérale 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 CPU de votre serveur. Il ne nécessite pas beaucoup de RAM car l'encodeur copiera la vidéo dans un fichier temporaire dans le répertoire de téléchargement (/var/www/AVideo/upload/videos ).

É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. Remarque que je recommande fortement d'exécuter le serveur de messagerie iRedMail sur un nouveau système d'exploitation propre. L'installation d'iRedMail sur un système d'exploitation doté d'autres applications Web peut échouer et probablement casser les applications existantes.

  • Comment configurer facilement un serveur de messagerie sur Ubuntu 18.04 avec iRedMail

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

  • Comment configurer le relais SMTP Postfix sur Ubuntu avec Mailjet

Vous pouvez tester l'envoi d'e-mails en vous rendant dans le admin panel -> Setttings -> Site Settings -> Advanced Configuration , vous pouvez trouver la configuration SMTP. Utilisez les paramètres suivants.

  • Activer SMTP.
  • Activer l'authentification SMTP
  • Utilisez tls dans SMTP sécurisé.
  • Utilisez 587 comme port SMTP.
  • Entrez le nom d'hôte de votre serveur de messagerie.
  • Entrez un nom d'utilisateur et un mot de passe SMTP.

Cliquez sur Save pour enregistrer les paramètres, puis cliquez sur Test Email pour voir si cela fonctionne.

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.

  • Comment augmenter facilement les performances du réseau Ubuntu en activant TCP BBR

Applications mobiles

Vous pouvez télécharger l'application Android gratuite ou l'application iOS en effectuant une recherche sur AVideo 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 AVideo 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/AVideo/

Vous devez utiliser

DocumentRoot /var/www/AVideo

Si le site Web principal ne fonctionne pas correctement, vous pouvez consulter le fichier journal sur /var/www/AVideo/videos/avideo.log . Si votre encodeur ne fonctionne pas correctement, vous pouvez consulter le fichier journal sur /var/www/AVideo/upload/videos/avideo.log .

Autres informations

Lors de l'encodage des vidéos, vous pouvez choisir des résolutions (basse, SD, HD). Si vous utilisez AVideo 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 AVideo (/var/www/AVideo/videos) et supprimer les vidéos basse résolution et résolution SD.

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

Ubuntu
  1. Comment installer MySQL sur Ubuntu 18.04

  2. Comment installer le serveur Minecraft sur Ubuntu 18.04

  3. Comment installer Nginx sur Ubuntu 20.04

  4. Comment installer MariaDB sur Ubuntu 20.04

  5. Comment installer Zimbra 8.6 sur le serveur Ubuntu 14.04

Comment installer Cockpit sur Ubuntu 20.04

Comment installer le serveur VNC sur Ubuntu 20.04

Comment installer le serveur HTTrack sur Ubuntu 20.04

Comment installer Snappass sur Ubuntu

Comment installer AVideo/YouPHPTube sur le serveur CentOS 8

Comment installer AVideo/YouPHPTube sur le serveur Ubuntu 20.04