GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie AVideo/YouPHPTube auf Ubuntu 20.04 Server

Dieses Tutorial zeigt Ihnen, wie Sie Ihre eigene Video-Sharing-Website mit AVideo (früher YouPHPTube) unter Ubuntu 20.04 betreiben. AVideo ist eine selbst gehostete Open-Source-Alternative zu Video-Sharing-Websites wie YouTube, Vimeo usw. Mit AVideo können Benutzer Videos auf Ihren Server hochladen und mit dem Internet teilen.

AVideofunktionen

  • Unbegrenzte und gleichzeitige Live-Streams und Sie können unbegrenzt viele Benutzer mit jedem Live-Stream verbinden.
  • Importieren und codieren Sie Videos von anderen Websites direkt aus dem Internet
  • Massencodierung aus lokalem Videoverzeichnis
  • Private Videos erstellen
  • Voll integrierte Funktion mit Youtube, synchronisieren Sie Ihre Videos mit Youtube
  • Transkodieren Sie mehrere Formate von Multimediadateien in MP4-, WebM- und MP3-Dateien
  • Unterstützung von Amazon S3 (Simple Storage Service)
  • Responsives Website-Layout. AVideo sieht auf jedem Gerät unglaublich aus. (Sie können das Layout im YouTube- oder Netfilx-Stil wählen.)
  • Nutzerkanäle und Nutzer-Playlists
  • Abonniere Kanäle, die dir gefallen
  • Sie können die Leistung Ihrer Videos mit aktuellen Messwerten und Berichten in AVideo Statistics überwachen.
  • Erweitern Sie Website-Funktionalitäten mit Plugins.
  • SEO-optimiert
  • iOS- und Android-Apps verfügbar

AVideoserver-Anforderungen

Zunächst sollten Sie wissen, dass eine Single-Core-CPU für eine Video-Sharing-Website nicht geeignet ist, da der Kodierungsprozess viele CPU-Ressourcen beansprucht.

Wählen Sie dann die Serverspezifikationen entsprechend der Anzahl der Benutzer Ihrer Website aus.

  • Wenn Sie es nur zum Teilen Ihrer eigenen Videos verwenden möchten, benötigen Sie einen Server mit mindestens 2 CPU-Kernen und 4 GB RAM. Einen leistungsstarken VPS (Virtual Private Server) können Sie bei Contabo günstig erwerben.
  • Wenn Sie davon ausgehen, dass Ihre Website Dutzende von Benutzern hat, können Sie den extra großen VPS von Contabo in Betracht ziehen, der 10 CPU-Kerne, 60 GB RAM, 1 Gbit/s Portgeschwindigkeit, 1,6 TB Festplattenspeicher und unbegrenzten Datenverkehr hat, aber nur 26,99 kostet Euro/Monat.
  • Wenn Ihre Website darüber hinauswächst, sollten Sie einen dedizierten Server kaufen.

Softwareanforderungen für die Installation von AVideo auf Ubuntu 20.04

AVideo erfordert PHP und MySQL/MariaDB. Um diesem Tutorial zu folgen, sollten Sie bereits einen LAMP-Stack oder LEMP-Stack eingerichtet haben. Wenn Sie den Apache-Webserver bevorzugen, installieren Sie den LAMP-Stack.

  • So installieren Sie den LAMP-Stack (Apache, MariaDB, PHP) unter Ubuntu 20.04

Wenn Sie den Nginx-Webserver bevorzugen, installieren Sie den LEMP-Stack.

  • So installieren Sie den LEMP-Stack (Nginx, MariaDB, PHP) unter Ubuntu 20.04

Hinweis :AVideo-Unterstützung mit Nginx ist nur experimentell. Ihre Website kann Probleme haben, wenn Sie Nginx verwenden .

Außerdem benötigen Sie einen Domänennamen. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und sie Whois-Datenschutz lebenslang kostenlos bieten.

