GNU/Linux >> Linux の 問題 >  >> Debian

Debian10BusterでYouPHPTubeを使用して独自のビデオ共有Webサイトを実行する

このチュートリアルでは、Debian10BusterでYouPHPTubeを使用して独自のビデオ共有Webサイトを実行する方法を紹介します。 YouPHPTubeは、YouTubeやVimeoなどのビデオ共有Webサイトに代わるオープンソースのセルフホスト型です。YouPHPTubeを使用すると、ビデオを自分のサーバーにアップロードしてインターネットと共有できます。

YouPHPTubeの機能

  • 無制限の同時ライブストリーム。各ライブストリームに無制限のユーザーを接続できます。
  • インターネットから直接他のサイトからビデオをインポートしてエンコードする
  • ローカルビデオディレクトリからのバルクエンコーディング
  • プライベート動画を作成する
  • Youtubeと完全に統合された機能で、動画をYoutubeと同期できます
  • マルチメディアファイルの複数の形式をMP4、WebM、およびMP3ファイルにトランスコードします
  • Amazone S3(シンプルストレージサービス)をサポートする
  • レスポンシブサイトのレイアウト。 YouPHPTubeは、どのデバイスでも信じられないほどに見えます。 (YouTubeまたはNetfilxスタイルのレイアウトを選択できます。)
  • ユーザーチャンネルとユーザープレイリスト
  • 好きなチャンネルに登録する
  • YouPHPTube Statisticsの最新の指標とレポートを使用して、動画のパフォーマンスを監視できます。
  • プラグインを使用してサイトの機能を拡張します。
  • SEO最適化
  • 利用可能なiOSおよびAndroidアプリ

YouPHPTubeサーバーの要件

まず、エンコードプロセスは大量のCPUリソースを使用するため、シングルコアCPUはビデオ共有Webサイトでは実行できないことを知っておく必要があります。

次に、サイトのユーザー数に応じてサーバーの仕様を選択します。

  • 自分の動画を共有するためだけに使用する場合は、少なくとも2つのCPUコアと4GBのRAMを搭載したサーバーが必要です。非常に少ないコストで、Contaboから強力なVPS(仮想プライベートサーバー)を購入できます。
  • サイトに数十人のユーザーがいると予想される場合は、10個のCPUコア、60 GBのRAM、1 Gbit / sのポート速度、1.6 TBのディスク容量、無制限のトラフィック、わずか26.99のContabo特大VPSを検討できます。ユーロ/月。
  • サイトがそれを超えて成長した場合は、専用サーバーを購入する必要があります。

Debian10BusterにYouPHPTubeをインストールするためのソフトウェア要件

YouPHPTubeにはPHPとMySQL/MariaDBが必要です。このチュートリアルに従うには、LAMPスタックまたはLEMPスタックをすでに設定している必要があります。 Apache Webサーバーを使用する場合は、LAMPスタックをインストールします。

  • Debian 10 BusterにLAMP(Apache、MariaDB、PHP)スタックをインストールする方法

Nginx Webサーバーを使用する場合は、LEMPスタックをインストールしてください。

  • Debian 10 BusterにLEMP(Nginx、MariaDB、PHP)スタックをインストールする方法

:NginxでのYouPHPTubeのサポートは実験的なものにすぎません。 Nginxを使用すると、問題が発生する可能性があります。

ドメイン名も必要です。ドメイン名をNameCheapに登録したのは、価格が安く、whoisのプライバシー保護が一生無料になるからです。

YouPHPTubeは2つの部分で構成されています。

  • 主要な部分は、ユーザーが既存の動画を視聴できるようにするフロントエンドストリーマーサーバーです。
  • もう1つの部分は、ユーザーが動画をアップロードできるようにするエンコーダーです。

パブリックエンコーダーはドメイン名encoder.youphptube.comを使用します 。動画をアップロードするときにユーザーがサイトを離れたくない場合は、プライベートエンコーダーを設定する必要があります。この記事でその方法を紹介します。面倒なことはせずに、始めましょう。

ステップ1:Debian10バスターサーバーにYouPHPTubeをダウンロードする

SSH経由でDebian10Busterサーバーにログインします。次に、Webルートディレクトリに移動します。

cd /var/www/

GithubからYouPHPTubeストリーマーリポジトリのクローンを作成します。

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

次に、ディレクトリに移動します。

cd YouPHPTube/

GithubからYouPHPTubeエンコーダリポジトリのクローンを作成します。

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

YouPHPTube-Encoderとして保存されます 。名前をuploadに変更します 、そのため、ユーザーは動画をアップロードするときにこのURLが何のためにあるのかをよりよく理解できます。

sudo mv YouPHPTube-Encoder upload

次に、www-data(Webサーバーユーザー)をWebルートの所有者にする必要があります。

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

ステップ2:依存関係をインストールする

