GNU/Linux >> Belajar Linux >  >> Debian

Jalankan Situs Web Berbagi Video Anda Sendiri dengan YouPHPTube di Debian 10 Buster

Tutorial ini akan menunjukkan cara menjalankan situs web berbagi video Anda sendiri dengan YouPHPTube di Debian 10 Buster. YouPHPTube adalah sumber terbuka, alternatif yang dihosting sendiri untuk situs web berbagi video seperti YouTube, Vimeo, dll. Dengan YouPHPTube, Anda dapat mengunggah video ke server Anda sendiri dan membagikannya ke Internet.

Fitur YouPHPTube

  • Streaming langsung tanpa batas dan simultan dan Anda dapat menghubungkan pengguna tanpa batas ke setiap streaming langsung.
  • Impor dan enkode video dari situs lain langsung dari Internet
  • Encoding massal dari direktori video lokal
  • Buat video pribadi
  • Fungsi yang sepenuhnya terintegrasi dengan Youtube, memungkinkan Anda menyinkronkan video Anda dengan Youtube
  • Transcode beberapa format file multimedia ke file MP4, WebM dan MP3
  • Mendukung Amazone S3 (Layanan Penyimpanan Sederhana)
  • Tata letak situs responsif. YouPHPTube terlihat luar biasa di perangkat apa pun. (Anda dapat memilih tata letak gaya YouTube atau Netfilx.)
  • Saluran pengguna dan daftar putar pengguna
  • Berlangganan saluran yang Anda suka
  • Anda dapat memantau performa video Anda dengan metrik dan laporan terbaru di Statistik YouPHPTube.
  • Perluas fungsionalitas situs dengan plugin.
  • SEO Dioptimalkan
  • Aplikasi iOS dan Android tersedia

Persyaratan Server YouPHPTube

Pertama, Anda harus tahu bahwa CPU inti tunggal tidak dapat digunakan untuk situs web berbagi video, karena proses penyandian akan menggunakan banyak sumber daya CPU.

Kemudian pilih spesifikasi server sesuai dengan jumlah pengguna yang dimiliki situs Anda.

  • Jika Anda hanya ingin menggunakannya untuk berbagi video Anda sendiri, Anda memerlukan server dengan setidaknya 2 inti CPU dan RAM 4GB. Anda dapat membeli VPS (server pribadi virtual) yang kuat dari Contabo dengan biaya yang sangat murah.
  • Jika Anda berharap situs Anda memiliki lusinan pengguna, maka Anda dapat mempertimbangkan VPS ekstra besar Contabo, yang memiliki 10 inti CPU, RAM 60GB, kecepatan port 1Gbit/dtk, ruang disk 1,6TB, lalu lintas tak terbatas tetapi biayanya hanya 26,99 Euro/bulan.
  • Bila situs Anda berkembang lebih dari itu, Anda harus membeli server khusus.

Persyaratan Perangkat Lunak untuk Menginstal YouPHPTube di Debian 10 Buster

YouPHPTube membutuhkan PHP dan MySQL/MariaDB. Untuk mengikuti tutorial ini, Anda seharusnya sudah menyiapkan tumpukan LAMP atau tumpukan LEMP. Jika Anda lebih suka menggunakan server web Apache, instal tumpukan LAMP.

  • Cara Menginstal tumpukan LAMP (Apache, MariaDB, PHP) di Debian 10 Buster

Jika Anda lebih suka menggunakan server web Nginx, maka instal LEMP stack.

  • Cara Menginstal tumpukan LEMP (Nginx, MariaDB, PHP) di Debian 10 Buster

Catatan :Dukungan YouPHPTube dengan Nginx hanya eksperimental. Anda mungkin mengalami masalah jika menggunakan Nginx.

Anda juga memerlukan nama domain. Saya mendaftarkan nama domain saya di NameCheap karena harganya murah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.

YouPHPTube terdiri dari dua bagian.

  • Bagian utama adalah server streamer ujung depan, yang memungkinkan pengguna untuk menonton video yang ada.
  • Bagian lainnya adalah encoder, yang memungkinkan pengguna mengupload video mereka.