Ein Video besteht aus zwei Teilen.

  • Der Hauptteil ist der Front-End-Stream-Server, der es Benutzern ermöglicht, vorhandene Videos anzusehen.
  • Der andere Teil ist der Encoder, mit dem Benutzer ihre Videos hochladen können.

Der öffentliche Encoder verwendet den Domänennamen https://encoder1.avideo.com . Wenn Sie nicht möchten, dass Benutzer Ihre Website beim Hochladen von Videos verlassen, müssen Sie Ihren privaten Encoder einrichten. Wie das geht, zeige ich dir in diesem Artikel. Fangen wir ohne weiteres an.

Schritt 1:AVideo auf Ubuntu 20.04 Server herunterladen

Melden Sie sich über SSH bei Ihrem Ubuntu 20.04-Server an. Wechseln Sie dann in das Web-Root-Verzeichnis.

cd /var/www/

Klonen Sie das AVideo-Streamer-Repository von Github.

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

Gehen Sie dann in das Verzeichnis.

cd AVideo/

Klonen Sie das AVideo-Encoder-Repository von Github.

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

Es wird als AVideo-Encoder gespeichert . Wir benennen es in upload um , damit Nutzer beim Hochladen von Videos eine bessere Vorstellung davon bekommen, wofür diese URL dient.

sudo mv AVideo-Encoder upload

Als nächstes müssen wir www-data (den Benutzer des Webservers) zum Besitzer des Webstammverzeichnisses machen.

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

Schritt 2:Abhängigkeiten installieren

AVideo verwendet FFmpeg Videos zu codieren. Wir können FFmpeg einfach aus dem Standard-Ubuntu-Repository installieren.

sudo apt install ffmpeg

Um Metainformationen in Multimediadateien zu lesen und zu schreiben, müssen wir das libimage-exiftool-perl installieren Paket.

sudo apt install libimage-exiftool-perl

Sie müssen auch einige gängige PHP-Erweiterungen installieren.

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

Um Videos von anderen Seiten abzurufen, müssen wir YouTube-DL installieren. Es ist zwar im Ubuntu-Repository enthalten, aber veraltet. Wir werden YouTube-DL aus dem Python-Paketindex installieren, der immer die neueste Version von YouTube-DL enthält.

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

Es ist sehr wichtig, dass Sie die neueste Version verwenden, da Sie sonst möglicherweise keine Videos von anderen Websites herunterladen können. Wir können einen Cron-Job erstellen, um automatisch die neueste Version zu prüfen und zu installieren.

sudo crontab -e

Fügen Sie die folgende Zeile am Ende der Crontab-Datei hinzu, um zu versuchen, YouTube-DL täglich zu aktualisieren.

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

Schritt 3:Datenbank und Benutzer in MariaDB erstellen

Melden Sie sich mit dem folgenden Befehl beim MariaDB-Datenbankserver an. Da MariaDB jetzt unix_socket verwendet Plugin für die Benutzeranmeldung zur Authentifizierung müssen Sie das MariaDB-Root-Passwort nicht eingeben. Wir müssen nur mysql voranstellen Befehl mit sudo .

sudo mysql

Erstellen Sie dann eine Datenbank für AVideo. Dieses Tutorial nennt die Datenbank AVideo . Sie können einen beliebigen Namen verwenden.

create database AVideo;

Erstellen Sie den Datenbankbenutzer. Auch hier können Sie Ihren bevorzugten Namen für diesen Benutzer verwenden. Ersetzen Sie your-password mit Ihrem bevorzugten Passwort.

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

Gewähren Sie diesem Benutzer alle Berechtigungen für AVideo Datenbank.

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

Wir müssen auch eine separate Datenbank für den Encoder erstellen.

create database AVideoEncoder;

Erstellen Sie einen Benutzer für diese Datenbank.

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

Berechtigungen erteilen.

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

Leeren Sie die Berechtigungstabelle und beenden Sie.

flush privileges;

exit;

Schritt 4:Webserver einrichten

Wir können Apache- oder Nginx-Webserver verwenden.