YouPHPTubeはFFmpegを使用します ビデオをエンコードします。デフォルトのDebianリポジトリからFFmpegを簡単にインストールできます。

sudo apt install ffmpeg

マルチメディアファイルでメタ情報を読み書きするには、 libimage-exiftool-perlをインストールする必要があります パッケージ。

sudo apt install libimage-exiftool-perl

また、いくつかの一般的なPHP拡張機能をインストールする必要があります。

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

他のサイトから動画を取得するには、YouTube-DLをインストールする必要があります。 Debianリポジトリに含まれていますが、古くなっています。 YouTube-DLは、常に最新バージョンのYouTube-DLが含まれているPythonPackageIndexからインストールします。

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

最新バージョンを使用することが非常に重要です。そうしないと、他のサイトからビデオをダウンロードできない可能性があります。最新バージョンを自動的にチェックしてインストールするCronジョブを作成できます。

sudo crontab -e

Crontabファイルの最後に次の行を追加して、YouTube-DLを毎日アップグレードしてみてください。

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

ステップ3:MariaDBでデータベースとユーザーを作成する

次のコマンドを使用して、MariaDBデータベースサーバーにログインします。 MariaDBは現在unix_socketを使用しているため ユーザーログインを認証するプラグイン。MariaDBのrootパスワードを入力する必要はありません。 mysqlのプレフィックスを付ける必要があります sudoを使用したコマンド 。

sudo mysql

次に、YouPHPTubeのデータベースを作成します。このチュートリアルでは、データベースに YouPHPTubeという名前を付けます。 。好きな名前を使用できます。

create database YouPHPTube;

データベースユーザーを作成します。この場合も、このユーザーの好みの名前を使用できます。 your-passwordを置き換えます ご希望のパスワードを使用してください。

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

このユーザーにyouphptubeに対するすべての権限を付与します データベース。

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

また、エンコーダー用に別のデータベースを作成する必要があります。

create database YouPHPTubeEncoder;

このデータベースのユーザーを作成します。

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

特権を付与します。

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

特権テーブルをフラッシュして終了します。

flush privileges;

exit;

ステップ4:Webサーバーのセットアップ

ApacheまたはNginxWebサーバーを使用できます。

Apache

Apacheが必要な場合は、Nanoなどのコマンドラインテキストエディタを使用してYouPHPTubeの仮想ホストファイルを作成します。

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

次のテキストをファイルに入れます。赤い色のテキストを実際のデータに置き換えます。このチュートリアルではサブドメインを使用します。必要に応じて、メインドメイン名を使用できます。 DNSレコードマネージャーでドメイン名のDNSAレコードを設定することを忘れないでください。また、ドキュメントのルートディレクトリでは大文字と小文字が区別されるため、末尾にスラッシュを追加しないでください。

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

ファイルを保存して閉じます。次に、この仮想ホストを有効にします。

sudo a2ensite youphptube.conf

リライトモジュールを有効にする必要があります。

sudo a2enmod rewrite

変更を有効にするには、Apacheを再起動します。

sudo systemctl restart apache2

次に、 tube.yourdomain.comにアクセスします セットアップウィザードページ( tube.yourdomain.com/install/index.php )にリダイレクトされます )。セットアップウィザードの代わりにデフォルトのApacheページが表示される場合は、デフォルトの仮想ホストを無効にする必要があります。

sudo a2dissite 000-default.conf

そして、Apacheを再起動します。

セットアップウィザードに情報を入力する前に、HTTPSを有効にする必要があります。

Nginx

Nginxが必要な場合は、 youphptube.confを作成します /etc/nginx/conf.d/のファイル ディレクトリ。

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

次のテキストをファイルに入れます。赤い色のテキストを実際のデータに置き換えます。このチュートリアルではサブドメインを使用します。必要に応じて、メインドメイン名を使用できます。 DNSレコードマネージャーでドメイン名のDNSAレコードを設定することを忘れないでください。また、ドキュメントのルートディレクトリでは大文字と小文字が区別されることに注意してください。

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

}

ファイルを保存して閉じます。次に、Nginx構成をテストします。

sudo nginx -t

テストが成功した場合は、変更を有効にするためにNginxをリロードします。

sudo systemctl reload nginx

次に、 tube.yourdomain.comにアクセスします セットアップウィザードページ( tube.yourdomain.com/install/index.php )にリダイレクトされます )。セットアップウィザードに情報を入力する前に、HTTPSを有効にする必要があります。

ステップ5:HTTPSを有効にする

HTTPトラフィックを暗号化するには、Let’sEncryptから発行された無料のTLS証明書をインストールしてHTTPSを有効にします。次のコマンドを実行して、Let’s Encryptクライアント(certbot)をDebian10Busterサーバーにインストールします。

sudo apt install certbot