Encoder publik menggunakan nama domain encoder.youphptube.com . Jika Anda tidak ingin pengguna meninggalkan situs Anda saat mengunggah video, Anda perlu menyiapkan pembuat enkode pribadi Anda. Saya akan menunjukkan caranya di artikel ini. Tanpa basa-basi lagi, mari kita mulai.

Langkah 1:Unduh YouPHPTube di Debian 10 Buster Server

Masuk ke server Debian 10 Buster Anda melalui SSH. Lalu pergi ke direktori root web.

cd /var/www/

Kloning repositori streamer YouPHPTube dari Github.

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

Kemudian masuk ke direktori.

cd YouPHPTube/

Kloning repositori encoder YouPHPTube dari Github.

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

Ini akan disimpan sebagai YouPHPTube-Encoder . Kami mengganti namanya menjadi upload , sehingga pengguna dapat lebih memahami untuk apa URL ini saat mengupload video.

sudo mv YouPHPTube-Encoder upload

Selanjutnya, kita perlu menjadikan www-data (pengguna web server) sebagai pemilik root web.

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

Langkah 2:Instal Dependensi

YouPHPTube menggunakan FFmpeg untuk mengkodekan video. Kita dapat dengan mudah menginstal FFmpeg dari repositori default Debian.

sudo apt install ffmpeg

Untuk membaca dan menulis informasi meta dalam file multimedia, kita perlu menginstal libimage-exiftool-perl paket.

sudo apt install libimage-exiftool-perl

Anda juga perlu menginstal beberapa ekstensi PHP umum.

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

Untuk mengambil video dari situs lain, kita perlu menginstal YouTube-DL. Meskipun termasuk dalam repositori Debian, tetapi sudah usang. Kami akan menginstal YouTube-DL dari Python Package Index, yang selalu berisi YouTube-DL versi terbaru.

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

Sangat penting bagi Anda untuk menggunakan versi terbaru, atau Anda mungkin tidak dapat mengunduh video dari situs lain. Kami dapat membuat tugas Cron untuk memeriksa dan menginstal versi terbaru secara otomatis.

sudo crontab -e

Tambahkan baris berikut di akhir file Crontab untuk mencoba memutakhirkan YouTube-DL setiap hari.

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

Langkah 3:Buat Database dan Pengguna di MariaDB

Masuk ke server database MariaDB dengan perintah berikut. Karena MariaDB sekarang menggunakan unix_socket plugin untuk otentikasi login pengguna, tidak perlu memasukkan kata sandi root MariaDB. Kita hanya perlu mengawali mysql perintah dengan sudo .

sudo mysql

Kemudian buat database untuk YouPHPTube. Tutorial ini memberi nama database YouPHPTube . Anda dapat menggunakan nama apa pun yang Anda suka.

create database YouPHPTube;

Buat pengguna basis data. Sekali lagi, Anda dapat menggunakan nama pilihan Anda untuk pengguna ini. Ganti your-password dengan kata sandi pilihan Anda.

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

Berikan pengguna ini semua hak istimewa di youphptube basis data.

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

Kita juga perlu membuat database terpisah untuk encoder.

create database YouPHPTubeEncoder;

Buat pengguna untuk database ini.

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

Berikan hak istimewa.

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

Bersihkan tabel hak istimewa dan keluar.

flush privileges;

exit;

Langkah 4:Menyiapkan Server Web

Kita bisa menggunakan server web Apache atau Nginx.

Apache

Jika Anda lebih suka Apache, buat file host virtual untuk YouPHPTube dengan editor teks baris perintah seperti Nano.

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

Masukkan teks berikut ke dalam file. Ganti teks berwarna merah dengan data Anda yang sebenarnya. Saya menggunakan subdomain dalam tutorial ini. Anda dapat menggunakan nama domain utama Anda jika Anda mau. Jangan lupa untuk mengatur DNS A record untuk nama domain di DNS record manager Anda. Perhatikan juga bahwa direktori root dokumen peka terhadap huruf besar-kecil dan Anda tidak boleh menambahkan garis miring di akhir.

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

