🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #10661

Re: Compilar un módulo de PHP

#10661
From: Jesus Manuel NAVARRO LOPEZ
Date: Mon, 11 Feb 2002 09:58
82 lines
4922 bytes
Hola, Alberto:

Alberto Cabello S�nchez wrote:

> 
> 
> Santiago Romero wrote:
> 
> 
>>  Igual que has compilado el php4 para integrarlo en el apache, pero
>>  con apxs en lugar de --with-apache-src :)
>>  bye! :)
> 
> 
> 
> 
> Va a ser que no me se entiende bien, porque lo compil� con apxs...
> Intentar� explicarlo mejor:
> As� (con apxs) me sali� _otro_ libphp4.so (esto es, el php+oracle). Lo 
> que quisiera
> es separar la parte "PHP" de la parte "Oracle". Para que se entienda, 
> pongo el ejemplo del Postgres:
> libphp4.so->          PHP (n�cleo del lenguaje, sin soporte para nada).
> pgsql.so->            Funciones PHP para conectar con PostgreSQL 
> (no                          sustituye al PHP original, no es otro 
> libphp4.so).
> Lo que intento sacar->Funciones PHP para conectar con Oracle.
> 


Bueno, te dir� que -hasta donde yo se- es posible, pero altamente 
incordioso, y no proporciona ventaja alguna.
Por lo que entiendo quieres tener instaladas a la vez dos versiones de 
PHP: una con soporte para Oracle, y otra no.
Te dir� que lo que pides, (en lugar de tener libphp4.so con todos los 
soportes, tener un libphp4.so "pelado" y luego otra libphppg.so, o como 
quieras llamarlo, para el soporte para postgre *para PHP* no es posible 
directamente).


�Por qu� no es posible -en la pr�ctica-?
Principalmente porque la programaci�n del propio PHP no est� preparada a 
  este nivel para soportarla: las llamadas a funciones no est� 
preparadas para la carga de librer�as din�micas, podr�a programarse, 
pero no se ha hecho.  Para hacerlo "como manda el canon" tendr�as que 
programarlo t�.
Por otra parte, el supuesto que yo te digo, tener dos "motores" PHP 
distintos con o sin soporte para Postgre (o cualquier otra extensi�n, 
por supuesto), s� es posible (al menos en teor�a, no lo he probado en la 
pr�ctica para este supuesto), compilando con la opci�n 
"--enable-versioning" en el .configure (lo utilizo para tener en 
servicio soporte -a la vez- para PHP3 y PHP4).  De este modo podr�as 
compilar (cambiando ligeramente los makefiles) lo que quieres para 
obtener algo del estilo de libphp4_pelado.so y libphp4_conpg.so, pero 
aun haci�ndolo, tu "pesadilla" no acabar�a aqu�: Apache necesita saber a 
priori qu� motor invocar para procesar el contenido de servidor de un 
archivo, cosa que hace, para estos casos, con las directivas AddType 
Application, asociando un tipo MIME a un extensi�n de fichero.  Por un 
lado tendr�as que crear una extensi�n privada tipo 
application/x-httpd-php-withpostgre, y darle una extensi�n particular, 
como *.phppg, y luego, acordarte de usarla.

�Y todo esto, para qu�?  Pues veo dos posibilidades (corr�geme si me 
equivoco): una por el gusto de aprender; si es as�, adelante.  Otra, 
para evitar cargar la memoria con c�digo que no sueles usar (en este 
caso, el de acceso a Postgre desde PHP), pero se trata de una librer�a 
compartida: mira el tama�o de la librer�a original, frente a la que 
tiene soporte para Postgre: esa diferencia es toda la que habr� en 
memoria.  En realidad, antes o despu�s acabar�as con las dos librer�as 
cargadas en memoria (a menos que siguieras la ruta de tener todo el 
soporte para PHP en una y *s�lo* el soporte php-pg en otra, lo que no 
creo que acabes haciendo) siendo as� que la pr�ctica totalidad del 
c�digo ser�a redundante, por lo que gastar�as m�s memoria, no menos.

En fin, ya nos comentar�s c�mo te va la cosa (o si encuentras la 
soluci�n, en cuyo caso seguro que a m�s de uno nos interesar�a conocerla).
-- 
SALUD,
Jes�s
***
jesus_navarro@promofinarsa.es
***
Technical Details
Message-ID: <3C6795C0.9060006@promofinarsa.es>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.cwix.com!newsfeed.bcn.ttd.net!news.bcn.ttd.net!frodo.antakira.com!212.25.139.151!news.audiolis.com!192.168.5.1!news.antakira.com!elrond.intranet!nobody
References: <slrna67cqs.6u.alberto@marmota.unex.es> <slrna67pgt.hv2.sromero@compiler.servicom2000> <3C641BA3.1010500@unex.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,e74cd0db11b8930
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2002-02-11 02:31:00 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.cwix.com!newsfeed.bcn.ttd.net!news.bcn.ttd.net!frodo.antakira.com!212.25.139.151!news.audiolis.com!192.168.5.1!news.antakira.com!elrond.intranet!nobody
From: Jesus Manuel NAVARRO LOPEZ <jesus_navarro@promofinarsa.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Compilar un módulo de PHP
Date: Mon, 11 Feb 2002 10:58:24 +0100
Organization: PROMOFINARSA, S.A.
Lines: 83
Message-ID: <3C6795C0.9060006@promofinarsa.es>
References: <slrna67cqs.6u.alberto@marmota.unex.es> <slrna67pgt.hv2.sromero@compiler.servicom2000> <3C641BA3.1010500@unex.es>
NNTP-Posting-Host: 213-97-227-24.uc.nombres.ttd.es
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.2.1) Gecko/20010901
X-Accept-Language: es-ES, es, en