GNU/Linux >> Tutoriales Linux >  >> Debian

Ejecute su propio sitio web para compartir videos con YouPHPTube en Debian 10 Buster

Este tutorial le mostrará cómo ejecutar su propio sitio web para compartir videos con YouPHPTube en Debian 10 Buster. YouPHPTube es una alternativa autohospedada de código abierto a los sitios web para compartir videos como YouTube, Vimeo, etc. Con YouPHPTube, puede cargar videos en su propio servidor y compartirlos en Internet.

Características de YouTube

  • Transmisiones en vivo ilimitadas y simultáneas y puede tener usuarios ilimitados conectados a cada transmisión en vivo.
  • Importe y codifique videos de otros sitios directamente desde Internet
  • Codificación masiva desde el directorio de videos local
  • Hacer videos privados
  • Función totalmente integrada con Youtube, permitiéndole sincronizar sus videos con Youtube
  • Transcodifique múltiples formatos de archivos multimedia a archivos MP4, WebM y MP3
  • Admite Amazone S3 (servicio de almacenamiento simple)
  • Diseño de sitio receptivo. YouPHPTube se ve increíble en cualquier dispositivo. (Puede elegir el diseño de estilo de YouTube o Netfilx).
  • Canales de usuario y listas de reproducción de usuario
  • Suscríbete a los canales que te gustan
  • Puede monitorear el rendimiento de sus videos con métricas e informes actualizados en las estadísticas de YouPHPTube.
  • Amplíe las funcionalidades del sitio con complementos.
  • Optimizado para SEO
  • Aplicaciones iOS y Android disponibles

Requisitos del servidor de YouPHPTube

Primero, debe saber que una CPU de un solo núcleo no es viable para un sitio web para compartir videos, porque el proceso de codificación usará una gran cantidad de recursos de la CPU.

Luego elija las especificaciones del servidor de acuerdo con la cantidad de usuarios que tiene su sitio.

  • Si solo desea usarlo para compartir sus propios videos, necesita un servidor con al menos 2 núcleos de CPU y 4 GB de RAM. Puede comprar un poderoso VPS (servidor privado virtual) de Contabo a muy bajo costo.
  • Si espera que su sitio tenga docenas de usuarios, entonces puede considerar el VPS extra grande de Contabo, que tiene 10 núcleos de CPU, 60 GB de RAM, velocidad de puerto de 1 Gbit/s, espacio en disco de 1,6 TB, tráfico ilimitado pero cuesta solo 26,99 euros/mes.
  • Cuando su sitio crece más allá de eso, debe comprar un servidor dedicado.

Requisitos de software para instalar YouPHPTube en Debian 10 Buster

YouPHPTube requiere PHP y MySQL/MariaDB. Para seguir este tutorial, ya debería haber configurado una pila LAMP o una pila LEMP. Si prefiere usar el servidor web Apache, instale la pila LAMP.

  • Cómo instalar la pila LAMP (Apache, MariaDB, PHP) en Debian 10 Buster

Si prefiere usar el servidor web Nginx, instale la pila LEMP.

  • Cómo instalar la pila LEMP (Nginx, MariaDB, PHP) en Debian 10 Buster

Nota :El soporte de YouPHPTube con Nginx es solo experimental. Es posible que tenga problemas si usa Nginx.

También necesita un nombre de dominio. Registré mi nombre de dominio en NameCheap porque el precio es bajo y ofrecen protección de privacidad whois gratis de por vida.

YouPHPTube consta de dos partes.

  • La parte principal es el servidor de transmisión frontal, que permite a los usuarios ver videos existentes.
  • La otra parte es el codificador, que permite a los usuarios subir sus videos.

El codificador público usa el nombre de dominio encoder.youphptube.com . Si no desea que los usuarios abandonen su sitio cuando suban videos, debe configurar su codificador privado. Te mostraré cómo en este artículo. Sin más preámbulos, comencemos.

Paso 1:Descarga YouPHPTube en Debian 10 Buster Server

Inicie sesión en su servidor Debian 10 Buster a través de SSH. Luego vaya al directorio raíz web.

cd /var/www/

Clona el repositorio de streamers de YouPHPTube desde Github.

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

Luego ve al directorio.

cd YouPHPTube/

Clone el repositorio del codificador de YouPHPTube de Github.

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

Se guardará como YouPHPTube-Encoder . Le cambiamos el nombre a upload , para que los usuarios puedan tener una mejor idea de para qué sirve esta URL al cargar videos.

sudo mv YouPHPTube-Encoder upload

A continuación, debemos hacer que www-data (el usuario del servidor web) sea el propietario de la raíz web.

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

Paso 2:Instalar dependencias

