GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal AVideo/YouPHPTube di Server CentOS 8

Tutorial ini akan menunjukkan kepada Anda cara menjalankan situs web berbagi video Anda sendiri dengan AVideo (sebelumnya dikenal sebagai YouPHPTube) di CentOS 8. AVideo adalah alternatif sumber terbuka 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 CentOS 8

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

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

  • Cara Menginstal tumpukan LEMP (Nginx, MariaDB, PHP) di CentOS 8

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

Masuk ke server CentOS 8 Anda melalui SSH. Lalu pergi ke direktori root web.

cd /var/www/

Kloning repositori streamer AVideo dari Github.

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

Unggahan Sudo mv AVideo-Encoder

Selanjutnya, kita perlu menjadikan pengguna server web sebagai pemilik root web.

Apache

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

Nginx

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

Kita juga perlu mengubah konteks SELinux agar server web dapat menulis ke direktori ini.

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

Langkah 2:Instal Dependensi

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

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

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

sudo dnf install perl-Image-ExifTool

Anda juga perlu menginstal beberapa ekstensi PHP umum.

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

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

sudo dnf install python3-pipsudo -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 shell MySQL/MariaDB sebagai root dengan perintah berikut. Anda harus memasukkan kata sandi root MySQL/MariaDB.

mysql -u root -p

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

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

buat pengguna AVideo@localhost yang diidentifikasi dengan 'kata sandi Anda';

Berikan pengguna ini semua hak istimewa di AVideo basis data.

berikan semua hak istimewa di AVideo.* kepada AVideo@localhost;

Kita juga perlu membuat database terpisah untuk encoder.

buat database AVideoEncoder;

Buat pengguna untuk database ini.

buat pengguna AVideoEncoder@localhost yang diidentifikasi dengan 'kata sandi Anda';

Berikan hak istimewa.

berikan semua hak istimewa di AVideoEncoder.* kepada AVideoEncoder@localhost;

Bersihkan tabel hak istimewa dan keluar.

hak flush;keluar;

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/httpd/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 dan Anda tidak boleh menambahkan garis miring di akhir.

 ServerName tube.yourdomain.com DocumentRoot /var/www/AVideo /var/www/AVideo> DirectoryIndex index.php Opsi +FollowSymLinks AllowOverride Semua Perlu semua diberikan  ErrorLog /var/log/httpd/avideo.error.log CustomLog /var/log/httpd/avideo.access.log digabungkan 

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

sudo systemctl restart httpd

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.

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. Perhatikan juga bahwa direktori root dokumen peka huruf besar/kecil.