Apache

Wenn Sie Apache bevorzugen, erstellen Sie eine virtuelle Hostdatei für AVideo mit einem Befehlszeilen-Texteditor wie Nano.

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

Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie den rot eingefärbten Text durch Ihre tatsächlichen Daten. In diesem Tutorial verwende ich eine Subdomain. Sie können Ihren Hauptdomänennamen verwenden, wenn Sie dies bevorzugen. Vergessen Sie nicht, in Ihrem DNS-Eintragsmanager einen DNS-A-Eintrag für den Domainnamen zu erstellen. Beachten Sie auch, dass beim Dokumentenstammverzeichnis die Groß-/Kleinschreibung beachtet wird und Sie am Ende keinen Schrägstrich hinzufügen sollten.

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

Speichern und schließen Sie die Datei. Aktivieren Sie dann diesen virtuellen Host.

sudo a2ensite avideo.conf

Wir müssen das Rewrite-Modul aktivieren.

sudo a2enmod rewrite

Starten Sie Apache neu, damit die Änderungen wirksam werden.

sudo systemctl restart apache2

Besuchen Sie nun tube.yourdomain.com und Sie werden zur Seite des Einrichtungsassistenten weitergeleitet (tube.yourdomain.com/install/index.php ). Wenn Sie die Apache-Standardseite anstelle des Setup-Assistenten sehen, müssen Sie den standardmäßigen virtuellen Host deaktivieren.

sudo a2dissite 000-default.conf

Und Apache neu starten.

Bevor wir Informationen in den Einrichtungsassistenten eingeben, müssen wir HTTPS aktivieren.

Nginx

Wenn Sie Nginx bevorzugen, erstellen Sie eine avideo.conf Datei in /etc/nginx/conf.d/ Verzeichnis.

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

Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie den rot eingefärbten Text durch Ihre tatsächlichen Daten. In diesem Tutorial verwende ich eine Subdomain. Sie können Ihren Hauptdomänennamen verwenden, wenn Sie dies bevorzugen. Vergessen Sie nicht, in Ihrem DNS-Eintragsmanager einen DNS-A-Eintrag für den Domainnamen zu erstellen. Beachten Sie auch, dass beim Dokumentstammverzeichnis die Groß- und Kleinschreibung beachtet wird.

server {
    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.4-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;
  }

}

Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfiguration.

sudo nginx -t

Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.

sudo systemctl reload nginx

Besuchen Sie nun tube.yourdomain.com und Sie werden zur Seite des Einrichtungsassistenten weitergeleitet (tube.yourdomain.com/install/index.php ). Bevor wir Informationen in den Einrichtungsassistenten eingeben, müssen wir HTTPS aktivieren.

Schritt 5:HTTPS aktivieren

Um den HTTP-Verkehr zu verschlüsseln, können wir HTTPS aktivieren, indem wir ein kostenloses TLS-Zertifikat installieren, das von Let’s Encrypt ausgestellt wurde. Führen Sie den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) auf dem Ubuntu 20.04-Server zu installieren.

sudo apt install certbot

Wenn Sie Apache verwenden, müssen Sie auch das Certbot-Apache-Plugin installieren.

sudo apt install python3-certbot-apache

Und führen Sie diesen Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

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

Wenn Sie Nginx verwenden, installieren Sie das Certbot Nginx-Plugin.

sudo apt install python3-certbot-nginx

Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

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

Wo

  • --nginx :Verwenden Sie das nginx-Plugin.
  • --apache :Verwenden Sie das Apache-Plugin.
  • --agree-tos :Nutzungsbedingungen akzeptieren.
  • --redirect :HTTPS durch 301-Umleitung erzwingen.
  • --hsts :Fügen Sie jeder HTTP-Antwort den Strict-Transport-Security-Header hinzu. Erzwingen, dass der Browser immer TLS für die Domäne verwendet. Schützt vor SSL/TLS-Stripping.
  • --staple-ocsp :Aktiviert OCSP-Heften. Eine gültige OCSP-Antwort wird an das Zertifikat geheftet, das der Server während TLS anbietet.