YouPHPTube usa FFmpeg para codificar videos. Podemos instalar fácilmente FFmpeg desde el repositorio predeterminado de Debian.

sudo apt install ffmpeg

Para leer y escribir metainformación en archivos multimedia, necesitamos instalar libimage-exiftool-perl paquete.

sudo apt install libimage-exiftool-perl

También necesita instalar algunas extensiones PHP comunes.

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

Para obtener videos de otros sitios, necesitamos instalar YouTube-DL. Aunque está incluido en el repositorio de Debian, está desactualizado. Instalaremos YouTube-DL desde Python Package Index, que siempre contiene la última versión de YouTube-DL.

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

Es muy importante que use la última versión, o es posible que no pueda descargar videos de otros sitios. Podemos crear un trabajo Cron para verificar e instalar automáticamente la última versión.

sudo crontab -e

Agregue la siguiente línea al final del archivo Crontab para intentar actualizar YouTube-DL diariamente.

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

Paso 3:Crear base de datos y usuario en MariaDB

Inicie sesión en el servidor de la base de datos MariaDB con el siguiente comando. Dado que MariaDB ahora usa unix_socket complemento para el inicio de sesión del usuario de autenticación, no es necesario ingresar la contraseña raíz de MariaDB. Solo necesitamos prefijar el mysql comando con sudo .

sudo mysql

Luego crea una base de datos para YouPHPTube. Este tutorial nombra la base de datos YouPHPTube . Puedes usar el nombre que quieras.

create database YouPHPTube;

Cree el usuario de la base de datos. Nuevamente, puede usar su nombre preferido para este usuario. Reemplace your-password con su contraseña preferida.

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

Otorgue a este usuario todos los privilegios en youphptube base de datos.

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

También necesitamos crear una base de datos separada para el codificador.

create database YouPHPTubeEncoder;

Cree un usuario para esta base de datos.

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

Otorgar privilegios.

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

Vacíe la tabla de privilegios y salga.

flush privileges;

exit;

Paso 4:Configuración del servidor web

Podemos usar el servidor web Apache o Nginx.

Apache

Si prefiere Apache, cree un archivo de host virtual para YouPHPTube con un editor de texto de línea de comandos como Nano.

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

Coloque el siguiente texto en el archivo. Reemplace el texto de color rojo con sus datos reales. Yo uso un subdominio en este tutorial. Puede utilizar su nombre de dominio principal si lo prefiere. No olvide establecer un registro DNS A para el nombre de dominio en su administrador de registros DNS. También tenga en cuenta que el directorio raíz del documento distingue entre mayúsculas y minúsculas y no debe agregar una barra inclinada al final.

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

Guarde y cierre el archivo. Luego habilite este servidor virtual.

sudo a2ensite youphptube.conf

Necesitamos habilitar el módulo de reescritura.

sudo a2enmod rewrite

Reinicie Apache para que los cambios surtan efecto.

sudo systemctl restart apache2

Ahora visita tube.yourdomain.com y será redirigido a la página del asistente de configuración (tube.yourdomain.com/install/index.php ). Si ve la página predeterminada de Apache en lugar del asistente de configuración, debe deshabilitar el host virtual predeterminado.

sudo a2dissite 000-default.conf

Y reinicie Apache.

Antes de ingresar cualquier información en el asistente de configuración, debemos habilitar HTTPS.

Nginx

Si prefiere Nginx, cree un youphptube.conf archivo en /etc/nginx/conf.d/ directorio.

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

Coloque el siguiente texto en el archivo. Reemplace el texto de color rojo con sus datos reales. Yo uso un subdominio en este tutorial. Puede utilizar su nombre de dominio principal si lo prefiere. No olvide establecer un registro DNS A para el nombre de dominio en su administrador de registros DNS. También tenga en cuenta que el directorio raíz del documento distingue entre mayúsculas y minúsculas.

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

}

Guarde y cierre el archivo. Luego pruebe la configuración de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Ahora visita tube.yourdomain.com y será redirigido a la página del asistente de configuración (tube.yourdomain.com/install/index.php ). Antes de ingresar cualquier información en el asistente de configuración, debemos habilitar HTTPS.

Paso 5:habilitar HTTPS

Para cifrar el tráfico HTTP, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let's Encrypt. Ejecute el siguiente comando para instalar el cliente Let's Encrypt (certbot) en el servidor Debian 10 Buster.

sudo apt install certbot

Si usa Apache, también necesita instalar el complemento Certbot Apache.

sudo apt install python3-certbot-apache

Y ejecute este comando para obtener e instalar el certificado TLS.

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

Si usa Nginx, instale el complemento Certbot Nginx.