Apacheを使用する場合は、CertbotApacheプラグインもインストールする必要があります。

sudo apt install python3-certbot-apache

そして、このコマンドを実行してTLS証明書を取得してインストールします。

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

Nginxを使用する場合は、CertbotNginxプラグインをインストールしてください。

sudo apt install python3-certbot-nginx

次に、次のコマンドを実行してTLS証明書を取得してインストールします。

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

どこ

  • -nginx :nginxプラグインを使用してください。
  • -apache :Apacheプラグインを使用してください。
  • -agree-tos :利用規約に同意します。
  • -リダイレクト :301リダイレクトでHTTPSを強制します。
  • -hsts :すべてのHTTP応答にStrict-Transport-Securityヘッダーを追加します。ドメインに常にTLSを使用するようにブラウザを強制します。 SSL/TLSストリッピングから防御します。
  • -staple-ocsp :OCSPステープリングを有効にします。有効なOCSP応答は、TLS中にサーバーが提供する証明書にホチキス止めされます。

これで、証明書が取得され、自動的にインストールされます。

ステップ6:セットアップウィザードを使用してインストールを終了する

次に、 tube.yourdomain.comにアクセスします セットアップウィザードが表示されます。左側で、サーバーが要件を満たしているかどうかを確認できます。

Nginxを使用している場合は、次のメッセージを無視できます。

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

ご覧のとおり、PHPの post_max_size 少なくとも100Mで、 upload_max_filesizeである必要があります 少なくとも100Mである必要があります。 php.iniを編集する必要があります 2つの値を変更するファイル。 Apache Webサーバーを使用している場合は、

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

PHP-FPMでNginxを使用する場合は、php.iniファイルのFPMバージョンを編集する必要があります。

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

次の2行を見つけます。

post_max_size = 8M
upload_max_filesize = 2M

アップロードするビデオファイルのサイズに応じて値を変更します。たとえば、1Gビデオファイルのアップロードを許可する場合は、

post_max_size = 1024M
upload_max_filesize = 1024M

ファイルを保存して閉じます。変更を有効にするには、Apacheを再起動します。

sudo systemctl restart apache2

PHP-FPMでNginxを使用している場合は、PHP-FPMを再起動します。

sudo systemctl restart php7.3-fpm

次に、YouPHPTubeインストールウィザードページを更新します。サーバーはすべての要件に合格する必要があります。これで右側に、ビデオサイトのタイトルを入力できます。以前に作成したYouPHPTubeデータベース名、ユーザー、およびパスワードを入力します。 (注:エンコーダーデータベースではなく、メインデータベースを使用する必要があります。大文字と小文字が区別されることにも注意してください。)そして、システム管理者パスワードを設定します。

今すぐインストールをクリックします ボタンとYouPHPTubeが正常にインストールされているはずです。

次に、 / var / www / YouPHPTube / install /を削除する必要があります ディレクトリ。

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

メインページに移動をクリックします ボタンをクリックすると、YouPHPTubeのメインページが表示されます。

左側のドロップダウンメニューをクリックして、 adminとしてログインできます。 ユーザーと、少し前に設定したパスワードを使用します。

ステップ7:エンコーダーを設定する

https://tube.yourdomain.com/upload/にアクセスします 。エンコーダ設定ウィザードにリダイレクトされます。自動的にリダイレクトされない場合は、セットアップウィザードのURLを手動で入力できます。

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

左側には、サーバーがYouPHPTubeエンコーダーの要件を満たしているかどうかが表示されます。

Nginxを使用している場合は、次のメッセージを無視できます。

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

ご覧のとおり、PHPの max_execution_time 少なくとも7200で、PHP memory_limitである必要があります 少なくとも512Mである必要があります。 php.iniを編集する必要があります 2つの値を変更するファイル。 Apache Webサーバーを使用している場合は、

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

PHP-FPMでNginxを使用する場合は、php.iniファイルのFPMバージョンを編集する必要があります。

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

次の2行を見つけます。

max_execution_time = 30
memory_limit = 128M

値を変更します。

max_execution_time = 7200
memory_limit = 512M

後でビデオエンコーディングが途中で停止した場合は、 max_execution_timeを増やす必要があることに注意してください。 、またはCPUをアップグレードします。

ファイルを保存して閉じます。変更を有効にするには、Apacheを再起動します。

sudo systemctl restart apache2

PHP-FPMでNginxを使用している場合は、PHP-FPMを再起動します。

sudo systemctl restart php7.3-fpm

次に、YouPHPTubeエンコーダのインストールウィザードページを更新します。サーバーはすべての要件に合格する必要があります。次に右側に、前に作成したYouPHPTubeEncoderデータベース名、ユーザー、およびパスワードを入力する必要があります。大文字と小文字を区別し、ストリーマーサイトの管理者パスワードを入力してください。

