Foros del Web » Programando para Internet » PHP » Configuración PHP »

Compartir un .php en dos sitios web distintos pero en el mismo servidor

Estas en el tema de Compartir un .php en dos sitios web distintos pero en el mismo servidor en el foro de Configuración PHP en Foros del Web. Hola a todos La situación es la siguiente. Tengo un dedicado en el cual hay dos sitios web cuya "home" está asignada a usuarios distintos ...
  #1 (permalink)  
Antiguo 01/05/2009, 13:39
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 8 meses
Puntos: 55
Compartir un .php en dos sitios web distintos pero en el mismo servidor

Hola a todos

La situación es la siguiente. Tengo un dedicado en el cual hay dos sitios web cuya "home" está asignada a usuarios distintos (/home/usuarioA y /home/usuarioB), aunque realmente administro yo ambos. Hay un archivo .php en el sitio A que desearía usar en el sitio B haciendo un include("/ruta/al/archivo"); Dicho archivo .php a su vez tiene dentro otros include() que hacen referencia a más archivos del sitio A.

Entonces en el sitio B he creado un archivo que hace un include() de ese .php, pero obviamente me da un error "permission denied".

No sé cuál podría ser la solución a esto, sin tener que cambiar el propietario de todos los archivos del sitio A al B, o mover los archivos del sitio A al B (solución que no he probado aunque imagino que funcionaría, pero quiero dejarla como último recurso), y sin perder seguridad.

Por si ayuda, uso PHP como CGI y creo que corre suexec. Tengo acceso root total al servidor.

Gracias anticipadas por la ayuda
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #2 (permalink)  
Antiguo 02/05/2009, 09:34
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 7 meses
Puntos: 33
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

ferny:

has probado con->
include("URL");

Saludos
Franco
  #3 (permalink)  
Antiguo 02/05/2009, 11:36
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 8 meses
Puntos: 55
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

Es que eso no me sirve, ya que tengo que poder acceder a las variables internas de ese .php y ver su valor... si hago el include por URL no se puede acceder a ellas

De todas formas gracias
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #4 (permalink)  
Antiguo 03/05/2009, 15:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

Verifica que las directivas open_basedir, y safe_mode esten desactivadas, ya que de lo contrario te pasan ese tipo de problemas de permisos.

Saludos.
  #5 (permalink)  
Antiguo 04/05/2009, 00:50
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 8 meses
Puntos: 55
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

Hola GatorV

El safe_mode está en Off y el open_basedir está comentado. Por desgracia todavía no lo he logrado, aunque este finde no pude probar mucho.

Un saludo
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #6 (permalink)  
Antiguo 04/05/2009, 07:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

¿Que error te genera al hacer el include?

Saludos.
  #7 (permalink)  
Antiguo 04/05/2009, 07:58
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 8 meses
Puntos: 55
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

Cita:
Warning: require_once(/ruta/al/archivo/a/incluir.php) [function.require-once]: failed to open stream: Permission denied in /ruta/al/archivo/donde/se/incluye.php on line 2

Fatal error: require_once() [function.require]: Failed opening required '/ruta/al/archivo/a/incluir.php' (include_path='.:/usr/share/php5') in /ruta/al/archivo/donde/se/incluye.php on line 2
La línea 2 es simplemente un require_once("/ruta/al/archivo/a/incluir.php");

He probado con include() en vez de require_once() y el error es similar, aunque lo segundo sale como Warning en vez de como Fatal error...
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.

Última edición por ferny; 04/05/2009 a las 08:31
  #8 (permalink)  
Antiguo 04/05/2009, 08:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

Mmm la unica razón si no estan activadas esas directivas es los permisos del archivo directamente que el usuario bajo el que se ejecuta PHP no tenga los permisos para poder leer carpetas de otros usuarios, verifica eso.

Saludos.
  #9 (permalink)  
Antiguo 04/05/2009, 09:14
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 8 meses
Puntos: 55
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

Hola

El apache está corriendo con el usuario nobody, así que creo que por ahí andan los tiros... Entiendo por lo que me dices que debería cambiarlo a otro usuario que tenga permisos de acceso a todos los home que sirva apache ¿cierto?

Lo que he hecho de momento:

groupadd apache
useradd -g apache apache

El problema es que al cambiar el usuario y grupo de apache en el httpd.conf, me deja de funcionar todas las webs. Supongo que será porque este usuario no tiene aún permisos de nada... La cuestión sería, ¿cómo le doy permisos para poder acceder a todo?