sudo apt install python3-certbot-nginx

A continuación, ejecute el siguiente comando para obtener e instalar el certificado TLS.

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

donde

  • --nginx :use el complemento nginx.
  • --apache :Utilice el complemento de Apache.
  • --agree-tos :Acepto los términos del servicio.
  • --redirect :Forzar HTTPS por redirección 301.
  • --hsts : Agregue el encabezado Strict-Transport-Security a cada respuesta HTTP. Obligar al navegador a usar siempre TLS para el dominio. Protege contra la eliminación de SSL/TLS.
  • --staple-ocsp : Habilita el grapado OCSP. Se grapa una respuesta OCSP válida al certificado que ofrece el servidor durante TLS.

Ahora se debe obtener el certificado e instalarlo automáticamente.

Paso 6:finalice la instalación con el asistente de configuración

Ahora ve a tube.yourdomain.com y aparecerá el asistente de configuración. En el lado izquierdo, puede ver si su servidor cumple con los requisitos.

Si usa Nginx, puede ignorar el siguiente mensaje.

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

Como puede ver, PHP post_max_size debe ser de al menos 100M y upload_max_filesize debe ser al menos 100M. Necesitamos editar el php.ini para cambiar los dos valores. Si usa el servidor web Apache, entonces

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

Si usa Nginx con PHP-FPM, entonces necesita editar la versión FPM del archivo php.ini.

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

Encuentra las siguientes dos líneas.

post_max_size = 8M
upload_max_filesize = 2M

Cambie los valores de acuerdo con el tamaño del archivo de video que va a cargar. Por ejemplo, si permite cargar un archivo de video de 1G, entonces

post_max_size = 1024M
upload_max_filesize = 1024M

Guarde y cierre el archivo. Reinicie Apache para que los cambios surtan efecto.

sudo systemctl restart apache2

Si usa Nginx con PHP-FPM, reinicie PHP-FPM.

sudo systemctl restart php7.3-fpm

Ahora actualice la página del asistente de instalación de YouPHPTube. Su servidor debe pasar todos los requisitos. Ahora, en el lado derecho, puede ingresar un título para su sitio de videos. Ingrese el nombre de la base de datos de YouPHPTube, el usuario y la contraseña que creó anteriormente. (Nota:debe usar la base de datos principal, no la base de datos del codificador. También tenga en cuenta que distingue entre mayúsculas y minúsculas). Y establezca una contraseña de administrador del sistema.

Haga clic en Install now y YouPHPTube debería instalarse correctamente.

Ahora debemos eliminar el /var/www/YouPHPTube/install/ directorio.

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

Haz clic en Go to the main page y verá la página principal de YouPHPTube.

Puede hacer clic en el menú desplegable de la izquierda e iniciar sesión como admin usuario y con la contraseña que estableciste hace unos momentos.

Paso 7:configurar el codificador

Ve a https://tube.yourdomain.com/upload/ . Será redirigido al asistente de configuración del codificador. Si no se le redirige automáticamente, puede ingresar manualmente la URL del asistente de configuración.

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

El lado izquierdo le mostrará si su servidor cumple con los requisitos de YouPHPTube Encoder.

Si usa Nginx, puede ignorar el siguiente mensaje.

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

Como puede ver el PHP max_execution_time debe ser al menos 7200 y PHP memory_limit debe ser al menos 512M. Necesitamos editar el php.ini para cambiar los dos valores. Si usa el servidor web Apache, entonces

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

Si usa Nginx con PHP-FPM, entonces necesita editar la versión FPM del archivo php.ini.

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

Encuentra las siguientes dos líneas.

max_execution_time = 30
memory_limit = 128M

Cambia los valores .

max_execution_time = 7200
memory_limit = 512M

Tenga en cuenta que si la codificación de video posterior se detiene a la mitad, debe aumentar el max_execution_time o actualice su CPU.

Guarde y cierre el archivo. Reinicie Apache para que los cambios surtan efecto.

sudo systemctl restart apache2

Si usa Nginx con PHP-FPM, reinicie PHP-FPM.

sudo systemctl restart php7.3-fpm

Ahora actualice la página del asistente de instalación del codificador de YouPHPTube. Su servidor debe pasar todos los requisitos. Ahora, en el lado derecho, debe ingresar el nombre, el usuario y la contraseña de la base de datos de YouPHPTubeEncoder que creó anteriormente. Tenga en cuenta que distingue entre mayúsculas y minúsculas e ingrese la contraseña de administrador del sitio de transmisión.

Haga clic en el botón Instalar ahora y se instalará el codificador de YouPHPTube.

Elimina el directorio de instalación.

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

Y ve a la página principal.

