WIKISUBTITLES.NET – Código Fuente e instalación

WIKISUBTITLES.NET – Código Fuente e instalación

Este fin de semana, he dedicado un rato al código fuente de WIKISUBTITLES.NET y a su instalación.

WIKISUBTITLES.NET, sistema de traducciones colaborativas, en versión GPL, actualmente utilizada por muchas webs de subtítulos, y que fué desarrollada por Smalleye.

Tenía el código en un viejo HD, desde tiempos inmemoriales, y visto que aún hay personas interesadas en ello, vamos a aprender a instalarlo.

Para ello, he montado una Máquina Virtual con Debian 6.0.10, PHP 5.3 , Apache2., MySQL y PhpMyAdmin.

El proyecto una vez acabado luce así.

WIKISUBTITLES.NET
WIKISUBTITLES.NET

Consideraciones previas, la seguridad.

A estas alturas, ya sabes que del 2007 hasta ahora, PHP a cambiado muchísimo.

Entre otras cosas, desde la versión 5.5 que empezó a considerarse MySql_*, deprecated, hasta la 7.0, (la actual a esta fecha), donde YA NO EXISTE, MySQL_* y ha sido substituido por MySQLi_*.

La causa principal, ha sido la seguridad, ya que hay potentes agujeros de seguridad detrás de estas extensiones, y según StackOverflow:

  • Is not under active development
  • Is officially deprecated as of PHP 5.5 (released June 2013).
  • Has been removed entirely as of PHP 7.0 (released December 2015)
  • Lacks an OO interface
  • Doesn’t support:
    • Non-blocking, asynchronous queries
    • Prepared statements or parameterized queries
    • Stored procedures
    • Multiple Statements
    • Transactions
    • The «new» password authentication method (on by default in MySQL 5.6; required in 5.7)
    • All of the functionality in MySQL 5.1

Pero oye, es una prueba local, no tenemos que preocuparnos por la seguridad, y me consta que hay algunas webs de subtítulos que siguen utilizando el sistema WIKISUBTITLE.NET.

INSTALACIÓN DE WIKISUBTITLES.NET

En mi portátil, he configurado en el Acrylic DNS Server, 192.168.1.240 como testsubtitulos.com y www.testsubtitulos.com, puedes hacer lo mismo en tu fichero, lmhost.

En mi caso, he preparado en una Máquina Virtual, sobre VirtualBox, Debian 6.0.10, como server, sin X11, y con servidor SSH.

APACHE2

Una vez instalado hacemos una actualización del repositorio y montamos Apache2:

apt-get update
apt-get install apache2

Luego preparamos el los directorios donde voy a instalar el script:

mkdir -p /var/www/testsubtitulos.com/html
mkdir /var/www/testsubtitulos.com/logs

Ahora crearemos el fichero de configuración Apache2, para nuestro dominio:

nano /etc/apache2/sites-available/testsubtitulos.com.conf

Y le colocamos este contenido:

<VirtualHost *:80> 
     ServerAdmin webmaster@testsubtitulos.com
     ServerName testsubtitulos.com
     ServerAlias www.testsubtitulos.com
     DocumentRoot /var/www/testsubtitulos.com/html/
     ErrorLog /var/www/testsubtitulos.com/logs/error.log 
     CustomLog /var/www/testsubtitulos.com/logs/access.log combined
</VirtualHost>

Ahora activamos dicha configuración en apache2:

a2ensite testsubtitulos.com.conf

Para evitar un error al arrancar wikisubtitles, activamos el módulo que controla RewriteEngine:

a2enmod rewrite

Y cargamos esta configuración en Apache2

 /etc/init.d/apache2 restart

PHP

Para instalar PHP y los módulos necesarios para el funcionamiento del WIKISUBTITLES.NET:

apt-get -y install php5 php5-mysql libapache2-mod-php5

MySQL

Procedemos a instalar la base de datos MySQL:

apt-get install mysql-server mysql-client

Ahora, para no complicarnos la vida, instalaremos PhpMyAdmin:

PhpMyAdmin

Selecciona todas las opciones que se te presenten por defecto, y cuando llegue el momento, le decimos que aplique la configuración sobre Apache2:

apt-get install phpmyadmin

INSTALACIÓN DEL CÓDIGO FUENTE DE WIKISUBTITLE.NET

