GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Betreiben Sie Ihre eigene Video-Sharing-Website mit YouPHPTube auf Debian 10 Buster

Dieses Tutorial zeigt Ihnen, wie Sie Ihre eigene Video-Sharing-Website mit YouPHPTube auf Debian 10 Buster betreiben. YouPHPTube ist eine selbst gehostete Open-Source-Alternative zu Video-Sharing-Websites wie YouTube, Vimeo usw. Mit YouPHPTube können Sie Videos auf Ihren eigenen Server hochladen und mit dem Internet teilen.

YouPHPTube-Funktionen

  • 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
  • Vollständig integrierte Funktion mit Youtube, mit der Sie Ihre Videos mit Youtube synchronisieren können
  • Transkodieren Sie mehrere Formate von Multimediadateien in MP4-, WebM- und MP3-Dateien
  • Unterstützt Amazone S3 (Simple Storage Service)
  • Responsives Website-Layout. YouPHPTube 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
  • Du kannst die Leistung deiner Videos mit aktuellen Messwerten und Berichten in den YouPHPTube-Statistiken überwachen.
  • Erweitern Sie Website-Funktionalitäten mit Plugins.
  • SEO-optimiert
  • iOS- und Android-Apps verfügbar

YouPHPTube-Serveranforderungen

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 haben wird, 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 YouPHPTube auf Debian 10 Buster

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

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

  • So installieren Sie den LEMP-Stack (Nginx, MariaDB, PHP) unter Debian 10 Buster

Hinweis :YouPHPTube-Unterstützung mit Nginx ist nur experimentell. Möglicherweise treten Probleme auf, 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.

YouPHPTube besteht aus zwei Teilen.

  • Der Hauptteil ist der Front-End-Streamer-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 Domainnamen encoder.youphptube.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:Laden Sie YouPHPTube auf Debian 10 Buster Server herunter

Melden Sie sich über SSH bei Ihrem Debian 10 Buster-Server an. Wechseln Sie dann in das Web-Root-Verzeichnis.

cd /var/www/

Klonen Sie das YouPHPTube-Streamer-Repository von Github.

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

Gehen Sie dann in das Verzeichnis.

cd YouPHPTube/

Klonen Sie das YouPHPTube-Encoder-Repository von Github.

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

Es wird als YouPHPTube-Encoder gespeichert . Wir benennen es in upload um , damit Nutzer beim Hochladen von Videos eine bessere Vorstellung davon haben, wozu diese URL dient.

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

Schritt 2:Abhängigkeiten installieren

YouPHPTube verwendet FFmpeg Videos zu codieren. Wir können FFmpeg einfach aus dem Standard-Debian-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.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline php7.3-curl php7.3-gd php7.3-xml

Um Videos von anderen Seiten abzurufen, müssen wir YouTube-DL installieren. Es ist zwar im Debian-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 YouPHPTube. Dieses Tutorial nennt die Datenbank YouPHPTube . Sie können einen beliebigen Namen verwenden.

create database YouPHPTube;

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

Gewähren Sie diesem Benutzer alle Rechte auf youphptube Datenbank.

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

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

create database YouPHPTubeEncoder;

Erstellen Sie einen Benutzer für diese Datenbank.

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

Berechtigungen erteilen.

grant all privileges on YouPHPTubeEncoder.* to encoder@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 mit einem Befehlszeilen-Texteditor wie Nano eine virtuelle Hostdatei für YouPHPTube.

sudo nano /etc/apache2/sites-available/youphptube.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, den DNS-A-Eintrag für den Domainnamen in Ihrem DNS-Eintragsmanager festzulegen. Beachten Sie auch, dass beim Stammverzeichnis des Dokuments zwischen Groß- und Kleinschreibung unterschieden wird und Sie am Ende keinen Schrägstrich hinzufügen sollten.

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

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

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

sudo nano /etc/nginx/conf.d/youphptube.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, den DNS-A-Eintrag für den Domainnamen in Ihrem DNS-Eintragsmanager festzulegen. Beachten Sie auch, dass beim Dokumentstammverzeichnis die Groß- und Kleinschreibung beachtet wird.

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

}

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 Debian 10 Buster-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 den Strict-Transport-Security-Header zu jeder HTTP-Antwort 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.3/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.3/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.3-fpm

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

Klicken Sie auf Install now Button und YouPHPTube sollte erfolgreich installiert sein.

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

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

Klicken Sie auf Go to the main page und Sie sehen die YouPHPTube-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 YouPHPTube 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.3/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.3/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.3-fpm

Aktualisieren Sie nun die Seite des YouPHPTube 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 YouPHPTubeEncoder-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 YouPHPTube Encoder wird installiert.

Entfernen Sie das Installationsverzeichnis.

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

Und gehen Sie zur Hauptseite.

Schritt 8:Ändern Sie die Encoder-URL

Standardmäßig verwendet YouPHPTube den öffentlichen Encoder zum Hochladen von Videos. Um Ihren eigenen Encoder zu verwenden, melden Sie sich als Administrator bei YouPHPTube an (nicht YouPHPTube-Encoder) und gehen Sie vom linken Admin-Panel zum Admin-Panel.

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. Beachten Sie, dass die Codierungsgeschwindigkeit von der CPU-Leistung Ihres Servers abhängt.

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.

  • Wie man schnell einen E-Mail-Server auf Debian 9 mit Modoboa einrichtet

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

  • Wie man Postfix SMTP-Relay auf Debian mit Mailjet einrichtet

TCP-BBR aktivieren

Für einen Video-Streaming-Server wird empfohlen, den TCP BBR-Überlastungskontrollalgorithmus im Linux-Kernel zu aktivieren, indem Sie den Anweisungen im folgenden Artikel folgen. (Es wurde für Ubuntu geschrieben, funktioniert aber auch unter Debian 10 Buster.)

  • So steigern Sie die Netzwerkleistung von Ubuntu 16.04/18.04 ganz einfach durch Aktivieren von TCP BBR

Mobile Apps

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

Fehlerbehebung

Wenn Ihre YouPHPTube-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/YouPHPTube/

Sie sollten

verwenden
DocumentRoot /var/www/YouPHPTube

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

Andere Leckerbissen

Beim Codieren von Videos können Sie Auflösungen auswählen (niedrig, SD, HD). Wenn Sie YouPHPTube 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 YouPHPTube-Videoverzeichnis (/var/www/YouPHPTube/videos) gehen und Videos mit niedriger Auflösung und SD-Auflösung löschen.

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

Debian
  1. Erstellen Sie Ihren eigenen Video-Streaming-Server mit Linux

  2. Debian 10 (Buster) Installationsschritte mit Screenshots

  3. So schützen Sie Ihren Server mit badIPs.com und melden IPs mit Fail2ban unter Debian

  4. So installieren Sie MySQL Server auf Debian 10 Buster

  5. Richten Sie einen Mailserver mit PostfixAdmin auf Debian 9 ein

So konfigurieren Sie Samba Server mit Debian 11

So installieren Sie einen Debian 10 (Buster) Minimalserver

So betreiben Sie Ihren eigenen Nameserver mit ISPConfig und providerdomain.de (Schlund)

So betreiben Sie Ihren eigenen Git-Server mit GitlabHQ unter Ubuntu 14.04

Gewusst wie:Sichern Sie Ihren Ubuntu- oder Debian-Server mit IPTables

DIY NAS Freenas Server - Erstellen Sie Ihr eigenes NAS mit Freenas