Das Zertifikat sollte nun abgerufen und automatisch installiert werden.

Schritt 6:Beenden Sie die Installation mit dem Einrichtungsassistenten

Gehen Sie nun zu tube.yourdomain.com und der Einrichtungsassistent wird angezeigt. Auf der linken Seite sehen Sie, ob Ihr Server die Anforderungen erfüllt.

Wenn Sie Nginx verwenden, können Sie die folgende Meldung ignorieren.

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

Wie Sie sehen können, ist die PHP post_max_size sollte mindestens 100 MB und upload_max_filesize sein sollte mindestens 100M betragen. Wir müssen die php.ini bearbeiten Datei, um die beiden Werte zu ändern. Wenn Sie den Apache-Webserver verwenden, dann

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

Wenn Sie Nginx mit PHP-FPM verwenden, müssen Sie die FPM-Version der Datei php.ini bearbeiten.

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

Suchen Sie die folgenden zwei Zeilen.

post_max_size = 8M
upload_max_filesize = 2M

Ändern Sie die Werte entsprechend der Videodateigröße, die Sie hochladen möchten. Wenn Sie beispielsweise das Hochladen von 1G-Videodateien zulassen, dann

post_max_size = 1024M
upload_max_filesize = 1024M

Speichern und schließen Sie die Datei. Starten Sie Apache neu, damit die Änderungen wirksam werden.

sudo systemctl restart apache2

Wenn Sie Nginx mit PHP-FPM verwenden, starten Sie PHP-FPM neu.

sudo systemctl restart php7.4-fpm

Aktualisieren Sie nun die Seite des AVideo-Installationsassistenten. Ihr Server sollte alle Anforderungen erfüllen. Jetzt können Sie auf der rechten Seite einen Titel für Ihre Videoseite eingeben und ein Systemadministratorpasswort festlegen. Geben Sie den Namen, den Benutzer und das Passwort der AVideo-Datenbank ein, die Sie zuvor erstellt haben. (Hinweis:Sie sollten die Hauptdatenbank verwenden, nicht die Encoder-Datenbank. Achten Sie auch auf Groß- und Kleinschreibung.)

Klicken Sie auf Install now Button und AVideo sollten erfolgreich installiert werden.

Jetzt müssen wir /var/www/AVideo/install/ entfernen Verzeichnis.

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

Klicken Sie auf Go to the main page und Sie sehen die AVideo-Hauptseite.

Sie können auf das Dropdown-Menü links klicken und sich als admin anmelden Benutzer und mit dem Passwort, das Sie gerade festgelegt haben.

Schritt 7:Richten Sie den Encoder ein

Gehen Sie zu https://tube.yourdomain.com/upload/ . Sie werden zum Encoder-Einrichtungsassistenten weitergeleitet. Wenn Sie nicht automatisch umgeleitet werden, können Sie die URL des Einrichtungsassistenten manuell eingeben.

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

Auf der linken Seite wird Ihnen angezeigt, ob Ihr Server die Anforderungen von AVideo Encoder erfüllt.

Wenn Sie Nginx verwenden, können Sie die folgende Meldung ignorieren.

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

Wie Sie sehen können, ist PHP max_execution_time sollte mindestens 7200 und PHP memory_limit sein sollte mindestens 512 MB betragen. Wir müssen die php.ini bearbeiten Datei, um die beiden Werte zu ändern. Wenn Sie den Apache-Webserver verwenden, dann

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

Wenn Sie Nginx mit PHP-FPM verwenden, müssen Sie die FPM-Version der Datei php.ini bearbeiten.

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

Suchen Sie die folgenden zwei Zeilen.

max_execution_time = 30
memory_limit = 128M

Ändern Sie die Werte.

max_execution_time = 7200
memory_limit = 512M