Ahora descarga el código fuente de WIKISUBTITLE.NET, descomprímelo, y con un software del tipo WinSCP, vuélcalo en el subdirectorio /var/www/testsubtitulos.com/html/

Abre PhpMyAdmin, del modo http://www.tudominiodetest.com/phpmyadmin/ y crea una base de datos, por ejemplo wikisubtitols, recomiendo utf8_general_ci.

Hay un pequeño error en fichero SQL, que podemos solventar:

Edita el fichero que reside en el paquete fuente en /install/install.sql y en ve a la última línea:

insert into users (username,password,joined,range) values(....

y haz el cambio siguiente: 

insert into users (`username`,`password`,`joined`,`range`) values(....

Ahora, desde PhpMyAdmin, vas a la pestaña importar, e importa el fichero install.sql modificado.

Si todo va bien, ya tendrás tu propia web WIKISUBTITLES.NET funcionando, a la que podrás cambiar a tu gusto.

Retos.

El primer reto, debería ser pasarlo a PHP 7.0 sobre MySql o MaríaDB

El segundo reto, claro está, sería pasarlo a html5 y CSS3.

Estos días festivos de Semana Santa, voy a intentar pasarlo a PHP 7.0.

Espero, os sea útil.

37 comentarios

  1. Jhon

    ¿Y cómo se consigue el pass del zip?

  2. Amigo buenas tardes ya me van bien todos los pasos pero que tengo que poner dentro del archivo config.php en la linea que dice: $SCRIPT_PATH = »; //ending with ‘/’ , que debo poner dentro de script path?. gracias de antemanos

    • Hola Jose:
      Depende del entorno donde lo montes. Si lo haces por ejemplo en un PC, con Xampp, sería » $SCRIPT_PATH = ‘D:/WWW/WikiSub/’; //ending with ‘/’ «, es decir, el path absoluto. Si lo hicieras en un entorno por ejemplo apache,
      sería algo como » $SCRIPT_PATH = ‘/var/www/html/Wikisub/’; //ending with ‘/’ «, en función de la ruta, donde lo tengas instalado.

      Espero te sea de ayuda.

  3. muchas gracias amigo ahora voy a probar haber si funciona solo eso me faltaba para que quedara, gracias por tu ayuda

  4. uso xampp en windows y lo puse de la forma que me indicaste pero el sitio sigue dando errores y no carga los iconos ni imagenes. gracias por la ayuda y disculpa la molestia amigo
    de esta forma lo puse: $SCRIPT_PATH = ‘c:/xampp/htdocs/subtitulos/’; //ending with ‘/’

  5. Funciono!!! lo puse de esta forma
    $SCRIPT_PATH = ‘http://localhost/subtitulos/’; //ending with ‘/’
    y cuando lo ponga en el server con linux solo le pongo la direccion igual muchas gracias!!!! amigo

  6. ufff otro problema ahora me da muchisimos errores el sitio mira por ejemplo:

    Notice: Undefined variable: SCRIPT_PATH in C:\xampp\htdocs\subtitulos\includes\fn_bbdd_utils.php on line 343

    Notice: Undefined variable: url2 in C:\xampp\htdocs\subtitulos\index.php on line 95

    Notice: Undefined variable: titulo2 in C:\xampp\htdocs\subtitulos\index.php on line 95

    Notice: Undefined variable: url3 in C:\xampp\htdocs\subtitulos\index.php on line 97

    Notice: Undefined variable: titulo3 in C:\xampp\htdocs\subtitulos\index.php on line 97

    Notice: Undefined variable: langName2 in C:\xampp\htdocs\subtitulos\index.php on line 104

    Notice: Undefined variable: autor2 in C:\xampp\htdocs\subtitulos\index.php on line 104

    Notice: Undefined variable: autorName2 in C:\xampp\htdocs\subtitulos\index.php on line 104

    Notice: Undefined variable: langName3 in C:\xampp\htdocs\subtitulos\index.php on line 106

    Notice: Undefined variable: autor3 in C:\xampp\htdocs\subtitulos\index.php on line 106

    Notice: Undefined variable: autorName3 in C:\xampp\htdocs\subtitulos\index.php on line 106

    Notice: Undefined variable: SCRIPT_PATH in C:\xampp\htdocs\subtitulos\includes\fn_bbdd_utils.php on line 343

    Notice: Undefined variable: image2 in C:\xampp\htdocs\subtitulos\index.php on line 513

    Notice: Undefined variable: url2 in C:\xampp\htdocs\subtitulos\index.php on line 513

    Notice: Undefined variable: titulo2 in C:\xampp\htdocs\subtitulos\index.php on line 513

    Notice: Undefined variable: image3 in C:\xampp\htdocs\subtitulos\index.php on line 515

    Notice: Undefined variable: url3 in C:\xampp\htdocs\subtitulos\index.php on line 515

    Notice: Undefined variable: titulo3 in C:\xampp\htdocs\subtitulos\index.php on line 515

    Notice: Undefined variable: downs2 in C:\xampp\htdocs\subtitulos\index.php on line 522

    Notice: Undefined variable: downs3 in C:\xampp\htdocs\subtitulos\index.php on line 524

  7. al parecer la locacion de la carpeta funciona a primera vista pero no esta bien pudieras decirme en mis condiciones como deberia ponerlo:
    uso xampp en windows
    el sitio esta en: C:\xampp\htdocs\subtitulos
    me puedes decir como hacer para ponerlo bien. gracias de antemano

    • Hola Jose:
      Copia y pega esto: $SCRIPT_PATH =’C:/xampp/htdocs/subtitulos/’
      La forma correcta, debería ser esta. solamente cambia, el tipo de comillas y la unidad en mayúsculas.

      Mantenme informado.
      Didac

  8. pues asi no me funciono ahora tengo mas problemas cuando subo un subtitulo me da confirmado pero cuando voy a verlo en el indice de series no existe me da error tienes idea de porque pasa esto?. gracias disculpa tanto molestia

  9. lo puse asi: $SCRIPT_PATH = ‘/subtitulos/’; //ending with ‘/’ y si funcionan las locaciones

  10. otra pregunta donde se guardan los subtitulos porque veo que me envia cuando hago click en la serie que supuestemente subio me manda a una carpeta que se llama show pero nada no existe

  11. el problema de la locacion del sitio lo resolvi ahora mira esta cantidad de errores ademas de que no me guarda la informacion de los subtitulos digo los archivos para despues ser descargados….
    Por alguna casualidad no tendras una copia del sitio con menos errores jejejeje, gracias

    Notice: Undefined variable: SCRIPT_PATH in C:\xampp\htdocs\subtitulos\includes\fn_bbdd_utils.php on line 342

    Notice: Undefined variable: url2 in C:\xampp\htdocs\subtitulos\index.php on line 95

    Notice: Undefined variable: titulo2 in C:\xampp\htdocs\subtitulos\index.php on line 95

    Notice: Undefined variable: url3 in C:\xampp\htdocs\subtitulos\index.php on line 97

    Notice: Undefined variable: titulo3 in C:\xampp\htdocs\subtitulos\index.php on line 97

    Notice: Undefined variable: langName2 in C:\xampp\htdocs\subtitulos\index.php on line 104

    Notice: Undefined variable: autor2 in C:\xampp\htdocs\subtitulos\index.php on line 104

    Notice: Undefined variable: autorName2 in C:\xampp\htdocs\subtitulos\index.php on line 104

    Notice: Undefined variable: langName3 in C:\xampp\htdocs\subtitulos\index.php on line 106

    Notice: Undefined variable: autor3 in C:\xampp\htdocs\subtitulos\index.php on line 106

    Notice: Undefined variable: autorName3 in C:\xampp\htdocs\subtitulos\index.php on line 106

    Notice: Undefined variable: SCRIPT_PATH in C:\xampp\htdocs\subtitulos\includes\fn_bbdd_utils.php on line 342

    Notice: Undefined variable: image2 in C:\xampp\htdocs\subtitulos\index.php on line 457

    Notice: Undefined variable: url2 in C:\xampp\htdocs\subtitulos\index.php on line 457

    Notice: Undefined variable: titulo2 in C:\xampp\htdocs\subtitulos\index.php on line 457

    Notice: Undefined variable: image3 in C:\xampp\htdocs\subtitulos\index.php on line 459

    Notice: Undefined variable: url3 in C:\xampp\htdocs\subtitulos\index.php on line 459

    Notice: Undefined variable: titulo3 in C:\xampp\htdocs\subtitulos\index.php on line 459

    Notice: Undefined variable: author2 in C:\xampp\htdocs\subtitulos\index.php on line 466

    Notice: Undefined variable: authorName2 in C:\xampp\htdocs\subtitulos\index.php on line 466

    Notice: Undefined variable: author3 in C:\xampp\htdocs\subtitulos\index.php on line 468

    Notice: Undefined variable: authorName3 in C:\xampp\htdocs\subtitulos\index.php on line 468

    • Hola Jose:
      No recuerdo haber tenido tantos problemas. Tendría que volver a montarlo. Puedo intentar hacer un hueco, y montarlo.

  12. no me doy por vencido facil pero es que el sitio tiene demasiados errores pudieras darme alguna version que funcione mejor, lo necesito vivo en cuba y tenemos una pequeña red local y quisiera dar el servicio pero me esta dando muchisimo trabajo y no soy programador web solo soy un inventor jejeje por asi decirlo, sldos y gracias

    • Hola Jose:
      Creo que has obviado, una cosa que menciono en la entrada del blog. «Para ello, he montado una Máquina Virtual con Debian 6.0.10, PHP 5.3 , Apache2., MySQL y PhpMyAdmin.» y más abajo «Consideraciones previas, la seguridad.
      A estas alturas, ya sabes que del 2007 hasta ahora, PHP a cambiado muchísimo.

      Entre otras cosas, desde la versión 5.5 que empezó a considerarse MySql_*, deprecated, hasta la 7.0, (la actual a esta fecha), donde YA NO EXISTE, MySQL_* y ha sido substituido por MySQLi_*.»

      Esto quiere decir, que NO puedes utilizar una versión de PHP 7.2.5, (la que actualmente monta XAMPP). Ya que tendrías que substituir instrucciones del tipo MySQL_* por MySQli_*.

      Tendrías que cambiarlas a mano, o utilizar alguna herramienta, que en su día permitió esta migración.

      Es por esto, que te da, esa cantidad de errores, por que PHP 7.2.5, no conoces las instrucciones MySQL_* y las confunde con variables.

      Podrías instalar una versión de PHP 5.3, y funcionaría correctamente.

      Lamento, no haberme dado cuenta antes.

      Un saludo:

      Didac

  13. ok te agradeceria me ayudeyudes con eso ya que no hay forma que funcione. gracias y disculpa tanta molestia

  14. ok perfecto ahora mismo me pongo a ello gracias miles!!!!!!!

  15. Hola.
    Muy bueno este articulo.
    Una pregunta si quiero instalarlo en mi web, que tendria que hacer? Es lo mismo que si instalara una web wordpres, for smf etc…?
    Saludos.

    • Hola Pulgatomika:

      Es mucho más sencillo, vuelcas los ficheros en un directorio, y luego modificas el fichero de configuración.
      Si sigues los pasos del artículo, puedes instalarlo en una máquina virtual y hacer tus pruebas.

      Que lo disfrutes!!

      • Hola Didac.
        Muchas gracias por la rápida respuesta, en cuanto tenga un rato lo probare a ver que tal.
        Saludos y gracias.

  16. Hola Didac.
    Lo estoy instalando y me sale esto cuando lo voy a instalar.

    Wikisubtitles’s code.
    Installation instructions
    =========================
    1) Create a database on your MySQL server, with all priviligies.
    2) Load the file ‘install/install.sql’ on that database.
    3) Edit the config.php file and write the database configuration information and script path
    4) Log in as «admin», password «wikisubtitles»

    Smalleye.

    Lo e echo todo lo único me falta es esto

    3) Edit the config.php file and write the database configuration information and script path

    veo que es esta parte

    $SCRIPT_PATH = »; //ending with ‘/’?>

    Pero no se como ponerlo ponerlo o que dirección poner.

    Perdona por la pregunta, ya se que parece un poco tonta pero soy muy novato en esto, se agradece un montón la ayuda.

    Saludos.

    • Hola:
      ¿Lo estás montado en Linux o en Windows?
      Pon la ruta absoluta en Windows: $SCRIPT_PATH =’C:/xampp/htdocs/subtitulos/’ , si estuviera alojado en C:/xampp/htdocs/subtitulos.
      En Linux, en el caso de que estuviera en \www\htdocs\subtitulos, $SCRIPT_PATH =’\subtitulos\’

      Espero que te ayude.

      Didac

      • Hola Didac.
        Lo estoy haciendo en mi host ya, no e echo pruebas en ninguna Máquina Virtual.
        E creado la base de datos y le e dado un subdominio, si fuera en virtual con xampp, la ruta ya la tendría, ya que lo explicas mas arriba, a sido error mio ya que no me explicado bien, perdona.
        Y te quería hacer otra consulta, si se quiere puede ser completamente privado, sin que salga la pagina en los motores de búsqueda no, vamos que solo pueda registrarse a quien yo le mande la dirección o me equivoco.

        Saludos y gracias por la rápida respuesta.

        • Hola:
          Tanto en Apache como en NGINX, puedes privatizar el acceso a una página través de .htaccess y .htpasswd, como fórmula rápida.
          Para evitar que los motores de búsqueda, reflejen estas páginas, existen varios métodos, como la utilización bajo PHP de $http_user_agent, o la más sencilla, que es la utilización correcta del fichero robots.txt, entre otras.

          Un saludo:
          Didac.

          • Hola.
            Pues probare cuando lo tenga instalado el fichero robots.text.
            Sobre la dirección del
            $SCRIPT_PATH = ”; //ending with ‘/’?>
            Lo tengo montado sobre Linux así es en el host principal donde tengo la web wordpress, así que supongo que serán todas en Linux, donde lo tendría que mirar exactamente la dirección?
            Saludos y gracias por la ayuda.

          • Hola!
            Si instalases directamente el script en tu subdominio, subtitulos.cinemalamorte.es, sería $SCRIPT_PATH = ‘/’; ya que la configuración lógica estaría en el root de la web.
            En todo caso, es la ruta relativa.

  17. Hola.
    Entonces en vez de esto:

    $SCRIPT_PATH = »; //ending with ‘/’?>

    pongo esto no:

    $SCRIPT_PATH = ‘subtícreaciones.cinemalamorte.es’?>

    Muchas gracias por la ayuda.

    • Hola:

      Debería ser, $SCRIPT_PATH = ‘/’; en el caso que esté en el root de tu subdominio y lo hayas configurado correctamente.

      Didac

      • Hola, perdona por la tardanza en contestar, e estado de vacaciones y estaba totalmente desconectado.

        Sobre instalarlo, por mucho que pruebe combinaciones, no paso de esta pantalla.

        Wikisubtitles’s code.
        Installation instructions
        =========================
        1) Create a database on your MySQL server, with all priviligies.
        2) Load the file ‘install/install.sql’ on that database.
        3) Edit the config.php file and write the database configuration information and script path
        4) Log in as «admin», password «wikisubtitles»

        Smalleye.

        No se si acepta imágenes, estos mensajes, pero si quieres te mando unas capturas y ves lo que hago y me comentas si e echo algo mal.

        Saludos y gracias por la ayuda.

        • Hola pulgatomika:
          El fichero de configuración que utilicé fue:

          Puedes enviarme imágenes a mi mail, que es mi nombre arroba el domínio de mi página.

          Un saludo.

          • Hola Didac.
            Te envió un correo con las imágenes y el adjunto del archivo config y ya me dirás que hago mal.
            Saludos y gracias por la ayuda.

          • Hola pulgatomika:
            Dado que me has facilitado información sensible, te contestaré por privado, mediante el correo electrónico.

            Un saludo.

  18. John

    Aunque ya lo dijeron, a mi me funciono de primeras con $SCRIPT_PATH = ‘http://localhost/XXX/’; //ending with ‘/’
    Donde «XXX» es la carpeta donde están los archivos.
    Y con respecto a los enlaces, no funcionaban… lo que hay que hacer es habilitar el htaccess y modrewrite.
    Aquí está el enlace al tutorial: https://blog.daneted.com/2014/03/habilitar-htaccess-y-modrewrite-en.html
    En sí, el código es antiguo por eso tiene muchos errores y más cuando en el mismo PHP está habilitado la opción de mostrar errores, pero si se la quita ya no saldrán.

Los comentarios están cerrados