server { dengarkan 80; dengarkan [::]:80; server_name tube.domainanda.com; root /var/www/AVideo; indeks index.php index.html index.htm; rangkaian karakter utf-8; client_max_body_size 2G; access_log /var/log/nginx/avideo.access.log; error_log /var/log/nginx/avideo.error.log; lokasi ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; termasuk fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } # menerjemahkan aturan penulisan ulang Apache di file .htaccess ke lokasi aturan penulisan ulang Nginx / { rewrite ^/$ /view/ last; } lokasi /bootstrap { tulis ulang ^/bootstrap/(.+)$ /view/bootstrap/$1 last; } lokasi /js { tulis ulang ^/js/(.+)$ /view/js/$1 last; } lokasi /css { tulis ulang ^/css/(.+)$ /view/css/$1 terakhir; } lokasi /img { tulis ulang ^/img/(.+)$ /view/img/$1 terakhir; } lokasi /halaman { tulis ulang ^/halaman/([0-9]+)/?$ /view/?page=$1 terakhir; } lokasi /videoOnly { tulis ulang ^/videoOnly/?$ /view/?type=video last; } lokasi /audioOnly { tulis ulang ^/audioOnly/?$ /view/?type=audio last; } lokasi =/download { tulis ulang ^(.*)$ /view/downloadExternalVideo.php last; } lokasi =/downloadNow { tulis ulang ^(.*)$ /objects/downloadVideo.php last; } lokasi =/getDownloadProgress { tulis ulang ^(.*)$ /objects/downloadVideoProgress.php terakhir; } lokasi =/about { tulis ulang ^(.*)$ /view/about.php terakhir; } lokasi =/contact { tulis ulang ^(.*)$ /view/contact.php last; } lokasi =/sendEmail { tulis ulang ^(.*)$ /objects/sendEmail.json.php terakhir; } lokasi =/captcha { tulis ulang ^(.*)$ /objects/getCaptcha.php terakhir; } lokasi /monitor { tulis ulang ^/monitor/(.+)$ /objects/ServerMonitor/$1 last; } lokasi /cat { tulis ulang ^/cat/([A-Za-z0-9-]+)/?$ /view/?catName=$1 last; } lokasi /video { tulis ulang ^/video/([A-Za-z0-9-_.]+)/?$ /view/?videoName=$1 last; } lokasi /videoEmbeded { tulis ulang ^/videoEmbeded/([A-Za-z0-9-_.]+)/?$ /view/videoEmbeded.php?videoName=$1 last; } lokasi =/upload { tulis ulang ^(.*)$ /view/mini-upload-form/ last; } lokasi =/fileUpload { tulis ulang ^(.*)$ /view/mini-upload-form/upload.php last; } lokasi /uploadStatu { tulis ulang ^/uploadStatus /view/mini-upload-form/videoConversionStatus.php terakhir; } lokasi =/user { tulis ulang ^(.*)$ /view/user.php terakhir; } lokasi =/users { tulis ulang ^(.*)$ /view/managerUsers.php terakhir; } lokasi =/users.json { tulis ulang ^(.*)$ /objects/users.json.php terakhir; } lokasi =/updateUser { tulis ulang ^(.*)$ /objects/userUpdate.json.php terakhir; } lokasi =/savePhoto { tulis ulang ^(.*)$ /objects/userSavePhoto.php terakhir; } lokasi =/addNewUser { tulis ulang ^(.*)$ /objects/userAddNew.json.php terakhir; } lokasi =/deleteUser { tulis ulang ^(.*)$ /objects/userDelete.json.php terakhir; } lokasi =/recoverPass { tulis ulang ^(.*)$ /objects/userRecoverPass.php terakhir; } lokasi =/saveRecoverPassword { tulis ulang ^(.*)$ /objects/userRecoverPassSave.json.php terakhir; } lokasi =/signUp { tulis ulang ^(.*)$ /view/signUp.php terakhir; } lokasi =/createUser { tulis ulang ^(.*)$ /objects/userCreate.json.php terakhir; } lokasi =/usersGroups { tulis ulang ^(.*)$ /view/managerUsersGroups.php terakhir; } lokasi =/usersGroups.json { tulis ulang ^(.*)$ /objects/usersGroups.json.php terakhir; } lokasi =/addNewUserGroups { tulis ulang ^(.*)$ /objects/userGroupsAddNew.json.php terakhir; } lokasi =/deleteUserGroups { tulis ulang ^(.*)$ /objects/userGroupsDelete.json.php terakhir; } lokasi =/ads { tulis ulang ^(.*)$ /view/managerAds.php terakhir; } lokasi =/addNewAd { tulis ulang ^(.*)$ /objects/video_adsAddNew.json.php terakhir; } lokasi =/ads.json { tulis ulang ^(.*)$ /objects/video_ads.json.php terakhir; } lokasi =/deleteVideoAd { tulis ulang ^(.*)$ /objects/video_adDelete.json.php terakhir; } lokasi /adClickLo { tulis ulang ^/adClickLog /objects/video_adClickLog.php terakhir; } lokasi =/kategori { tulis ulang ^(.*)$ /view/managerCategories.php terakhir; } lokasi =/categories.json { tulis ulang ^(.*)$ /objects/categories.json.php last; } lokasi =/addNewCategory { tulis ulang ^(.*)$ /objects/categoryAddNew.json.php terakhir; } lokasi =/deleteCategory { tulis ulang ^(.*)$ /objects/categoryDelete.json.php terakhir; } lokasi =/orphanFiles { tulis ulang ^(.*)$ /view/orphanFiles.php terakhir; } lokasi =/mvideos { tulis ulang ^(.*)$ /view/managerVideos.php terakhir; } lokasi =/videos.json { tulis ulang ^(.*)$ /objects/videos.json.php terakhir; } lokasi =/deleteVideo { tulis ulang ^(.*)$ /objects/videoDelete.json.php terakhir; } lokasi =/addNewVideo { tulis ulang ^(.*)$ /objects/videoAddNew.json.php terakhir; } lokasi =/refreshVideo { tulis ulang ^(.*)$ /objects/videoRefresh.json.php terakhir; } lokasi =/setStatusVideo { tulis ulang ^(.*)$ /objects/videoStatus.json.php terakhir; } lokasi =/reencodeVideo { tulis ulang ^(.*)$ /objects/videoReencode.json.php terakhir; } lokasi =/addViewCountVideo { tulis ulang ^(.*)$ /objects/videoAddViewCount.json.php terakhir; } lokasi =/saveComment { tulis ulang ^(.*)$ /objects/commentAddNew.json.php terakhir; } lokasi /komentar { rewrite ^/comments.json/([0-9]+)$ /objects/comments.json.php?video_id=$1 last; } lokasi =/login { tulis ulang ^(.*)$ /objects/login.json.php terakhir; } lokasi =/logoff { tulis ulang ^(.*)$ /objects/logoff.php terakhir; } lokasi =/like { tulis ulang ^(.*)$ /objects/like.json.php?like=1 last; } lokasi =/dislike { tulis ulang ^(.*)$ /objects/like.json.php?like=-1 last; } lokasi /update { tulis ulang ^/update/?$ /update/update.php terakhir; } lokasi =/siteConfigurations { tulis ulang ^(.*)$ /view/configurations.php terakhir; } lokasi =/updateConfig { tulis ulang ^(.*)$ /objects/configurationUpdate.json.php terakhir; } lokasi =/charts { tulis ulang ^(.*)$ /view/charts.php terakhir; } lokasi =/upload/index.php { tulis ulang ^(.*)$ /upload/view/index.php terakhir; } lokasi =/upload/isAdmin { tulis ulang ^(.*)$ /upload/view/isAdmin.php terakhir; } lokasi =/upload/removeStreamer { tulis ulang ^(.*)$ /upload/view/removeStreamer.php terakhir; } lokasi =/upload/priority { tulis ulang ^(.*)$ /upload/view/priority.php terakhir; } lokasi =/upload/status { tulis ulang ^(.*)$ /upload/view/status.php terakhir; } lokasi =/upload/serverStatus { tulis ulang ^(.*)$ /upload/view/status.php?serverStatus=1 last; } lokasi =/upload/upload { tulis ulang ^(.*)$ /upload/view/upload.php last; } lokasi =/upload/listFiles.json { tulis ulang ^(.*)$ /upload/view/listFiles.json.php last; } lokasi =/upload/deleteQueue { tulis ulang ^(.*)$ /upload/view/deleteQueue.php terakhir; } lokasi =/upload/saveConfig { tulis ulang ^(.*)$ /upload/view/saveConfig.php terakhir; } lokasi =/upload/youtubeDl.json { tulis ulang ^(.*)$ /upload/view/youtubeDl.json.php last; } lokasi =/upload/send.json { tulis ulang ^(.*)$ /upload/view/send.json.php terakhir; } lokasi =/upload/streamers.json { tulis ulang ^(.*)$ /upload/view/streamers.json.php last; } lokasi =/upload/queue.json { tulis ulang ^(.*)$ /upload/view/queue.json.php terakhir; } lokasi =/upload/queue { tulis ulang ^(.*)$ /upload/view/queue.php last; } lokasi =/upload/login { tulis ulang ^(.*)$ /upload/objects/login.json.php terakhir; } lokasi =/upload/logoff { tulis ulang ^(.*)$ /upload/objects/logoff.json.php terakhir; } lokasi /upload/ { tulis ulang "^/getImage/([A-Za-z0-9=/]+)/([A-Za-z0-9]{3})$" /upload/objects/getImage. php?base64Url=$1&format=$2 terakhir; tulis ulang "^/getImageMP4/([A-Za-z0-9=/]+)/([A-Za-z0-9]{3})/([0-9.]+)$" /upload/ objek/getImageMP4.php?base64Url=$1&format=$2&time=$3 terakhir; } lokasi /upload/getSpiritsFromVideo { menulis ulang ^/getSpiritsFromVideo/([A-Za-z0-9=/]+)/([0-9]+)/([0-9]+)$ /upload/objects/ getSpiritsFromVideo.php?base64Url=$1&tileWidth=$2&totalClips=$3 terakhir; } lokasi /upload/getLinkInfo { tulis ulang ^/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 CentOS 8.