Paso 8:cambie la URL del codificador

De manera predeterminada, YouPHPTube usa el codificador público para cargar videos. Para usar su propio codificador, inicie sesión como administrador en YouPHPTube (no codificador de YouPHPTube) y vaya al panel de administración desde el panel de administración del lado izquierdo.

Ve a settings -> site settings -> advanced configuration . Cambie la URL del codificador a https://tube.yourdomain.com/upload/ . Guarde la configuración, borre el directorio de caché y genere un nuevo mapa del sitio.

Ahora cierra la sesión y vuelve a iniciarla. Si haces clic en encode video and audio en la esquina superior derecha, accederá a su propio codificador para cargar videos. Cabe señalar que la velocidad de codificación depende de la potencia de la CPU de su servidor.

Paso 9:Configurar SMTP

Para enviar correos electrónicos (como registro de cuenta, restablecimiento de contraseña, etc.), debe configurar un servidor SMTP. Si desea utilizar su propio servidor de correo para enviar correos electrónicos a los clientes, consulte el siguiente artículo para configurar su propio servidor de correo.

  • Cómo configurar rápidamente un servidor de correo electrónico en Debian 9 con Modoboa

Si desea utilizar un servicio de retransmisión SMTP, le recomiendo Mailjet. Puede seguir el tutorial a continuación para configurar la retransmisión SMTP en su servidor de YouPHPTube.

  • Cómo configurar la retransmisión SMTP de Postfix en Debian con Mailjet

Habilitar TCP BBR

Para un servidor de transmisión de video, se recomienda habilitar el algoritmo de control de congestión TCP BBR en el kernel de Linux siguiendo las instrucciones del artículo a continuación. (Está escrito para Ubuntu, pero también funciona en Debian 10 Buster).

  • Cómo aumentar fácilmente el rendimiento de la red de Ubuntu 16.04/18.04 habilitando TCP BBR

Aplicaciones móviles

Puede descargar la aplicación gratuita para Android o iOS haciendo una búsqueda de YouPHPTube en Google Play Store o YPT Mobile en la tienda de Apple. La aplicación móvil de marca blanca requiere una licencia paga.

Resolución de problemas

Si su página principal de YouPHPTube no pudo cargar algunos recursos CSS y JavaScript,

Es probable que haya agregado una barra diagonal adicional en el archivo de host virtual de Apache o Nginx para el directorio raíz web. En lugar de usar

DocumentRoot /var/www/YouPHPTube/

Deberías usar

DocumentRoot /var/www/YouPHPTube

Si su codificador no funciona correctamente, puede consultar el archivo de registro en /var/www/YouPHPTube/upload/videos/youphptube.log .

Otras cositas

Al codificar videos, puede elegir resoluciones (baja, SD, HD). Si usa YouPHPTube como un sitio de transmisión de video personal, le recomiendo elegir la resolución HD solo para reducir el tiempo de codificación y ahorrar espacio en disco. Si ya ha codificado videos en las 3 resoluciones, puede ir al directorio de videos de YouPHPTube (/var/www/YouPHPTube/videos) y eliminar videos de baja resolución y resolución SD.

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

Cómo descargar todos los videos de su sitio de videos

Puedes usar el youtube-dl utilidad de línea de comandos para descargar todos los videos. Primero, debe ir al panel de control de YouPHPTube, luego ir a la página de la lista de videos y desplazarse hasta la parte inferior, hacer clic en descargar su lista de videos (archivo .txt de enlace permanente) botón. Verá una lista de URL para todos los videos.

A continuación, abra una terminal y cree un archivo txt con un editor de texto, copie las URL de la página web y péguelas en el archivo. Luego puede ejecutar el siguiente comando para descargar los videos. Reemplace video-list.txt con su propio nombre de archivo.

youtube-dl -a video-list.txt

Debian
  1. Crea tu propio servidor de transmisión de video con Linux

  2. Pasos de instalación de Debian 10 (Buster) con capturas de pantalla

  3. Cómo proteger su servidor con badIPs.com y reportar IPs con Fail2ban en Debian

  4. Cómo instalar el servidor MySQL en Debian 10 Buster

  5. Configurar un servidor de correo con PostfixAdmin en Debian 9

Cómo configurar el servidor Samba con Debian 11

Cómo instalar un servidor mínimo Debian 10 (Buster)

Cómo ejecutar su propio servidor de nombres con ISPConfig y providedomain.de (Schlund)

Cómo ejecutar su propio servidor Git con GitlabHQ en Ubuntu 14.04

Cómo:asegurar su servidor Ubuntu o Debian con IPTables

Servidor DIY NAS Freenas:construya su propio NAS con Freenas