[今すぐインストール]ボタンをクリックすると、YouPHPTubeエンコーダーがインストールされます。

インストールディレクトリを削除します。

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

そして、メインページに移動します。

ステップ8:エンコーダーURLを変更する

デフォルトでは、YouPHPTubeはビデオのアップロードにパブリックエンコーダーを使用します。独自のエンコーダーを使用するには、YouPHPTube(YouPHPTubeエンコーダーではない)で管理者としてサインインし、左側の管理者パネルから管理者パネルに移動します。

設定に移動します ->サイト設定 ->高度な構成 。エンコーダーのURLをhttps://tube.yourdomain.com/upload/に変更します 。設定を保存し、キャッシュディレクトリをクリアして、新しいサイトマップを生成します。

次に、ログアウトして再度ログインします。[ビデオとオーディオのエンコード]をクリックした場合 右上隅のボタンをクリックすると、ビデオをアップロードするための独自のエンコーダーに移動します。エンコード速度はサーバーのCPUパワーに依存することに注意してください。

ステップ9:SMTPを構成する

電子メール(アカウント登録、パスワードのリセットなど)を送信するには、SMTPサーバーを構成する必要があります。独自のメールサーバーを使用してクライアントにメールを送信する場合は、次の記事を確認して独自のメールサーバーを設定してください。

  • Modoboaを使用してDebian9でメールサーバーをすばやく設定する方法

SMTPリレーサービスを利用したい場合は、Mailjetをお勧めします。以下のチュートリアルに従って、YouPHPTubeサーバーにSMTPリレーを設定できます。

  • Mailjetを使用してDebianでPostfixSMTPリレーを設定する方法

TCPBBRを有効にする

ビデオストリーミングサーバーの場合、以下の記事の手順に従って、LinuxカーネルでTCPBBR輻輳制御アルゴリズムを有効にすることをお勧めします。 (Ubuntu用に書かれていますが、Debian 10 Busterでも動作します。)

  • TCPBBRを有効にしてUbuntu16.04/18.04ネットワークパフォーマンスを簡単に向上させる方法

モバイルアプリ

YouPHPTube を検索すると、無料のAndroidアプリまたはiOSアプリをダウンロードできます。 GooglePlayストアまたはYPTMobile AppleStoreで。ホワイトラベルのモバイルアプリには有料ライセンスが必要です。

トラブルシューティング

YouPHPTubeのメインページでCSSおよびJavaScriptリソースの読み込みに失敗した場合

WebルートディレクトリのApacheまたはNginx仮想ホストファイルにスラッシュを追加した可能性があります。使用する代わりに

DocumentRoot /var/www/YouPHPTube/

使用する必要があります

DocumentRoot /var/www/YouPHPTube

エンコーダが正しく機能していない場合は、 /var/www/YouPHPTube/upload/videos/youphptube.logでログファイルを確認できます。 。

その他のヒント

ビデオをエンコードするときは、解像度(低、SD、HD)を選択できます。 YouPHPTubeを個人のビデオストリーミングサイトとして使用する場合は、エンコード時間を短縮し、ディスク容量を節約するためにのみ、HD解像度を選択することをお勧めします。すでに3つの解像度すべてにビデオをエンコードしている場合は、YouPHPTubeビデオディレクトリ(/ var / www / YouPHPTube / videos)に移動して、低解像度およびSD解像度のビデオを削除できます。

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

ビデオサイトからすべてのビデオをダウンロードする方法

youtube-dlを使用できます すべてのビデオをダウンロードするコマンドラインユーティリティ。まず、YouPHPTubeダッシュボードに移動し、次にビデオリストページに移動して一番下までスクロールし、ビデオリスト(パーマリンク.txtファイル)をダウンロードをクリックする必要があります。 ボタン。すべての動画のURLのリストが表示されます。

次に、ターミナルを開き、テキストエディタでtxtファイルを作成し、WebページからURLをコピーして、ファイルに貼り付けます。次に、次のコマンドを実行してビデオをダウンロードできます。 video-list.txtを置き換えます 自分のファイル名で。

youtube-dl -a video-list.txt

Debian
  1. badIPs.comでサーバーを保護し、DebianでFail2banを使用してIPを報告する方法

  2. MySQLサーバーをDebian10Busterにインストールする方法

  3. Debian9でPostfixAdminを使用してメールサーバーを設定する

  1. Linuxで独自のビデオストリーミングサーバーを作成する

  2. スクリーンショット付きのDebian10(Buster)インストール手順

  3. 独自のクラウドを実行する:Debian8にOwnCloud9をインストールする

  1. Debian9にApacheを使用してWordPress5をインストールします

  2. Debian11およびDebian10で独自のWireGuardVPNサーバーをセットアップする

  3. iRedMailを使用してDebian10Busterでメールサーバーを簡単にセットアップする方法