sudo dnf install certbot

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

sudo dnf install python3-certbot-apache

Dan jalankan perintah ini untuk mendapatkan dan menginstal sertifikat TLS.

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

Jika Anda menggunakan Nginx, instal plugin Certbot Nginx.

sudo dnf install python3-certbot-nginx

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

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [dilindungi email] -d tube.domainanda.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.

Secara default, SELinux melarang Apache/Nginx untuk membuat permintaan jaringan ke server lain, tetapi kemudian Apache/Nginx perlu meminta status sertifikat TLS dari server Let's Encrypt CA untuk stapel OCSP, jadi kami perlu memberi tahu SELinux untuk mengizinkan Apache/Nginx dengan yang berikut ini perintah.

sudo setsebool -P httpd_can_network_connect 1

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.

Server Anda adalah nginx/1.14.2, Anda harus menginstal 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.

sudo nano /etc/php.ini

Temukan dua baris berikut.

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

Simpan dan tutup file. Mulai ulang PHP-FPM agar perubahan diterapkan.

sudo systemctl restart php-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.domainanda.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.

Server Anda adalah nginx/1.14.2, Anda harus menginstal Apache.

Kami menginstal exiftool, FFmpeg dan youtube-dl pada langkah 2, tetapi PHP-FPM tidak dapat menemukan binari. Itu karena kami tidak mengaktifkan PATH variabel dalam PHP. Edit file konfigurasi PHP-FPM.

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