Beachten Sie, dass Sie max_execution_time erhöhen müssen, wenn die spätere Videocodierung auf halbem Weg stoppt , oder aktualisieren Sie Ihre CPU.

Speichern und schließen Sie die Datei. Starten Sie Apache neu, damit die Änderungen wirksam werden.

sudo systemctl restart apache2

Wenn Sie Nginx mit PHP-FPM verwenden, starten Sie PHP-FPM neu.

sudo systemctl restart php7.4-fpm

Aktualisieren Sie nun die Seite des AVideo Encoder-Installationsassistenten. Ihr Server sollte alle Anforderungen erfüllen. Jetzt müssen Sie auf der rechten Seite den Namen, den Benutzer und das Passwort der AVideoEncoder-Datenbank eingeben, die Sie zuvor erstellt haben. Achten Sie auf Groß- und Kleinschreibung und geben Sie das Admin-Passwort der Streamer-Site ein.

Klicken Sie auf die Schaltfläche Jetzt installieren und AVideo Encoder wird installiert.

Entfernen Sie das Installationsverzeichnis.

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

Und gehen Sie zur Hauptseite.

Schritt 8:Ändern Sie die Encoder-URL

Standardmäßig verwendet AVideo den öffentlichen Encoder zum Hochladen von Videos. Um Ihren eigenen Encoder zu verwenden, melden Sie sich als Administrator bei AVideo (nicht AVideo Encoder) an und gehen Sie über die linke Seitenleiste zum Admin-Bereich.

Gehen Sie zu settings -> site settings -> advanced configuration . Ändern Sie die Encoder-URL in https://tube.yourdomain.com/upload/ . Speichern Sie die Einstellungen, löschen Sie das Cache-Verzeichnis und erstellen Sie eine neue Sitemap.

Melden Sie sich jetzt ab und wieder an. Wenn Sie auf encode video and audio klicken Schaltfläche in der oberen rechten Ecke, werden Sie zu Ihrem eigenen Encoder weitergeleitet, um Videos hochzuladen. Es sollte beachtet werden, dass die Codierungsgeschwindigkeit von der CPU-Leistung Ihres Servers abhängt. Es benötigt nicht viel RAM, da der Encoder das Video in eine temporäre Datei im Upload-Verzeichnis kopiert (/var/www/AVideo/upload/videos ).

Schritt 9:SMTP konfigurieren

Um E-Mails zu versenden (z. B. Kontoregistrierung, Passwortzurücksetzung usw.), müssen Sie einen SMTP-Server konfigurieren. Wenn Sie Ihren eigenen Mailserver verwenden möchten, um E-Mails an Clients zu senden, lesen Sie bitte den folgenden Artikel, um Ihren eigenen Mailserver einzurichten. Hinweis dass ich dringend empfehle, den iRedMail-Mailserver auf einem frischen, sauberen Betriebssystem auszuführen. Die Installation von iRedMail auf einem Betriebssystem mit anderen Webanwendungen kann fehlschlagen und wahrscheinlich vorhandene Anwendungen beschädigen.

  • So richten Sie mit iRedMail ganz einfach einen E-Mail-Server unter Ubuntu 20.04 ein

Wenn Sie einen SMTP-Relay-Dienst verwenden möchten, empfehle ich Mailjet. Sie können dem nachstehenden Tutorial folgen, um SMTP-Relay auf Ihrem AVideo-Server einzurichten.

  • So richten Sie Postfix SMTP-Relay auf Ubuntu mit Mailjet ein

Sie können den E-Mail-Versand testen, indem Sie zum admin panel gehen -> settings -> site settings -> Advanced Configuration finden Sie die SMTP-Konfiguration. Verwenden Sie die folgenden Einstellungen.

  • SMTP aktivieren.
  • SMTP-Authentifizierung aktivieren
  • Verwenden Sie tls in SMTP Secure.
  • Verwenden Sie 587 als SMTP-Port.
  • Geben Sie den Hostnamen Ihres Mailservers ein.
  • Geben Sie einen SMTP-Benutzernamen und ein Kennwort ein.

