GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie AVideo/YouPHPTube auf CentOS 8 Server

Dieses Tutorial zeigt Ihnen, wie Sie Ihre eigene Video-Sharing-Website mit AVideo (früher bekannt als YouPHPTube) unter CentOS 8 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 CentOS 8

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

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

  • So installieren Sie den LEMP-Stack (Nginx, MariaDB, PHP) unter CentOS 8

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:Laden Sie AVideo auf CentOS 8 Server herunter

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

cd /var/www/

Klonen Sie das AVideo-Streamer-Repository von Github.

sudo dnf install gitsudo 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 hochladen

Als Nächstes müssen wir den Webserver-Benutzer zum Besitzer des Web-Stammverzeichnisses machen.

Apache

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

Nginx

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

Wir müssen auch den SELinux-Kontext ändern, damit der Webserver in dieses Verzeichnis schreiben kann.

sudo chcon -t httpd_sys_rw_content_t /var/www/AVideo/ -R

Schritt 2:Abhängigkeiten installieren

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

sudo dnf install epel-releasesudo dnf config-manager --enable PowerToolssudo dnf install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm https://download1. rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpmsudo dnf install ffmpeg -y

Um Metainformationen in Multimediadateien lesen und schreiben zu können, müssen wir das perl-Image-ExifTool installieren Paket.

sudo dnf install perl-Image-ExifTool

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

sudo dnf install php-cli php-fpm php-mysqlnd php-common php-json php-opcache php-readline php-curl php-gd php-xml

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

sudo dnf install python3-pipsudo -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 als root bei der MySQL/MariaDB-Shell an. Sie müssen das MySQL/MariaDB-Root-Passwort eingeben.

mysql -u root -p

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

Datenbank AVideo erstellen;

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.

Erstellen Sie den Benutzer AVideo@localhost, der durch „Ihr Passwort“ identifiziert wird;

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

AVideo@localhost alle Privilegien auf AVideo.* gewähren;

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

Datenbank AVideoEncoder erstellen;

Erstellen Sie einen Benutzer für diese Datenbank.

Erstellen Sie den Benutzer AVideoEncoder@localhost, der durch „Ihr Passwort“ identifiziert wird;

Berechtigungen erteilen.

gewähren Sie AVideoEncoder@localhost alle Berechtigungen für AVideoEncoder.*

Leeren Sie die Berechtigungstabelle und beenden Sie.

Privilegien leeren;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/httpd/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, den DNS-A-Eintrag für den Domainnamen in Ihrem DNS-Eintragsmanager festzulegen. Beachten Sie auch, dass beim Dokumentenstammverzeichnis die Groß-/Kleinschreibung beachtet wird und Sie am Ende keinen Schrägstrich hinzufügen sollten.

 ServerName tube.yourdomain.com DocumentRoot /var/www/AVideo /var/www/AVideo> DirectoryIndex index.php Options +FollowSymLinks AllowOverride All Erfordert alle gewährten  ErrorLog /var/log/httpd/avideo.error.log CustomLog /var/log/httpd/avideo.access.log kombiniert 

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

sudo systemctl restart httpd

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.

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, 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; hör zu [::]:80; server_name tube.ihredomain.com; root /var/www/AVideo; index index.php index.html index.htm; Zeichensatz utf-8; client_max_body_size 2G; access_log /var/log/nginx/avideo.access.log; error_log /var/log/nginx/avideo.error.log; Ort ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; schließen Sie fastcgi_params ein; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } # Übersetzen der Apache-Umschreibungsregeln in der .htaccess-Datei in den Speicherort der Nginx-Umschreibungsregeln / { 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 zuletzt; 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 { umschreiben ^/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 CentOS 8-Server zu installieren.

sudo dnf install certbot

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

sudo dnf 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 dnf 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.