Simpan dan tutup file. Kemudian aktifkan host virtual ini.

sudo a2ensite youphptube.conf

Kita perlu mengaktifkan modul rewrite.

sudo a2enmod rewrite

Mulai ulang Apache agar perubahan diterapkan.

sudo systemctl restart apache2

Sekarang kunjungi tube.yourdomain.com dan Anda akan diarahkan ke halaman wizard pengaturan (tube.yourdomain.com/install/index.php ). Jika Anda melihat halaman Apache default alih-alih wizard pengaturan, maka Anda harus menonaktifkan virtual host default.

sudo a2dissite 000-default.conf

Dan restart Apache.

Sebelum memasukkan informasi apa pun di wizard penyiapan, kita harus mengaktifkan HTTPS.

Nginx

Jika Anda lebih suka Nginx, buat youphptube.conf file di /etc/nginx/conf.d/ direktori.

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

Masukkan teks berikut ke dalam file. Ganti teks berwarna merah dengan data Anda yang sebenarnya. Saya menggunakan subdomain dalam tutorial ini. Anda dapat menggunakan nama domain utama Anda jika Anda mau. Jangan lupa untuk mengatur DNS A record untuk nama domain di DNS record manager Anda. Perhatikan juga bahwa direktori root dokumen peka huruf besar/kecil.

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

}

Simpan dan tutup file. Kemudian uji konfigurasi Nginx.

sudo nginx -t

Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Sekarang kunjungi tube.yourdomain.com dan Anda akan diarahkan ke halaman wizard pengaturan (tube.yourdomain.com/install/index.php ). Sebelum memasukkan informasi apa pun di wizard penyiapan, kita harus mengaktifkan HTTPS.

Langkah 5:Mengaktifkan HTTPS

Untuk mengenkripsi lalu lintas HTTP, kita dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di server Debian 10 Buster.

sudo apt install certbot

Jika Anda menggunakan Apache, Anda juga perlu menginstal plugin Certbot Apache.

sudo apt install python3-certbot-apache

Dan jalankan perintah ini untuk mendapatkan dan menginstal sertifikat TLS.

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

Jika Anda menggunakan Nginx, instal plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.

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

Dimana

  • --nginx :Gunakan plugin nginx.
  • --apache :Gunakan plugin Apache.
  • --agree-tos :Menyetujui persyaratan layanan.
  • --redirect :Memaksa HTTPS dengan pengalihan 301.
  • --hsts : Tambahkan header Strict-Transport-Security ke setiap respons HTTP. Memaksa browser untuk selalu menggunakan TLS untuk domain. Mempertahankan dari SSL/TLS Stripping.
  • --staple-ocsp : Mengaktifkan Stapel OCSP. Respons OCSP yang valid ditempelkan ke sertifikat yang ditawarkan server selama TLS.

Sertifikat sekarang harus diperoleh dan diinstal secara otomatis.

Langkah 6:Selesaikan Instalasi dengan Setup Wizard

Sekarang buka tube.yourdomain.com dan wizard pengaturan akan muncul. Di sisi kiri, Anda dapat melihat apakah server Anda memenuhi persyaratan.

Jika Anda menggunakan Nginx, Anda dapat mengabaikan pesan berikut.

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

Seperti yang Anda lihat, post_max_size PHP minimal harus 100 juta dan upload_max_filesize harus minimal 100M. Kita perlu mengedit php.ini file untuk mengubah dua nilai. Jika Anda menggunakan server web Apache, maka

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

Jika Anda menggunakan Nginx dengan PHP-FPM, maka Anda perlu mengedit file php.ini versi FPM.

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

Temukan dua baris berikut.

post_max_size = 8M
upload_max_filesize = 2M

Ubah nilainya sesuai dengan ukuran file video yang akan Anda unggah. Misalnya, jika Anda mengizinkan pengunggahan file video 1G, maka

post_max_size = 1024M
upload_max_filesize = 1024M

Simpan dan tutup file. Mulai ulang Apache agar perubahan diterapkan.