Klicken Sie auf Save Schaltfläche, um die Einstellungen zu speichern, und klicken Sie dann auf Test Email um zu sehen, ob es funktioniert.

TCP-BBR aktivieren

Für einen Video-Streaming-Server wird empfohlen, den TCP BBR-Überlastungskontrollalgorithmus im Linux-Kernel zu aktivieren, indem Sie die Anweisungen im folgenden Artikel befolgen.

  • Wie man die Ubuntu-Netzwerkleistung einfach steigert, indem man TCP BBR aktiviert

Mobile Apps

Sie können die kostenlose Android-App oder iOS-App herunterladen, indem Sie nach AVideo suchen im Google Play Store oder YPT Mobile im Apple-Store. Mobile White-Label-Apps erfordern eine kostenpflichtige Lizenz.

Fehlerbehebung

Wenn Ihre AVideo-Hauptseite einige CSS- und JavaScript-Ressourcen nicht laden konnte,

Wahrscheinlich haben Sie einen zusätzlichen Schrägstrich in der virtuellen Apache- oder Nginx-Hostdatei für das Web-Root-Verzeichnis hinzugefügt. Anstelle von

DocumentRoot /var/www/AVideo/

Sie sollten

verwenden
DocumentRoot /var/www/AVideo

Wenn die Hauptwebsite nicht ordnungsgemäß funktioniert, können Sie die Protokolldatei unter /var/www/AVideo/videos/youphptube.log überprüfen . Wenn Ihr Encoder nicht ordnungsgemäß funktioniert, können Sie die Protokolldatei unter /var/www/AVideo/upload/videos/youphptube.log überprüfen .

Andere Leckerbissen

Beim Codieren von Videos können Sie Auflösungen auswählen (niedrig, SD, HD). Wenn Sie AVideo als persönliche Video-Streaming-Site verwenden, empfehle ich, nur die HD-Auflösung zu wählen, um die Kodierungszeit zu verkürzen und Speicherplatz zu sparen. Wenn Sie bereits Videos mit allen 3 Auflösungen kodiert haben, können Sie zum AVideo-Videoverzeichnis (/var/www/AVideo/videos) gehen und Videos mit niedriger Auflösung und SD-Auflösung löschen.

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

So laden Sie alle Videos von Ihrer Video-Site herunter

Sie können das youtube-dl verwenden Befehlszeilenprogramm zum Herunterladen aller Videos. Zuerst müssen Sie zum AVideo-Dashboard gehen, dann zur Videolistenseite gehen und nach unten scrollen, auf Ihre Videoliste herunterladen (permalink .txt-Datei) klicken Taste. Sie sehen eine Liste mit URLs für alle Videos.

Öffnen Sie als nächstes ein Terminal und erstellen Sie eine txt-Datei mit einem Texteditor, kopieren Sie die URLs von der Webseite und fügen Sie sie in die Datei ein. Dann können Sie den folgenden Befehl ausführen, um die Videos herunterzuladen. Ersetzen Sie video-list.txt mit dem eigenen Dateinamen.

youtube-dl -a video-list.txt

Ubuntu
  1. So installieren Sie MySQL unter Ubuntu 18.04

  2. So installieren Sie Minecraft Server auf Ubuntu 18.04

  3. So installieren Sie Nginx unter Ubuntu 20.04

  4. So installieren Sie MariaDB unter Ubuntu 20.04

  5. So installieren Sie Zimbra 8.6 auf einem Ubuntu 14.04-Server

So installieren Sie Cockpit unter Ubuntu 20.04

So installieren Sie den VNC-Server unter Ubuntu 20.04

So installieren Sie den HTTrack-Server unter Ubuntu 20.04

So installieren Sie Snappass auf Ubuntu

So installieren Sie AVideo/YouPHPTube auf CentOS 8 Server

So installieren Sie AVideo/YouPHPTube auf Ubuntu 18.04 Server