Standardmäßig verbietet SELinux Apache/Nginx, Netzwerkanfragen an andere Server zu stellen, aber später muss Apache/Nginx den TLS-Zertifikatsstatus vom Let’s Encrypt CA-Server für das OCSP-Stapling anfordern, also müssen wir SELinux mitteilen, Apache/Nginx mit dem Folgenden zuzulassen Befehl.

sudo setsebool -P httpd_can_network_connect 1

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.

Ihr Server ist nginx/1.14.2, Sie müssen Apache installieren.

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.

sudo nano /etc/php.ini

Suchen Sie die folgenden zwei Zeilen.

post_max_size =8Mupload_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 =1024Mupload_max_filesize =1024M

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

sudo systemctl php-fpm neu starten

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

Ihr Server ist nginx/1.14.2, Sie müssen Apache installieren.

Wir haben exiftool, FFmpeg und youtube-dl in Schritt 2 installiert, aber PHP-FPM kann die Binärdateien nicht finden. Das liegt daran, dass wir den PATH nicht aktiviert haben Variable in PHP. Bearbeiten Sie die PHP-FPM-Konfigurationsdatei.

sudo nano /etc/php-fpm.d/www.conf

Suchen Sie die folgende Zeile und entfernen Sie das Semikolon (;) am Anfang.

;env[PFAD] =/usr/local/bin:/usr/bin:/bin

Speichern und schließen Sie die Datei. Starten Sie dann PHP-FPM neu.

sudo systemctl php-fpm neu starten

Aktualisieren Sie die Encoder-Installationsseite. Der Einrichtungsassistent sollte exiftool-, FFmpeg- und youtube-dl-Binärdateien finden können. Wenn das Videoverzeichnis nicht beschreibbar ist, führen Sie den folgenden Befehl aus.

sudo chcon -t httpd_sys_rw_content_t /var/www/AVideo/ -R

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.

sudo nano /etc/php.ini

Suchen Sie die folgenden zwei Zeilen.

max_execution_time =30memory_limit =128M

Ändern Sie die Werte.

max_execution_time =7200memory_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 dann PHP-FPM neu.

sudo systemctl php-fpm neu starten

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

Gehen Sie zur Hauptseite. Sie können sich bei AVideo Encoder anmelden.

Schritt 8:Ändern Sie die Encoder-URL

Standardmäßig verwendet AVideo einen ö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 Kunden 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 CentOS 8 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 CentOS 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. Bearbeiten Sie die Datei sysctl.conf.

sudo nano /etc/sysctl.conf

Fügen Sie die folgenden beiden Zeilen am Ende der Datei hinzu.

net.core.default_qdisc=fqnet.ipv4.tcp_congestion_control=bbr

Speichern und schließen Sie die Datei. Laden Sie dann die sysctl-Konfigurationen neu.

sudo sysctl -p

Überprüfen Sie nun den verwendeten Überlastungskontrollalgorithmus.

sysctl net.ipv4.tcp_congestion_control

Ausgabe:

net.ipv4.tcp_congestion_control =bbr

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/avideo.log überprüfen . Wenn Ihr Encoder nicht ordnungsgemäß funktioniert, können Sie die Protokolldatei unter /var/www/AVideo/upload/videos/avideo.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.mp4sudo 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 eigenem Dateinamen.

youtube-dl -a video-list.txt

Cent OS
  1. So installieren Sie Minecraft Server unter CentOS 7

  2. So installieren Sie Nginx unter CentOS 8

  3. So installieren Sie PostgreSQL unter CentOS 8

  4. So installieren Sie Teamspeak 3 Server auf CentOS 8

  5. So installieren Sie ProFTPD unter CentOS 7

So installieren Sie AVideo/YouPHPTube auf Ubuntu 20.04 Server

So installieren Sie Shoutcast Server auf CentOS 8

So installieren Sie Lighttpd unter CentOS

So installieren Sie VestaCP auf CentOS 6

So installieren Sie VNC-Server unter CentOS 7

So installieren Sie Minecraft Server auf CentOS 6