sudo systemctl restart apache2

Jika Anda menggunakan Nginx dengan PHP-FPM, mulai ulang PHP-FPM.

sudo systemctl restart php7.3-fpm

Sekarang segarkan halaman wizard penginstalan YouPHPTube. Server Anda harus memenuhi semua persyaratan. Sekarang di sisi kanan, Anda dapat memasukkan judul situs video Anda. Masukkan nama database YouPHPTube, pengguna dan kata sandi yang Anda buat sebelumnya. (Catatan:Anda harus menggunakan database utama, bukan database encoder. Perhatikan juga case-sensitive.) Dan tetapkan kata sandi admin sistem.

Klik tombol Install now dan YouPHPTube harus berhasil diinstal.

Sekarang kita perlu menghapus /var/www/YouPHPTube/install/ direktori.

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

Klik tombol Go to the main page dan Anda akan melihat halaman utama YouPHPTube.

Anda dapat mengklik menu tarik-turun di sebelah kiri dan login sebagai admin pengguna dan dengan kata sandi yang Anda tetapkan beberapa saat yang lalu.

Langkah 7:Siapkan Encoder

Buka https://tube.yourdomain.com/upload/ . Anda akan diarahkan ke wizard penyiapan Encoder. Jika Anda tidak dialihkan secara otomatis, Anda dapat memasukkan URL wizard penyiapan secara manual.

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

Sisi kiri akan menunjukkan kepada Anda apakah server Anda memenuhi persyaratan YouPHPTube Encoder.

Jika Anda menggunakan Nginx, Anda dapat mengabaikan pesan berikut.

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

Seperti yang Anda lihat PHP max_execution_time minimal harus 7200 dan PHP memory_limit harus minimal 512M. Kita perlu mengedit php.ini file untuk mengubah dua nilai. Jika Anda menggunakan server web Apache, maka

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

Jika Anda menggunakan Nginx dengan PHP-FPM, maka Anda perlu mengedit file php.ini versi FPM.

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

Temukan dua baris berikut.

max_execution_time = 30
memory_limit = 128M

Ubah nilainya .

max_execution_time = 7200
memory_limit = 512M

Perhatikan bahwa jika penyandian video nanti berhenti di tengah jalan, Anda perlu menambah max_execution_time , atau tingkatkan CPU Anda.

Simpan dan tutup file. Mulai ulang Apache agar perubahan diterapkan.

sudo systemctl restart apache2

Jika Anda menggunakan Nginx dengan PHP-FPM, mulai ulang PHP-FPM.

sudo systemctl restart php7.3-fpm

Sekarang segarkan halaman wizard penginstalan YouPHPTube Encoder. Server Anda harus memenuhi semua persyaratan. Sekarang di sisi kanan, Anda harus memasukkan nama database YouPHPTubeEncoder, pengguna dan kata sandi yang Anda buat sebelumnya. Waspadai huruf besar-kecil dan masukkan kata sandi admin situs streamer.

Klik tombol Instal Sekarang dan Encoder YouPHPTube akan diinstal.

Hapus direktori instal.

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

Dan pergi ke halaman utama.

Langkah 8 :Ubah URL Encoder

Secara default, YouPHPTube menggunakan encoder publik untuk mengunggah video. Untuk menggunakan encoder Anda sendiri, masuk sebagai admin di YouPHPTube (bukan encoder YouPHPTube) dan buka panel admin dari panel admin sisi kiri.

Buka settings -> site settings -> advanced configuration . Ubah URL Encoder menjadi https://tube.yourdomain.com/upload/ . Simpan pengaturan, bersihkan direktori cache dan buat peta situs baru.

Sekarang logout dan login kembali. Jika Anda mengklik encode video and audio tombol di sudut kanan atas, Anda akan dibawa ke encoder Anda sendiri untuk mengunggah video. Perlu diperhatikan bahwa kecepatan encoding bergantung pada daya CPU server Anda.

Langkah 9:Konfigurasi SMTP

