Pregunta
Alguien me indica por favor como instalo openerp mediante launchpad
Respuesta
Hay nuevas versiones de openerp para ubuntu 10.04 en el ppa de Rico
Tzschichholz:
sudo add-apt-repository ppa:ricotz/ppa
luego
apt-get update
apt-get upgrade o apt-get install
No conozco si otra persona tiene otras versiones en su ppa.
No he probado los paquetes de openerp. Casualmente conozco el repositorio por
la actualización de inkscape de Rico. Te recomiendo que lo contactes
en https://launchpad.net/~ricotz . Como medida, no hay que instalar
software de personas en las que no confías.
Otra respuesta
Hay ppa's para instalarlo pero el metodo del equipo de desarrollo de openerp que recomienda es levantar las fuentes e instalar todo en un ambiente aislado usando virtualenv.
Y otra respuesta más
Te he visto hacer varias consultas todos estos días, yo no se nada de
OpenERP pero imagino que deben haber manuales.
Ahora en pocos minutos encontré esto en SanGoogle:
http://adf.ly/1esDxg
Y específicamente esto sobre instalación
http://adf.ly/1esDzZ
Claro el problema es que está en inglés, pero quizá GoogleTranslate te
pueda dar una mano
Creo que si intentas seguir el manual de instalación y tienes
problemas ahí, es más fácil para alguien ayudarte.
Aclaración del autor del problema
si, ya he probado con varios manuales, inclusive existe una pagina:
http://adf.ly/1esDvj
, que esta la forma de instalar, segui todos los pasos, pero me sale unos errores
Comentario del autor del problema
Paso a contarles que ya he instalado openerp, ahora como creo la base de datos, necesito el modulo de Activo Fijo
Respuesta al comentario
busca con el nombre de assets en la lista de modulos en Administración
Blog basado en el foro de www.softwarelibre.org.bo y autorizado por sus moderadores. Está destinado a quienes tienen conocimientos sobre Linux y desean despejar dudas. Este blog está compuesto por una compilación de las mejores consultas con sus respectivas respuestas. Nuestra única fuente es el foro anteriormente mencionado y no nos hacemos responsables por las preguntas y respuestas compiladas ni por los enlaces que puedan figurar en las mismas.
Busqueda sobre Linux y software libre
Noticias sobre linux y software libre - Google
Activos fijos en linux - Software contable - Error en OpenERP
Pregunta
Por favor de donde descargo openERP.
Como los instalo.
Necesito utilizar el modulo de Activo Fijo.
Respuesta
OpenERP (te recomiendo la última 5.0 estable) lo puedes descargar de la
página oficial:
http://adf.ly/1esDtb
si usas Windows, hay un instalador a la izquierda (all in one) que
instala todo lo que necesitas. Si usas Linux, debes descargar al menos
el server y uno de los dos clientes (aconsejo el GTK) a la derecha.
Al momento de instalar en Linux debes tener instalado PostgreSQL, Python
(es muy probable que ya lo tengas) y varios módulos que te indican en
los archivos de ayuda que están dentro del comprimido.
El módulo de Activos Fijos se llama account_asset y debe venir en la
distribución de OpenERP. Solo debes ir a Administración, Admón de
módulos e instalar account_asset. Debes tener tu OpenERP configurado
antes de empezar a trabajar con account_asset.
También puedes intentar instalar OpenERP desde el repositorio de tu
distribución; si usas Debian o Ubuntu, los paquetes son:
openerp-server openerp-client
esta forma es la más sencilla de instalar en Linux.
Pregunta de aclaración
por favor alguien me puede ayudar, ya instale el openerp pero me sale un error:
Por favor de donde descargo openERP.
Como los instalo.
Necesito utilizar el modulo de Activo Fijo.
Respuesta
OpenERP (te recomiendo la última 5.0 estable) lo puedes descargar de la
página oficial:
http://adf.ly/1esDtb
si usas Windows, hay un instalador a la izquierda (all in one) que
instala todo lo que necesitas. Si usas Linux, debes descargar al menos
el server y uno de los dos clientes (aconsejo el GTK) a la derecha.
Al momento de instalar en Linux debes tener instalado PostgreSQL, Python
(es muy probable que ya lo tengas) y varios módulos que te indican en
los archivos de ayuda que están dentro del comprimido.
El módulo de Activos Fijos se llama account_asset y debe venir en la
distribución de OpenERP. Solo debes ir a Administración, Admón de
módulos e instalar account_asset. Debes tener tu OpenERP configurado
antes de empezar a trabajar con account_asset.
También puedes intentar instalar OpenERP desde el repositorio de tu
distribución; si usas Debian o Ubuntu, los paquetes son:
openerp-server openerp-client
esta forma es la más sencilla de instalar en Linux.
Pregunta de aclaración
por favor alguien me puede ayudar, ya instale el openerp pero me sale un error:
Error response
Error code 501.
Message: Unsupported method ('GET').
Error code explanation: 501 = Server does not support this operation.
Me sale este error:
root@nzq-laptop:/usr/bin# ./openerp-server
[2010-09-21 15:24:01,085] INFO:server:version - 5.0.5
[2010-09-21 15:24:01,085] INFO:server:addons_path - /usr/lib/openerp-server/addons
[2010-09-21 15:24:01,086] INFO:server:database hostname - localhost
[2010-09-21 15:24:01,087] INFO:server:database port - 5432
[2010-09-21 15:24:01,087] INFO:server:database user - root
[2010-09-21 15:24:01,087] INFO:objects:initialising distributed objects services
bzr: ERROR: Not a branch: "/usr/lib/openerp-server/".
[2010-09-21 15:24:06,158] CRITICAL:xml-rpc:[01]:
[2010-09-21 15:24:06,159] CRITICAL:xml-rpc:[02]: Environment Information :
[2010-09-21 15:24:06,160] CRITICAL:xml-rpc:[03]: System : Linux-2.6.31-19-generic-i686-with-Ubuntu-9.10-karmic
[2010-09-21 15:24:06,160] CRITICAL:xml-rpc:[04]: OS Name : posix
[2010-09-21 15:24:06,160] CRITICAL:xml-rpc:[05]: LSB Version: core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch:core-3.2-ia32:core-3.2-noarch:core-4.0-ia32:core-4.0-noarch:cxx-3.0-ia32:cxx-3.0-noarch:cxx-3.1-ia32:cxx-3.1-noarch:cxx-3.2-ia32:cxx-3.2-noarch:cxx-4.0-ia32:cxx-4.0-noarch:desktop-3.1-ia32:desktop-3.1-noarch:desktop-3.2-ia32:desktop-3.2-noarch:desktop-4.0-ia32:desktop-4.0-noarch:graphics-2.0-ia32:graphics-2.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch:graphics-3.1-ia32:graphics-3.1-noarch:graphics-3.2-ia32:graphics-3.2-noarch:graphics-4.0-ia32:graphics-4.0-noarch:qt4-3.1-ia32:qt4-3.1-noarch
[2010-09-21 15:24:06,161] CRITICAL:xml-rpc:[06]: Distributor ID: Ubuntu
[2010-09-21 15:24:06,161] CRITICAL:xml-rpc:[07]: Description: Ubuntu 9.10
[2010-09-21 15:24:06,161] CRITICAL:xml-rpc:[08]: Release: 9.10
[2010-09-21 15:24:06,161] CRITICAL:xml-rpc:[09]: Codename: karmic
[2010-09-21 15:24:06,162] CRITICAL:xml-rpc:[10]: Operating System Release : 2.6.31-19-generic
[2010-09-21 15:24:06,162] CRITICAL:xml-rpc:[11]: Operating System Version : #56-Ubuntu SMP Thu Jan 28 01:26:53 UTC 2010
[2010-09-21 15:24:06,162] CRITICAL:xml-rpc:[12]: Operating System Architecture : 32bit
[2010-09-21 15:24:06,163] CRITICAL:xml-rpc:[13]: Operating System Locale : es_BO.UTF8
[2010-09-21 15:24:06,163] CRITICAL:xml-rpc:[14]: Python Version : 2.5.4
[2010-09-21 15:24:06,163] CRITICAL:xml-rpc:[15]: OpenERP-Server Version : 5.0.5
[2010-09-21 15:24:06,164] CRITICAL:xml-rpc:[16]: Last revision No. & ID :
[2010-09-21 15:24:06,164] CRITICAL:xml-rpc:[17]: Error occur when starting the server daemon: (98, 'Direcci\xc3\xb3n ya est\xc3\xa1 en uso')
[2010-09-21 15:24:01,085] INFO:server:version - 5.0.5
[2010-09-21 15:24:01,085] INFO:server:addons_path - /usr/lib/openerp-server/addons
[2010-09-21 15:24:01,086] INFO:server:database hostname - localhost
[2010-09-21 15:24:01,087] INFO:server:database port - 5432
[2010-09-21 15:24:01,087] INFO:server:database user - root
[2010-09-21 15:24:01,087] INFO:objects:initialising distributed objects services
bzr: ERROR: Not a branch: "/usr/lib/openerp-server/".
[2010-09-21 15:24:06,158] CRITICAL:xml-rpc:[01]:
[2010-09-21 15:24:06,159] CRITICAL:xml-rpc:[02]: Environment Information :
[2010-09-21 15:24:06,160] CRITICAL:xml-rpc:[03]: System : Linux-2.6.31-19-generic-i686-with-Ubuntu-9.10-karmic
[2010-09-21 15:24:06,160] CRITICAL:xml-rpc:[04]: OS Name : posix
[2010-09-21 15:24:06,160] CRITICAL:xml-rpc:[05]: LSB Version: core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch:core-3.2-ia32:core-3.2-noarch:core-4.0-ia32:core-4.0-noarch:cxx-3.0-ia32:cxx-3.0-noarch:cxx-3.1-ia32:cxx-3.1-noarch:cxx-3.2-ia32:cxx-3.2-noarch:cxx-4.0-ia32:cxx-4.0-noarch:desktop-3.1-ia32:desktop-3.1-noarch:desktop-3.2-ia32:desktop-3.2-noarch:desktop-4.0-ia32:desktop-4.0-noarch:graphics-2.0-ia32:graphics-2.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch:graphics-3.1-ia32:graphics-3.1-noarch:graphics-3.2-ia32:graphics-3.2-noarch:graphics-4.0-ia32:graphics-4.0-noarch:qt4-3.1-ia32:qt4-3.1-noarch
[2010-09-21 15:24:06,161] CRITICAL:xml-rpc:[06]: Distributor ID: Ubuntu
[2010-09-21 15:24:06,161] CRITICAL:xml-rpc:[07]: Description: Ubuntu 9.10
[2010-09-21 15:24:06,161] CRITICAL:xml-rpc:[08]: Release: 9.10
[2010-09-21 15:24:06,161] CRITICAL:xml-rpc:[09]: Codename: karmic
[2010-09-21 15:24:06,162] CRITICAL:xml-rpc:[10]: Operating System Release : 2.6.31-19-generic
[2010-09-21 15:24:06,162] CRITICAL:xml-rpc:[11]: Operating System Version : #56-Ubuntu SMP Thu Jan 28 01:26:53 UTC 2010
[2010-09-21 15:24:06,162] CRITICAL:xml-rpc:[12]: Operating System Architecture : 32bit
[2010-09-21 15:24:06,163] CRITICAL:xml-rpc:[13]: Operating System Locale : es_BO.UTF8
[2010-09-21 15:24:06,163] CRITICAL:xml-rpc:[14]: Python Version : 2.5.4
[2010-09-21 15:24:06,163] CRITICAL:xml-rpc:[15]: OpenERP-Server Version : 5.0.5
[2010-09-21 15:24:06,164] CRITICAL:xml-rpc:[16]: Last revision No. & ID :
[2010-09-21 15:24:06,164] CRITICAL:xml-rpc:[17]: Error occur when starting the server daemon: (98, 'Direcci\xc3\xb3n ya est\xc3\xa1 en uso')
yo segui los pasos de este link: http://adf.ly/1esDvj
Respuesta a la aclaración de la pregunta
El servidor esta corriendo, cuando haces CTRL-C para apagar el openerp-server, este sigue corriendo. Tienes que detenerlo.
En linux $ sudo killall -s openerp-server.py
En linux $ sudo killall -s openerp-server.py
El mensaje de error dice que el puerto esta usado, eso quiere decir que hay una instancia de openerp-server corriendo.
Si inicias openerp-server y luego cierras la ventana, igual sigue corriendo. si tienes gnome. Ve a Sistema → Administración → Monitor de Sistema, y busca openerp-server, veras que esta alli ejecutado. O talves, tengas otra aplicación usando el puerto 8070, por ejemplo.
El problema es un conflicto de puertos, a partir de alli confirma en tu pc.
o habre el top, htop, system monitor y paralo
Si inicias openerp-server y luego cierras la ventana, igual sigue corriendo. si tienes gnome. Ve a Sistema → Administración → Monitor de Sistema, y busca openerp-server, veras que esta alli ejecutado. O talves, tengas otra aplicación usando el puerto 8070, por ejemplo.
El problema es un conflicto de puertos, a partir de alli confirma en tu pc.
o habre el top, htop, system monitor y paralo
Conectar informix en Linux
Prgunta
Tengo un sistema con informix que esta con opensuse, necesito conectarme desde mi equipo que esta con BoliviaOS ( Ubuntu ), hacer lo que es en windows una ODBC, necesito conectarme para hacer unas aplicaciones con php.
Respuesta
Primero asegurate tener la extension ifx, instalada en php5
Luego es muy parecido a realizar conexiones y consultas con otras librerias como mysql o postgres.
Este es un ejemplo muy trivial!! no es suficiente, para una aplicación pero te da una idea, usualmente tendrias que crear una propia clase que administre las conexiones, y tal ves clases que mapeen tus tablas
Hay librerías y ORM's que ya mapean y ayudan con las consultas, ademas de brindar seguridad sanitando las cadenas. puedes encontrar varias. La más completa es Propel y Doctrine.
Yo haría el desarrollo en Symfony http://adf.ly/1esDku y aprovecharía el ORM.
Otra respuesta
Personalmente, muy personalmente, usaría jdbc:
http://adf.ly/1esDnn
http://adf.ly/1esDpA
Php y bases de datos, en mi no tan humilde experiencia, es una
combinación bastante dolorosa... como casi todo en php.
Aclaracion de la pregunta
la verificacion de php_ifx.so, es en php.ini?
Respuesta a la claración de la pregunta
Seguramente se activa en php.ini, pero php_ifx.so no existe en
ubuntu. 99.9999% seguro que no existe en boliviaos. Necesitas
compilarlo por tu cuenta. De allí lo de doloroso.
Otra respuesta
Compilar no duele :-)
Con informix bien instalado
$ sudo apt-get install php5-dev
$ svn checkout http://svn.php.net/repository/pecl/informix/trunk php_ifx
$ cd php_ifx
$ export LDFLAGS=$INFORMIXDIR/lib/esql/checkapi.o
$ make
busca la libreria generada informix.so
luego solo añades, "extension=informix.so" en el php.ini que estas usando. No hay más problemas, yo pude compilar en unos tres minutos. Por supuesto, tienes que tener Informix con el SDK osea el archivo checkapi.o tiene que existir.
Después te fijas con una función phpinfo() si esta cargado.
La documentación oficial para la instalación esta aquí
http://adf.ly/1esDsG,
puedes notar que no son exactamente los mismos pasos que hice.
Hay más facilidades en otras plataformas, en python es tan trivial como un easy_install.
Tengo un sistema con informix que esta con opensuse, necesito conectarme desde mi equipo que esta con BoliviaOS ( Ubuntu ), hacer lo que es en windows una ODBC, necesito conectarme para hacer unas aplicaciones con php.
Respuesta
Primero asegurate tener la extension ifx, instalada en php5
extension=php_ifx.so
Luego es muy parecido a realizar conexiones y consultas con otras librerias como mysql o postgres.
$conn_id = ifx_connect ("mydb@servidor", "informix", "informix");
echo "Error en la conexión!";
exit;
}
$result = ifx_query("SELECT NOMBRES, APELLIDOS FROM T_CLIENTES",$conn_id);
// la siguiente es una función trucha, pero muy practica.
// probablemente quieras hacer una iteración y tomar los valores
// cada registro
ifx_htmltbl_result($result, "border=1");
ifx_free_result($result);
ifx_close($conn_id);
?
Leyendo esto http://adf.ly/1esDjP tendras toda la idea general de lo que puedes hacer.
echo "Error en la conexión!";
exit;
}
$result = ifx_query("SELECT NOMBRES, APELLIDOS FROM T_CLIENTES",$conn_id);
// la siguiente es una función trucha, pero muy practica.
// probablemente quieras hacer una iteración y tomar los valores
// cada registro
ifx_htmltbl_result($result, "border=1");
ifx_free_result($result);
ifx_close($conn_id);
?
Leyendo esto http://adf.ly/1esDjP tendras toda la idea general de lo que puedes hacer.
Hay librerías y ORM's que ya mapean y ayudan con las consultas, ademas de brindar seguridad sanitando las cadenas. puedes encontrar varias. La más completa es Propel y Doctrine.
Yo haría el desarrollo en Symfony http://adf.ly/1esDku y aprovecharía el ORM.
Otra respuesta
Personalmente, muy personalmente, usaría jdbc:
http://adf.ly/1esDnn
http://adf.ly/1esDpA
Php y bases de datos, en mi no tan humilde experiencia, es una
combinación bastante dolorosa... como casi todo en php.
Aclaracion de la pregunta
la verificacion de php_ifx.so, es en php.ini?
Respuesta a la claración de la pregunta
Seguramente se activa en php.ini, pero php_ifx.so no existe en
ubuntu. 99.9999% seguro que no existe en boliviaos. Necesitas
compilarlo por tu cuenta. De allí lo de doloroso.
Otra respuesta
Compilar no duele :-)
Con informix bien instalado
$ sudo apt-get install php5-dev
$ svn checkout http://svn.php.net/repository/pecl/informix/trunk php_ifx
$ cd php_ifx
$ export LDFLAGS=$INFORMIXDIR/lib/esql/checkapi.o
$ make
busca la libreria generada informix.so
luego solo añades, "extension=informix.so" en el php.ini que estas usando. No hay más problemas, yo pude compilar en unos tres minutos. Por supuesto, tienes que tener Informix con el SDK osea el archivo checkapi.o tiene que existir.
Después te fijas con una función phpinfo() si esta cargado.
La documentación oficial para la instalación esta aquí
http://adf.ly/1esDsG,
puedes notar que no son exactamente los mismos pasos que hice.
Hay más facilidades en otras plataformas, en python es tan trivial como un easy_install.
Servidor de correo en Linux
Pregunta
Queria hacerles una consulta ya que nunca he instalado ni configurado un servidor de correo. quisiera que me recomendaran alguno
y necesitaria implementar un mail server con lo siguiente:
1- corra sobre plataforma linux
2- pueda tener 2 o 3 dominios
3- no tenga limite de cantidad de cuentas
4- que pueda redireccionar el correo de algunas cuentas a una cuenta especifica
5- administrar via web de forma sencilla
6- Poder filtrar spam y virus
y necesitaria implementar un mail server con lo siguiente:
1- corra sobre plataforma linux
2- pueda tener 2 o 3 dominios
3- no tenga limite de cantidad de cuentas
4- que pueda redireccionar el correo de algunas cuentas a una cuenta especifica
5- administrar via web de forma sencilla
6- Poder filtrar spam y virus
Respuesta
SME Server a mi me resulto muy bien.
Es sensillo de instalar y de configurar, tienen un sitio ademas con muchas opciones para hacerlo mas groso, como por ejemplo levantar una central asterisk,
Fijate en http://adf.ly/1esDf8
Otra respuesta
Quizas también te sirva ver este enlace sobre servidores de correo electronico Lista de servidores de correo
http://adf.ly/1eNNHM
Es sensillo de instalar y de configurar, tienen un sitio ademas con muchas opciones para hacerlo mas groso, como por ejemplo levantar una central asterisk,
Fijate en http://adf.ly/1esDf8
Otra respuesta
Quizas también te sirva ver este enlace sobre servidores de correo electronico Lista de servidores de correo
http://adf.ly/1eNNHM
Desconfiguración al conectar laptop con Debian al televisor
Pregunta
Generalmente no escribo para solucionar mis problemas, pero ahora si que
me paso algo que no entiendo y me gustaría que me dieran una manito si
han tenido una experiencia como la mía..., bueno..
Tengo una laptop HP 550 con resolución de 1280x768 con Debian Lenny 5.04
y la conecté con un cable vga(los que se usan para los data shows) a un
televisor Sony pantalla plana de 32 pulgadas... la resolución se acomodó
bastante bien, pero las letras de los menús, iconos y todo eran
gigantes, así que fui a
Sistema-Administración-Preferencias-Tipografías y en vez de los
valores que por defecto estaban en 10, puse 2, y ya se veía bien en el
televisor (aunque las letras del menú de google-earth todavía estaban
muy grandes). Luego cuando traté de utilizar la laptop normalmente,
volví a cambiar todos los valores de las tipografías a 10(como estaban
antes) e igual se ve todo gigantesco en la pantalla, y aunque retorne
los valores a 2 como lo hice para que funcione en el televisor algunos
menús son muy grandes, por ejemplo el de mi iceweasel (firefox), asi que
no puedo ni navegar :'(. Ya revisé el xorg.conf y está igual que antes,
es seguro que algo se desconfiguró pero no se donde..
Heeelp!!..
Respuesta
la solución fue arreglar el DPI :).
Generalmente no escribo para solucionar mis problemas, pero ahora si que
me paso algo que no entiendo y me gustaría que me dieran una manito si
han tenido una experiencia como la mía..., bueno..
Tengo una laptop HP 550 con resolución de 1280x768 con Debian Lenny 5.04
y la conecté con un cable vga(los que se usan para los data shows) a un
televisor Sony pantalla plana de 32 pulgadas... la resolución se acomodó
bastante bien, pero las letras de los menús, iconos y todo eran
gigantes, así que fui a
Sistema-Administración-Preferencias-Tipografías y en vez de los
valores que por defecto estaban en 10, puse 2, y ya se veía bien en el
televisor (aunque las letras del menú de google-earth todavía estaban
muy grandes). Luego cuando traté de utilizar la laptop normalmente,
volví a cambiar todos los valores de las tipografías a 10(como estaban
antes) e igual se ve todo gigantesco en la pantalla, y aunque retorne
los valores a 2 como lo hice para que funcione en el televisor algunos
menús son muy grandes, por ejemplo el de mi iceweasel (firefox), asi que
no puedo ni navegar :'(. Ya revisé el xorg.conf y está igual que antes,
es seguro que algo se desconfiguró pero no se donde..
Heeelp!!..
Respuesta
la solución fue arreglar el DPI :).
Abrir un archivo del sistema desde php en Ubuntu
Pregunta
tengo otra pregunta
cuando me encuentro en la terminal de ubuntu escribo lo siguiente:
gksu gedit /etc/misarchivos/configuracion.conf
y eso me abre el archivo con privilegios para editarlo y luego guardarlo como administrador "su"
ocurre lo siguiente, ...... eso mismo necesito realizarlo desde PHP con código, he encontrado que con fopen("/etc/misarchivos/configuracion.conf") puedo abrir un archivo,
intentando hacerlo con fopen al hacerlo correr me sale el error que no tengo permiso, claro es porque me falta gksu gedit para tener privilegio de administrador "su"
Ahora por otro lado encontre lo siguiente:
$ultima_linea = system('ls', $retval);
system dice que me ejecuta comandos desde php, lo he probado y si funciona, quise combinar los dos
fopen() y system() , pero no obtuve un buen resultado.
Alquien me puede ayudar por favor, o darme alguna guia ?????
Respuesta
como ejecutas el script PHP, desde consola o mediante el navegador??
Aver si te sirve esto:
Desde la consola con el cliente php puedes ejecutar:
sudo php /var/www/fichero.php
puedes combinarlo junto con system y hacer lo que necesitas.
Otra respuesta
¿Por que no cambias los permisos antes de ejecutar tu script de PHP?
chmod 777 /etc/misarchivos/configuracion.conf
Si no quieres cambiar los permisos, puedes executar tu archivo de php con sudo:
sudo php micodigo.php
Si quieres evitar usando una contraseña, puedes editar tu archivo /etc/sudoers:
sudo visudo
Y añadir esta linea:
Entonces, puedes usar esto en tu script de php:
exec("sudo
Donde $a tiene el contenido del archivo en un array.
Y otra respuesta
En general es una mala idea poner permisos para todo el mundo. Yo suelo
decir que también que es una idea peresoza por no buscar mejores
caminos.
Por lo que se indica , asumo que su código PHP se está ejecutando vía
el servidor web apache. Y por ahí debe ir la solución.
El tema de permisos de acceso a un archivo, es validado por el sistema
verificando la propiedad del archivo y la propiedad del proceso. En la
mayoría de los sistemas el servidor web (por tanto PHP) se ejecutan bajo
un usuario determinado (propietario del proceso), en Debian www-data, en
CentOS apache.
Entonces si quiero tener un script PHP que ejecutado via web pueda
editar un archivo, todo lo que tengo que hacer es que mi usuario
www-data/apache sea dueño de ese archivo. Esto es bastante permisivo, y
en general la seguridad recomienda dar el permiso mínimo necesario. Asi
que en lugar que sea dueño del archivo es mejor que sólo pertenezca a su
grupo.
Traduciendo a órdenes sería así: (asumiendo que el usuario bajo el cual
corre el servidor web es 'apache')
chown root.apache /etc/misarchivos/configuracion.conf
chmod u=rw,g=rw,o= /etc/misarchivos/configuracion.conf
A partir de este momento un script PHP como se menciona antes podría
hacer fopen("/etc/misarchivos/configuracion.conf") y modificar el
archivo.
Para averiguar que usuario es dueño del proceso "servidor web" se puede
hacer: ps aux | grep http
En mi máquina obtengo esto:
[root@hardy ~]# ps aux | grep http
apache 1668 0.0 6.1 43084 22812 ? S Aug17
0:04 /usr/sbin/httpd
apache 10130 0.0 6.8 45276 25144 ? S Aug18
0:04 /usr/sbin/httpd
root 19690 0.0 4.9 35804 18200 ? Ss Jun05
10:07 /usr/sbin/httpd
apache 21769 0.0 6.5 44112 24000 ? S Aug17
0:05 /usr/sbin/httpd
apache 26457 0.0 6.1 42944 22752 ? S Aug18
0:03 /usr/sbin/httpd
apache 28042 0.0 5.4 41460 20136 ? S 09:31
0:00 /usr/sbin/httpd
root 29736 0.0 0.1 1836 492 pts/0 S+ 13:00 0:00 grep
http
tengo otra pregunta
cuando me encuentro en la terminal de ubuntu escribo lo siguiente:
gksu gedit /etc/misarchivos/configuracion.conf
y eso me abre el archivo con privilegios para editarlo y luego guardarlo como administrador "su"
ocurre lo siguiente, ...... eso mismo necesito realizarlo desde PHP con código, he encontrado que con fopen("/etc/misarchivos/configuracion.conf") puedo abrir un archivo,
intentando hacerlo con fopen al hacerlo correr me sale el error que no tengo permiso, claro es porque me falta gksu gedit para tener privilegio de administrador "su"
Ahora por otro lado encontre lo siguiente:
$ultima_linea = system('ls', $retval);
system dice que me ejecuta comandos desde php, lo he probado y si funciona, quise combinar los dos
fopen() y system() , pero no obtuve un buen resultado.
Alquien me puede ayudar por favor, o darme alguna guia ?????
Respuesta
como ejecutas el script PHP, desde consola o mediante el navegador??
Aver si te sirve esto:
Desde la consola con el cliente php puedes ejecutar:
sudo php /var/www/fichero.php
puedes combinarlo junto con system y hacer lo que necesitas.
Otra respuesta
¿Por que no cambias los permisos antes de ejecutar tu script de PHP?
chmod 777 /etc/misarchivos/configuracion.conf
Si no quieres cambiar los permisos, puedes executar tu archivo de php con sudo:
sudo php micodigo.php
Si quieres evitar usando una contraseña, puedes editar tu archivo /etc/sudoers:
sudo visudo
Y añadir esta linea:
%users ALL = NOPASSWD: cat
/etc/misarchivos/configuracion.confEntonces, puedes usar esto en tu script de php:
exec("sudo
cat
/etc/misarchivos/configuracion.conf", $a);Donde $a tiene el contenido del archivo en un array.
Y otra respuesta
En general es una mala idea poner permisos para todo el mundo. Yo suelo
decir que también que es una idea peresoza por no buscar mejores
caminos.
Por lo que se indica , asumo que su código PHP se está ejecutando vía
el servidor web apache. Y por ahí debe ir la solución.
El tema de permisos de acceso a un archivo, es validado por el sistema
verificando la propiedad del archivo y la propiedad del proceso. En la
mayoría de los sistemas el servidor web (por tanto PHP) se ejecutan bajo
un usuario determinado (propietario del proceso), en Debian www-data, en
CentOS apache.
Entonces si quiero tener un script PHP que ejecutado via web pueda
editar un archivo, todo lo que tengo que hacer es que mi usuario
www-data/apache sea dueño de ese archivo. Esto es bastante permisivo, y
en general la seguridad recomienda dar el permiso mínimo necesario. Asi
que en lugar que sea dueño del archivo es mejor que sólo pertenezca a su
grupo.
Traduciendo a órdenes sería así: (asumiendo que el usuario bajo el cual
corre el servidor web es 'apache')
chown root.apache /etc/misarchivos/configuracion.conf
chmod u=rw,g=rw,o= /etc/misarchivos/configuracion.conf
A partir de este momento un script PHP como se menciona antes podría
hacer fopen("/etc/misarchivos/configuracion.conf") y modificar el
archivo.
Para averiguar que usuario es dueño del proceso "servidor web" se puede
hacer: ps aux | grep http
En mi máquina obtengo esto:
[root@hardy ~]# ps aux | grep http
apache 1668 0.0 6.1 43084 22812 ? S Aug17
0:04 /usr/sbin/httpd
apache 10130 0.0 6.8 45276 25144 ? S Aug18
0:04 /usr/sbin/httpd
root 19690 0.0 4.9 35804 18200 ? Ss Jun05
10:07 /usr/sbin/httpd
apache 21769 0.0 6.5 44112 24000 ? S Aug17
0:05 /usr/sbin/httpd
apache 26457 0.0 6.1 42944 22752 ? S Aug18
0:03 /usr/sbin/httpd
apache 28042 0.0 5.4 41460 20136 ? S 09:31
0:00 /usr/sbin/httpd
root 29736 0.0 0.1 1836 492 pts/0 S+ 13:00 0:00 grep
http
Suscribirse a:
Entradas (Atom)