GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal AVideo/YouPHPTube di Server Ubuntu 18.04

Tutorial ini akan menunjukkan cara menjalankan situs web berbagi video Anda sendiri dengan AVideo (sebelumnya YouPHPTube) di Ubuntu 18.04. AVideo adalah sumber terbuka, alternatif yang dihosting sendiri untuk situs web berbagi video seperti YouTube, Vimeo, dll. Dengan AVideo, pengguna dapat mengunggah video ke server Anda dan membagikannya ke Internet.

Fitur Video

  • 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, menyinkronkan video Anda dengan Youtube
  • Transcode beberapa format file multimedia ke file MP4, WebM dan MP3
  • Mendukung Amazon S3 (Layanan Penyimpanan Sederhana)
  • Tata letak situs responsif. AVideo 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 AVideo.
  • Perluas fungsionalitas situs dengan plugin.
  • SEO Dioptimalkan
  • Aplikasi iOS dan Android tersedia

Persyaratan Server AVideo

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 AVideo di Ubuntu 18.04

AVideo 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 Ubuntu 18.04

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

  • Cara Menginstal tumpukan LEMP (Nginx, MariaDB, PHP) di Ubuntu 18.04

Catatan :Dukungan AVideo dengan Nginx hanya eksperimental. Situs Anda mungkin mengalami masalah jika Anda 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.

AVideo terdiri dari dua bagian.

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

Encoder publik menggunakan nama domain https://encoder1.avideo.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 AVideo di Server Ubuntu 18.04

Masuk ke server Ubuntu 18.04 Anda melalui SSH. Lalu pergi ke direktori root web.

cd /var/www/

Kloning repositori streamer AVideo dari Github.

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

Kemudian masuk ke direktori.

cd AVideo/

Kloning repositori encoder AVideo dari Github.

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

Ini akan disimpan sebagai AVideo-Encoder . Kami mengganti namanya menjadi upload , sehingga pengguna dapat memiliki gagasan yang lebih baik tentang kegunaan URL ini saat mengupload video.

sudo mv AVideo-Encoder upload

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

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

Langkah 2:Instal Dependensi

AVideo menggunakan FFmpeg untuk mengkodekan video. Kita dapat dengan mudah menginstal FFmpeg dari repositori default Ubuntu.

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.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-curl php7.2-gd php7.2-xml

Untuk mengambil video dari situs lain, kita perlu menginstal YouTube-DL. Meskipun termasuk dalam repositori Ubuntu, 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

Sebelum membuat database dan pengguna, kita perlu mengubah beberapa pengaturan di MariaDB. Edit file konfigurasi.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

AVideo akan menggunakan awalan kunci indeks besar dalam database. Namun, MariaDB 10.1 menggunakan COMPACT format baris, yang tidak mendukung awalan kunci indeks besar. Kita dapat mengkonfigurasi MariaDB untuk menggunakan DYNAMIC format baris, yang merupakan pengaturan default di versi MariaDB yang lebih baru, dengan menambahkan baris berikut di InnoDB bagian di bawah [mysqld] unit dalam file.

# The Antelope file format doesn't support dynamic row format, we must use the
# Barracuda file format.
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda

# Dynamic row format is only supported if innodb_file_per_table is set to ON.
innodb_file_per_table = ON

# Set dynamic as the default row format, which supports large index key prefix.
innodb_default_row_format = dynamic

# Enable large prefix
innodb_large_prefix = ON

Simpan dan tutup file. Kemudian restart MariaDB.

sudo systemctl restart 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 AVideo. Tutorial ini memberi nama database AVideo . Anda dapat menggunakan nama apa pun yang Anda suka.

create database AVideo;

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

Berikan pengguna ini semua hak istimewa di AVideo basis data.

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

Kita juga perlu membuat database terpisah untuk encoder.

create database AVideoEncoder;

Buat pengguna untuk database ini.

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

Berikan hak istimewa.

grant all privileges on AVideoEncoder.* to AVideoEncoder@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 AVideo dengan editor teks baris perintah seperti Nano.

sudo nano /etc/apache2/sites-available/avideo.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. Juga, perhatikan 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/AVideo

    <Directory /var/www/AVideo>
       DirectoryIndex index.php
       Options +FollowSymLinks
       AllowOverride All
       Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/avideo.error.log
    CustomLog ${APACHE_LOG_DIR}/avideo.access.log combined

</VirtualHost>

Simpan dan tutup file. Kemudian aktifkan host virtual ini.

sudo a2ensite avideo.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 avideo.conf file di /etc/nginx/conf.d/ direktori.

sudo nano /etc/nginx/conf.d/avideo.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. Juga, perhatikan bahwa direktori root dokumen peka terhadap huruf besar/kecil.

server {
    listen      80;
    listen      [::]:80;
    server_name tube.yourdomain.com;

    root /var/www/AVideo;
    index index.php index.html index.htm;
    charset utf-8;
    client_max_body_size 2G;

    access_log  /var/log/nginx/avideo.access.log;
    error_log   /var/log/nginx/avideo.error.log;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.2-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 Ubuntu 18.04.

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/install/index.php 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.2/apache2/php.ini

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

sudo nano /etc/php/7.2/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.2-fpm

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

Klik tombol Install now tombol dan AVideo harus berhasil dipasang.

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

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

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

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 AVideo 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.2/apache2/php.ini

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

sudo nano /etc/php/7.2/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.2-fpm

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

Klik tombol Instal Sekarang dan AVideo Encoder akan diinstal.

Hapus direktori instal.

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

Dan pergi ke halaman utama.

Langkah 8 :Ubah URL Encoder

Secara default, AVideo menggunakan encoder publik untuk mengupload video. Untuk menggunakan pembuat enkode Anda sendiri, masuk sebagai admin di AVideo (bukan AVideo Encoder) dan buka panel admin dari bilah 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 dicatat bahwa kecepatan pengkodean tergantung pada kekuatan CPU server Anda. Tidak memerlukan banyak RAM karena encoder akan menyalin video ke file sementara di direktori unggah (/var/www/AVideo/upload/videos ).

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. Catatan bahwa saya sangat merekomendasikan menjalankan server email iRedMail pada OS bersih yang baru. Menginstal iRedMail pada OS yang memiliki aplikasi web lain dapat gagal, dan kemungkinan merusak aplikasi yang ada.

  • Cara mudah menyiapkan server email di Ubuntu 18.04 dengan iRedMail

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

  • Cara Menyetel relai SMTP Postfix di Ubuntu dengan Mailjet

Anda dapat menguji pengiriman email dengan membuka admin panel -> Setttings -> Site Settings -> Advanced Configuration , Anda dapat menemukan konfigurasi SMTP. Gunakan pengaturan berikut.

  • Aktifkan SMTP.
  • Aktifkan SMTP Auth.
  • Gunakan tls di SMTP Aman.
  • Gunakan 587 sebagai port SMTP.
  • Masukkan nama host server email Anda.
  • Masukkan nama pengguna dan sandi SMTP.

Klik tombol Save untuk menyimpan pengaturan, lalu klik Test Email untuk melihat apakah itu berfungsi.

Aktifkan TCP BBR

Untuk server streaming video, disarankan untuk mengaktifkan algoritme kontrol kongesti TCP BBR di kernel Linux dengan mengikuti petunjuk dalam artikel di bawah ini.

  • Cara Mudah Meningkatkan Kinerja Jaringan Ubuntu dengan Mengaktifkan TCP BBR

Aplikasi Seluler

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

Pemecahan Masalah

Jika halaman utama AVideo 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/AVideo/

Anda harus menggunakan

DocumentRoot /var/www/AVideo

Jika situs web utama tidak berfungsi dengan baik, Anda dapat memeriksa file log di /var/www/AVideo/videos/avideo.log . Jika encoder Anda tidak berfungsi dengan benar, Anda dapat memeriksa file log di /var/www/AVideo/upload/videos/avideo.log .

Informasi Menarik Lainnya

Saat menyandikan video, Anda dapat memilih resolusi (rendah, SD, HD). Jika Anda menggunakan AVideo 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 AVideo (/var/www/AVideo/videos) dan menghapus video resolusi rendah dan resolusi SD.

cd /var/www/AVideo/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 pergi ke dashboard AVideo, lalu pergi ke halaman daftar video dan gulir ke bawah ke bawah, klik download daftar video Anda (file .txt permalink) 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

Ubuntu
  1. Cara Menginstal MySQL di Ubuntu 18.04

  2. Cara Memasang Server Minecraft di Ubuntu 18.04

  3. Cara Instal Zimbra 8.6 di Server Ubuntu 14.04

  1. Cara Menginstal Nginx di Ubuntu 20.04

  2. Cara Menginstal MariaDB di Ubuntu 20.04

  3. Cara Menginstal Server VNC Di Ubuntu 14.04

  1. Cara Instal OpenSIPS Server di Ubuntu 15.04

  2. Cara Menginstal Server Konsul di Ubuntu 16.04

  3. Cara Menginstal Zabbix di Ubuntu 18.04