Voy a intentar relatar como hacer funcionar una
aplicación UniGUI bajo un servidor de
Linux.
* En mi caso lo haré sobre un
Ubuntu Server 10.04 LTS por eso de la caducidad, aunque podría ser similar en cualquier otra distro.
* Es importante saber que para ello necesitamos salvo opción contraria la instalación del
Servidor Gráfico X, por ello para no instalar una versión server exclusivamente, he optado por una versión ligera de ello, en este caso
Lubuntu (ha sido instalada bajo un P-IV con 512 Mb).El entorno es
Lxfce, muy minimalista, pero suficiente, además de tirar poco de equipo. Todo es en 32 bits, pero en 64 es lo mismo, de ello tengo también un
Ubuntu 8.04 de 64 corriendo OK.
* También he procedido a instalar nuestro
Firebird 2.1.4 (32 bits); no me decanto por la versión de los repositorios, pues esta se instala en otros directorios a los habituales; yo he procedido a descargarlo desde su web (
www.ibphoenix.com) en versión
SS, aunque bien podría ser
CS y
SuperClassic; el motivo es que así la instalación se fuerza en el directorio
/opt y no como lo hace bajo su repositorios (no me acuerdo donde lo instala); además yo al emplear las
UDF FreeAdhocUDF, es necesario para ello la instalación en
/opt; imagino que esto será configurable, pero no quiero andar experimentando más de la cuenta. Ojo con la instalación de las librerías
libstdc++5, hay que instalarlas por compatibilidad, pues en 10.04 creo que la que monta es la 6; para ello, valga como ejemplo:
http://www.todosconsoftwarelibre.es/...-ubuntu-10-04/
* Dado que las aplicaciones (en este caso
Standalone) de UniGUI creadas en Delphi, son ejecutables *.exe, no nos queda más remedio que instalar el
emulador wine; en este caso he tirado de repositorios y punto.
Ojo, si la aplicación generada en UniGUI emplea FireBird, tambien deberemos instalar FB (solo el cliente) en wine; vamos a soltar un poco de literatura:
1 - Cuando instalamos
wine, en la carpeta del
admin (usuario root creado en la instalación del Linux, se crea:
/home/admin/.wine/drive_c/.............
donde es todo similar y de la misma distribución que un
WinXP.
2 - con ello podemos descargar una versión de FB para Win y ejecutarla para lograr una instalación como si de win se tratara; ojo, hay que dar permisos de ejecución al exe correspondiente. También podríamos copiar directamente en la carpeta correspondiente el fbclient.dll, pero por si tal lo monte desde el instalador y punto.
3 - por comodidad, he creado la carpeta (directorio) para instalar mis aplicaciones UniGUI tal que:
/home/admin/.wine/drive_c/mis_unigui/.............
* Es importante recordar que dado que las UniGUI tiran de las
ExtJS/ExtPascal se deberá de copiar la carpeta de las UniGUI/ext-3.3.0 en
/home/admin/.wine/drive_c/mis_unigui//ext-3.3.0/
de tal forma que nuestras aplicaciones puedan acceder y tirar de ellas. Ojo, no nos olvidemos de los permisos, estamos en linux (chown.......)
Para ello, hay que indicarles a nuestras UniGUI donde estan estas librerías, para ello no debemos de
olvidarnos de las propiedades
TUniServerModule.ServerRoot:=GetCurrentDir;
TUniServerModule.ExtRoot:='.\ext-3.3.0'; // meter aquí el path correspondiente
esto lo podemos hacer en tiempo de diseño o en ejecución en el evento
Código Delphi
[-] procedure TUniServerModule.UniGUIServerModuleCreate(Sender: TObject);
begin
UniServerModule.ServerRoot:=GetCurrentDir;
UniServerModule.ExtRoot:='.\ext-3.3.0';
end;
* Una vez generadas las aplicaciones UniGUI (he usado la versión 0.86) con nuestro Delphi, empleando la opción de compilación como
StandAloneServer := true; para generar solamnete la versión WEB, esta la copio en nuestra carpeta
/home/admin/.wine/drive_c/mis_unigui/mi_aplicacion_unigui.exe
no nos olvidemos de darle permisos de ejecución a este exe.
luego no nos queda más que arrancarla con wine (suele estar ya configurada por defecto)
* en caso de que queramos que arranque por defecto al iniciar el sistema linux, deberemos añadirla a las aplicaciones de inicio por el método correspondiente.
en general, creo que esto es todo; seguramente se me queden cosas en el tintero, pero pienso que con estas indicaciones, es posible hacer funcionar el asunto tratado.
dado que por defecto el puerto empleado es el 8077, no nos olvidemos de redirigir nuestro router a la IP correspondiente; modificando el puerto por defecto, podremos cargar varias aplicaciones simultáneas al mismo tiempo.
espero que todo este rollo, si no vale de mucho , por lo menos os ayude a todos los que me habéis enviado privados y esas cosas
por cierto, esto no es php ni nada por el asunto, si quieres rapidez, no es buena solución; eso si, la carga al principio es algo lenta, pero en sucesivas llamadas mejora un montón; será cosa del cache y demás.