Untuk mengirim email (seperti pendaftaran akun, reset kata sandi, dll), Anda perlu mengkonfigurasi server SMTP. Jika Anda ingin menggunakan server email Anda sendiri untuk mengirim email ke klien, silakan baca artikel berikut untuk menyiapkan server email Anda sendiri.

  • Cara cepat menyiapkan server email di Debian 9 dengan Modoboa

Jika Anda ingin menggunakan layanan relai SMTP, saya sarankan Mailjet. Anda dapat mengikuti tutorial di bawah ini untuk menyiapkan relai SMTP di server YouPHPTube Anda.

  • Cara Menyetel relai SMTP Postfix di Debian dengan Mailjet

Aktifkan TCP BBR

Untuk server streaming video, disarankan untuk mengaktifkan algoritma kontrol kongesti TCP BBR di kernel Linux dengan mengikuti petunjuk dalam artikel di bawah ini. (Ini ditulis untuk Ubuntu, tetapi juga berfungsi di Debian 10 Buster.)

  • Cara Mudah Meningkatkan Kinerja Jaringan Ubuntu 16.04/18.04 dengan Mengaktifkan TCP BBR

Aplikasi Seluler

Anda dapat mengunduh aplikasi android atau aplikasi iOS gratis dengan melakukan pencarian untuk YouPHPTube di Google Play Store atau YPT Mobile di Apple Store. Aplikasi seluler white-label memerlukan lisensi berbayar.

Pemecahan Masalah

Jika halaman utama YouPHPTube Anda gagal memuat beberapa sumber daya CSS dan JavaScript,

Sepertinya Anda telah menambahkan garis miring ekstra di file host virtual Apache atau Nginx untuk direktori root web. Alih-alih menggunakan

DocumentRoot /var/www/YouPHPTube/

Anda harus menggunakan

DocumentRoot /var/www/YouPHPTube

Jika encoder Anda tidak berfungsi dengan benar, Anda dapat memeriksa file log di /var/www/YouPHPTube/upload/videos/youphptube.log .

Informasi Menarik Lainnya

Saat menyandikan video, Anda dapat memilih resolusi (rendah, SD, HD). Jika Anda menggunakan YouPHPTube sebagai situs streaming video pribadi, saya sarankan memilih resolusi HD hanya untuk mengurangi waktu penyandian dan menghemat ruang disk. Jika Anda telah mengkodekan video ke semua 3 resolusi, Anda dapat membuka direktori video YouPHPTube (/var/www/YouPHPTube/videos) dan menghapus video resolusi rendah dan resolusi SD.

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

Cara Mengunduh Semua Video Dari Situs Video Anda

Anda dapat menggunakan youtube-dl utilitas baris perintah untuk mengunduh semua video. Pertama, Anda harus masuk ke dashboard YouPHPTube, lalu masuk ke halaman daftar video dan scroll ke bawah hingga ke bawah, klik download daftar video Anda (file permalink .txt) tombol. Anda akan melihat daftar URL untuk semua video.

Selanjutnya, buka terminal dan buat file txt dengan editor teks, salin URL dari halaman web dan tempel ke file. Kemudian Anda dapat menjalankan perintah berikut untuk mengunduh video. Ganti video-list.txt dengan nama file Anda sendiri.

youtube-dl -a video-list.txt

Debian
  1. Bagaimana melindungi server Anda dengan badIPs.com dan melaporkan IP dengan Fail2ban di Debian

  2. Cara Menginstal Server MySQL di Debian 10 Buster

  3. Siapkan Server Mail dengan PostfixAdmin di Debian 9

  1. Buat server streaming video Anda sendiri dengan Linux

  2. Langkah Instalasi Debian 10 (Buster) dengan Tangkapan Layar

  3. Jalankan cloud Anda sendiri:Menginstal OwnCloud 9 di Debian 8

  1. Instal WordPress 5 dengan Apache di Debian 9

  2. Siapkan Server VPN WireGuard Anda Sendiri di Debian 11 &Debian 10

  3. Cara Mudah Mengatur Server Mail di Debian 10 Buster dengan iRedMail