Espero ir ya en la senda
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #10 (permalink)  
Antiguo 04/05/2009, 10:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

Pues creo tendrías que darle permisos al usuario de apache para leer todas las homes, usando chown().

Saludos.
  #11 (permalink)  
Antiguo 04/05/2009, 12:16
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 8 meses
Puntos: 55
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

Hola

No funciona, pero te voy a decir por qué... ni me acordaba de que el servidor tiene instalado suPHP Me he dado cuenta por el mensaje de error que me ha salido en cuanto hice ese cambio

Bueno, no sé si se te ocurre algo más que probar, porque estoy sospechando que la única forma de que funcione es hacer un chown -Rf del directorio home del usuario A para pasarlo al usuario B Supongo que funcionaría ¿no?. Y también supongo que entonces ya no podría acceder a esos directorios y al FTP usando el usuario B (al menos ahora mismo con el A no puedo acceder al B, y viceversa). Lo que no quiero es cambiar los permisos de r/w/x, me gustaría que se quedaran como están..., ¿no es un poco peligroso poner permisos 777 a todo?

Un saludo
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #12 (permalink)  
Antiguo 04/05/2009, 12:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

Mmmm complicado, lo que te recomendaria para que no tengas esps problemas de seguridad es que pusieras los archivos comunes en una carpeta comun para de ahi hacer el include, de lo contrario si vas a tener que usar 777 en todos los archivos.

Saludos.
  #13 (permalink)  
Antiguo 04/05/2009, 14:17
Avatar de ferny
Il capo della mafia
 
Fecha de Ingreso: febrero-2002
Ubicación: Al final del cable
Mensajes: 10.080
Antigüedad: 22 años, 8 meses
Puntos: 55
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

No puedo usar una carpeta común ya que el include es de un prefabricado que a su vez hace más includes y se va ramificando... o sea al final tendría que andar tocando código para que funcione en todos los casos

De todas formas ya probé lo del chown -Rf a la home del usuario A y he dejado los dos sitios web con el usuario B, así parece que funciona aunque dejé de tener acceso por FTP a la cuenta del usuario A, ahora tengo que entrar con la del B a los dos sitios... pero bueno, no es mucho inconveniente. Al final ni cambiar el usuario de apache ni nada, sólo con el chown parece que se soluciona

No sé si será la mejor solución, pero al menos está funcionando de una vez

Un saludo
__________________
www.mundodivx.com || www.mundodivx.org

Pon tu mano en un horno caliente durante un minuto y te parecerá una hora.
Siéntate junto a una chica preciosa durante una hora y te parecerá un minuto.
Eso es la relatividad.
  #14 (permalink)  
Antiguo 04/05/2009, 15:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

Pues como tu tienes el control de ambos usuarios, creo es la mejor opcion.

Saludos.
  #15 (permalink)  
Antiguo 07/05/2009, 02:22
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años, 7 meses
Puntos: 23
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

buenas!!

pues... si mi logica no falla lo tendrias facil haciendo un alias en el servidor apache

de esta manera al crear el alias global desde el apache al hacer el llamado al directorio este sera "local" para todos aun cuando no existiera en ninguno

me ejemplifico sin ser exacto en las sintaxis

creas un alias:

alias /libphp "/root/apache/libreriaphp"

esto crea que cuando en el sitio uno o dos la carpeta estara disponible, aun cuando no existe en ninguno de los dos

sitio A
www.sitioA.com/libphp

sitio B
www.sitioB.com/libphp


obviamente todos los include's que requieras deveran estar en el mismo lugar o tambien estar declaradas para que sean validas

un saludo!!
espero que pueda ayudarte
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #16 (permalink)  
Antiguo 12/05/2009, 08:05
Avatar de Barraca  
Fecha de Ingreso: octubre-2001
Ubicación: Dénia
Mensajes: 259
Antigüedad: 23 años
Puntos: 2
Respuesta: Compartir un .php en dos sitios web distintos pero en el mismo servidor

Qué tal?
Si probaste con
<?php include_once("/var/www/blablabla) ?> y falla, y tiene el mismo permiso de usuario (chown al archivo y chmod), intenta con Readfile (http://es.php.net/readfile).

A mi poco más se me ocurre.

Última edición por Barraca; 13/08/2009 a las 09:16
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:55.