Temukan baris berikut, dan hapus titik koma (;) di awal.

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

Simpan dan tutup file. Kemudian restart PHP-FPM.

sudo systemctl restart php-fpm

Refresh halaman instalasi encoder. Wizard penyiapan harus dapat menemukan binari exiftool, FFmpeg, dan youtube-dl. Jika direktori video tidak dapat ditulis, jalankan perintah berikut.

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

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.

sudo nano /etc/php.ini

Temukan dua baris berikut.

max_execution_time =30memory_limit =128M

Ubah nilainya.

max_execution_time =7200memory_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. Kemudian restart PHP-FPM.

sudo systemctl restart php-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

Pergi ke halaman utama. Anda akan dapat masuk ke encoder AVideo.

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 CentOS 8 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 CentOS 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 algoritma kontrol kongesti TCP BBR di kernel Linux. Edit file sysctl.conf.

sudo nano /etc/sysctl.conf

Tambahkan dua baris berikut di akhir file.

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

Simpan dan tutup file. Kemudian muat ulang konfigurasi sysctl.

sudo sysctl -p

Sekarang periksa algoritma kontrol kemacetan yang digunakan.

sysctl net.ipv4.tcp_congestion_control

Keluaran:

net.ipv4.tcp_congestion_control =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.mp4sudo 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

Cent OS
  1. Cara Menginstal Server Minecraft di CentOS 7

  2. Cara Menginstal Server Teamspeak 3 di CentOS 8

  3. Cara Menginstal ProFTPD di CentOS 7

  1. Cara Menginstal Nginx di CentOS 8

  2. Cara Menginstal PostgreSQL di CentOS 8

  3. Cara Menginstal MariaDB di CentOS 8

  1. Cara Menginstal Server FreeIPA di CentOS 7

  2. Cara Instal Samba Server di CentOS 8

  3. Cara Menginstal Centreon di Centos 7