Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Una ayuda por favor

m4t1t0's Diary
Por m4t1t0
departamento Anda-ayudame-plz , Sección Diarios
Puesto a las Thu Apr 28th, 2005 at 04:32:10 PM CET
Simplemente una entrada suplicando un poquito de ayuda con PHP y Linux.

 


Ya sé que no es algo muy habitual, pero para un proyecto necesito que funcione.
El tema es que necesito lanzar una aplicación con entorno gráfico (openoffice para más señas) al pulsar un enlace en una página web. La llamada sería un system o un exec pero la GRAN diferencia es lo del entorno gráfico. Lo que he hecho es lanzar con system un script que a su vez lance el openoffice. El código del script es el siguiente:

#!/bin/bash

if [ $# -ne 1 ]
then exit 127
fi

export DISPLAY=:0.0
/usr/lib/openoffice/program/soffice /home/xxx/$1

Pero va a ser que no.
Creo que no es por tema de permisos puesto que el usuario que corre apache es el usuario propietario de la carpeta y del fichero, es decir xxx.
¿Alguna idea? Se aceptan todo tipo de sugerencias.
< Movilización contra las patentes de software en Europa el 27-A (3 comments) | Debian en mac mini (I) (32 comments) >
Enlaces Relacionados
· More on m4t1t0's Diary
· Also by m4t1t0

Encuesta
¿Qué piensas de entradas de este tipo?
· Fatal, qué le corten la cabeza!! 11%
· Mal, Libertonia no es un foro 55%
· Bien, si no me interesa no la leo 22%
· Muy Bien, es tu diario y puedes hacer lo que quieras con él 11%
· Perfecto, y además intento ayudar. Me debes unas birras 0%

Votos: 9
Resultados | Otras Encuestas

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Una ayuda por favor | 7 comentarios (7 temáticos, editoriales, 0 ocultos)
Esto... (5.00 / 1) (#1)
por jamarier a las Thu Apr 28th, 2005 at 05:38:03 PM CET
(Información Usuario) http://barbacana.net/blog/

Pues lo primero es que considero que las News (servicio que gentilmente nos ofrecen los chicos de ecol) es más apropiado para este tipo de consultas.

Lo que yo haría sería mirar los mimetypes. Estos permiten definir la acción que se va a realizar ante los archivos de tipos determinados.

El PHP no tiene nada que ver en esto, es más bien de configuración del cliente.

-----
Opinión expresada por alguien que puede que no sea yo.



 
¿Necesitas hacerlo en el servidor o en el cliente? (none / 0) (#2)
por musg0 a las Thu Apr 28th, 2005 at 07:08:12 PM CET
(Información Usuario) http://helvete.escomposlinux.org

Pues eso, que son cosas diferentes.

Si tienes que hacerlo en el servidor tienes que tener en cuenta que el usuario que tiene abierta la sesión X seguramente no es el mismo que el usuario con el que correo apache y que necesitarás pasarle los datos de alguna forma.

Por ejemplo, copiando los datos del fichero .Xauthority del usuario que abre las X al directorio de usuario con el que se ejecuta apache o también con el programa Xvfb creando un servidor X virtual que usará el usuario apache. Si quieres puedes usar un servidor X de verdad arrancado con el usuario de apache, pero el Xvfb me parece más chulo por no necesitar consola local.

En Ecolnet hicimos un gráfico que se genera dinámicamente con el programa Dia, que necesita un framebuffer de las X incluso en su modo batch. Usamos un framebuffer de Xvfb que se ejecuta como usuario www-data con el que se ejecuta Apache. La página va más lenta que el caballo del malo por la carga que supone todo el proceso, pero es un experimento curioso que me gusta mucho.

Si lo que quieres hacer es en el cliente creo que sólo se puede hacer haciendo que php devuelva el archivo con el tipo mime al que esté asociado el Openoffice, y luego será el usuario el que decida qué hacer con ese fichero que le has enviado. Con Javascript creo que se pueden grabar ficheros en la máquina local, pero es el usuario el que tiene que dar permisos explicitos en algún lado para que se pueda. Es un riesgo de seguridad muy grande dejar que una web ejecute en remoto cualquier programa del ordenador del cliente y javascript no lo permite.



Muchas gracias (none / 0) (#3)
por m4t1t0 (rafa.matito -at- gmail -dot- com) a las Fri Apr 29th, 2005 at 09:46:42 AM CET
(Información Usuario)

Gracias musg0. Al leer mi entrada me he dado cuenta de que me explicado fatal.

Tengo dos ordenadores, uno que hará de cliente y servidor y el otro que será cliente. La aplicación sólo es para esos dos ordenadores conectados en red local, no habrá acceso desde Internet por lo que la seguridad me preocupa bastante poco.

La idea es que los usuarios de la aplicación abran documentos que están en el disco duro del servidor (el cliente tiene montado el directorio por NTFS) y los modifiquen desde la aplicación LAMP.

Los documentos como digo son de OpenOffice y evidentemente no sirve un link al documento y que lo habran con el openoffice del cliente por que entonces modificarían una copia local, no la que está en el directorio del servidor, que es la que interesa.

Lo del Xvfb me parece interesante, voy a probar...

------------------------------
Un egoísta es una persona que se preocupa más de sí misma que de mí.
[ Padre ]


Pues sigue estando mal la explicación (none / 0) (#4)
por Ed hunter (eduardo.mestreENhispalinux.es) a las Fri Apr 29th, 2005 at 12:03:29 PM CET
(Información Usuario) http://speedball.servemp3.com

No ya solo por la errata del NTFS (sistema de ficheros propiedad de Microsoft basado en el HPFS desarrollado por IBM y Microsoft para el sistema operativo OS/2 y utilizado por los sistemas Windows de la família NT, de ahí su nombre: sistema de ficheros del NT), y que supongo que te refieres al NFS (Network File System, creado por Sun).

Y si que serviría el link al fichero, sin más complicaciones.

Supongamos que el sistema de ficheros compartido se monta en /mnt/server, por lo que el documento es /mnt/server/documento.sxw, pues te bastaría con que el link apuntase a file:///mnt/server/documento.sxw.

Es más, te pongo el siguiente ejemplo práctico: acceder al fichero fstab de tu Linux o en caso de usar Windows NT/2000/XP acceder al boot.ini.

Speedball la banda de heavy más chunga
Ven al Helvete Metal Bar
[ Padre ]


... uhm (none / 0) (#6)
por m4t1t0 (rafa.matito -at- gmail -dot- com) a las Wed May 4th, 2005 at 09:50:01 AM CET
(Información Usuario)

Bueno, parece ser que estoy muy espeso últimamente. Evidentemente era NFS y no NTFS (la edad más que nada).
Lo del file ni se me había ocurrido, pero parece ser que sólo funciona con konqueror, con firefox no funciona.
Pero sobre todo muchas gracias, se agrade este tipo de ayuda.

------------------------------
Un egoísta es una persona que se preocupa más de sí misma que de mí.
[ Padre ]


Con Firefox si funciona (none / 0) (#7)
por Ed hunter (eduardo.mestreENhispalinux.es) a las Wed May 4th, 2005 at 11:00:40 AM CET
(Información Usuario) http://speedball.servemp3.com

No tengo Konqueror, y si en cambio Firefox, y te aseguro que SI funciona.

Lo que debe pasarte es que no debes tener asociado el el mozplugger el sxw al OpenOffice.org, y por lo tanto no sabe con qué abrirtelo y sólo te permite "descargartelo".

Speedball la banda de heavy más chunga
Ven al Helvete Metal Bar
[ Padre ]


 
No se puede hacer (none / 0) (#5)
por musg0 a las Fri Apr 29th, 2005 at 12:48:36 PM CET
(Información Usuario) http://helvete.escomposlinux.org

¿Y no pueden usar el openoffice directamente? Es que si el directorio del servidor está montado por NFS en el ordenador cliente se debería ver como un directorio más de la máquina, y al usuario no debería importarle en qué maquina está fisicamente, ya que parece que está en su disco duro gracias a la magia del NFS.

Si la aplicación LAMP reside en el cliente y accede de forma local entonces como han dicho en el otro mensaje, haciendo enlaces de tipo file:// se puede solucionar, pero en ese caso me parece que el uso de la aplicación LAMP está mal planteado.

Lo del Xvfb sólo sirve para aplicaciones que no requieran que el usuario esté interactivamente usando la aplicación gráfica pero requieran un framebuffer de las X. Afortunadamente con x11vnc y un cliente vnc puedes ver ese framebuffer y usar la aplicación de forma interactiva aunque sin aceleración. Si ya tienes un servidor X con un usuario que va a controlar la aplicación, lo más lógico en mi opinión es hacer que el usuario del apache tenga permisos para usar el framebuffer o arrancar la aplicación cambiando al usuario que esté en la consola o a otro con permisos restringidos al sistema de ficheros pero dándole permiso para enviar una aplicación a las X.

[ Padre ]


 
Una ayuda por favor | 7 comentarios (7 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda