1.
Tengo la última versión de PHP usando el servicio
de CVS anónimo, ¡pero no hay un script configure!
Es necesario tener el paquete GNU autoconf instalado de modo que
pueda generar el script configure desde
configure.in. Simplemente ejecute
./buildconf en el directorio superior
después de obtener las fuentes del servidor
CVS. (Asimismo, a menos que corra configure con la opción
--enable-maintainer-mode, el script no
será re-creado automáticamente cuando el archivo
configure.in sea actualizado, así
que debe asegurarse de hacerlo manualmente cuando note que
configure.in ha cambiado. Un síntoma de esto es encontrar
cosas como @VARIABLE@ en su Makefile después de que se
ejecuta configure o config.status.)
2.
Tengo problemas configurando PHP para que funcione con
Apache. Dice que no puede encontrar
httpd.h, ¡pero está
allí donde dije que estaba!
Necesita decirle al script configure/setup la ubicación
del nivel superior de su árbol fuente de Apache. Esto
quiere decir que debe especificar --with-apache=/ruta/hacia/apache y
no--with-apache=/ruta/hacia/apache/src.
3.
Mientras configuraba PHP (./configure), se
encuentra con un error similar al siguiente:
checking lex output file root... ./configure: lex: command not
found configure: error: cannot find output from lex; giving up
Asegúrese de leer las instrucciones de instalación cuidadosamente
y note que necesita instalar tanto flex como bison para compilar
PHP. Dependiendo de su configuración, deberá
instalar bison y flex ya sea desde el código fuente, o un
paquete, como un RPM.
4.
Cuando intento iniciar Apache, recibo el siguiente mensaje:
fatal: relocation error: file /ruta/hacia/libphp4.so: symbol
ap_block_alarms: referenced symbol not found
Este error aparece usualmente cuando se compila el programa
núcleo de Apache como una biblioteca DSO para uso
compartido. Intente reconfigurar apache, asegurándose de
usar por lo menos las siguientes banderas:
--enable-shared=max --enable-rule=SHARED_CORE
Para más información, lea el archivo
INSTALL en el nivel superior de Apache, o
la página del manual
DSO de Apache.
5.
Cuando ejecuto configure, ¡dice que no puede encontrar los
archivos de inclusión o la biblioteca GD, gdbm o
algún otro paquete!
Puede hacer que el script configura busque por archivos de
cabecera y bibliotecas en ubicaciones no-estándar
especificando banderas a pasar al pre-procesador y enlazador de
C, como:
7.
Cuando ejecuto make, parece correr bien pero
luego falla cuando intenta enlazar la aplicación final,
quejándose de que no puede encontrar algunos archivos.
Algunas versiones antiguas de make no colocan correctamente las
versiones compiladas de los archivos en el directorio de
funciones en ese mismo directorio. Intente ejecutar cp
*.o functions y luego re-ejecute
make para ver si eso ayuda. Si lo hace,
realmente debería actualizarse a una versión
reciente de GNU make.
8.
Cuando se enlaza PHP, se queja del número de referencias
indefinidas.
Eche un vistazo a la línea de enlace y asegúrese
de que todas las bibliotecas apropiadas están siendo
incluidas al final. Algunas comunes que puede estar dejando
pasar son '-ldl' y cualquier otra biblioteca requerida para el
soporte de bases de datos que incluyó.
Si está enlazando con Apache 1.2.x,
¿recordó agregar la información apropiada a
la línea EXTRA_LIBS del archivo de configuración y
re-ejecutó el script Configure de Apache? Vea el archivo
INSTALL que viene
con la distribución para más información.
Algunas personas han reportado también que han tenido que
agregar '-ldl' inmediatamente después de
libphp4.a cuando enlazan con Apache.
9.
No puedo lograr que compile PHP con Apache 1.3.
En realidad es sencillo. Siga los siguientes pasos
cuidadosamente:
Descomprima el archivo en alguna parte, por ejemplo
/usr/local/src/apache-1.3.
Compile PHP ejecutando en un principio ./configure
--with-apache=/<ruta>/apache-1.3 (sustituya
<ruta> con la ruta real a su directorio apache-1.3.)
Escriba make seguido de make
install para compilar PHP y copiar los archivos
necesarios al árbol de la distribución de
Apache.
Cambie de directorios al directorio
/<ruta>/apache-1.3/src y edite el
archivo Configuration. Agregue al
archivo: AddModule modules/php4/libphp4.a.
Escriba: ./configure seguido por
make.
¡Ahora debe tener un binario httpd habilitado con PHP!
Nota: También es posible usar el
nuevo script ./configure de Apache. Vea las
instrucciones en el archivo README.configure
que es parte de su distribución de Apache. También
eche un vistazo al archivo INSTALL en la
distribución de PHP.
10.
He seguido todos los pasos para instalar la versión tipo
módulo de Apache en Unix, y mis scripts PHP aparecen en
mi navegador o se me pide que guarde el archivo.
Esto quiere decir que el módulo PHP no está siendo
invocado por alguna razón. Tres cosas que puede verificar
antes de solicitar más ayuda:
Asegúrese de que el binario httpd que está
corriendo es el binario httpd real que acaba de
compilar. Para hacer esto, pruebe ejecutar:
/ruta/hacia/binario/httpd -l
Si no ve mod_php4.c listado entonces no
está ejecutando el binario correcto. Encuentre e
instale el binario correcto.
Asegúrese de que ha agregado el Tipo Mime correcto a
uno de sus archivo .conf de Apache. Debe
ser: AddType application/x-httpd-php3
.php3 (para PHP 3)
o AddType application/x-httpd-php .php
(para PHP 4)
También asegúrese de que esta línea
AddType no está escondida al interior de un bloque
<Virtualhost> o <Directory> que puede prevenir
que se aplique en la ubicación de su script de prueba.
Finalmente, la ubicación predeterminada de los
archivos de configuración de Apache cambió
entre Apache 1.2 y Apache 1.3. Debería verificar que
el archivo de configuración al que le está
agregando la línea AddType está siendo
leído en realidad. Puede colocar un error de sintaxis
obvio en su archivo httpd.conf o algún otro cambio
obvio que le dirá si el archivo está siendo
leído correctamente.
11.
Dice que use:
--activate-module=src/modules/php4/libphp4.a,
pero ese archivo no existe, ¡así que lo
cambié a
--activate-module=src/modules/php4/libmodphp4.a
y no funciona! ¿Qué está pasando?
Note que el archivo libphp4.a no se supone
que exista. !El proceso de apache lo creará!
12.
Cuando intento compilar Apache con PHP como un módulo
estático usando
--activate-module=src/modules/php4/libphp4.a
me dice que mi compilador no es compatible con ANSI.
Este es un mensaje de error equivocado de Apache que ha sido
arreglado en versiones más recientes.
13.
Cuando intento compilar PHP usando --with-apxs obtengo mensajes de error
extraños.
Hay tres cosas que pueden verificarse. Primero, por alguna
razón cuando Apache compila el script Perl apxs, a veces
termina compilándose sin las variables y banderas de
compilación apropiadas. Encuentre su script apxs (pruebe
con el comando which apxs), a veces se
encuentra en /usr/local/apache/bin/apxs o
/usr/sbin/apxs. Ábralo y verifique
que tenga líneas similares a las siguientes:
my $CFG_CFLAGS_SHLIB = ' '; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB = ' '; # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' '; # substituted via Makefile.tmpl
Si esto es lo que ve, ha encontrado su problema. Puede que
contengan solo espacios u otros valores incorrectos, como
'q()'. Cambie estas líneas para que digan:
my $CFG_CFLAGS_SHLIB = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB = 'gcc'; # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared); # substituted via Makefile.tmpl
El segundo problema posible debería ocurrir
únicamente en Red Hat 6.1 y 6.2. El script apxs que
distribuye Red Hat está mal. Busque esta línea:
my $CFG_LIBEXECDIR = 'modules'; # substituted via APACI install
Si ve esta línea, cámbiela por esto:
my $CFG_LIBEXECDIR = '/usr/lib/apache'; # substituted via APACI install
Por último, si usted re-configura/re-instala Apache,
agregue un make clean al proceso
después de ./configure y antes de
make.
14.
Durante make, recibo errores sobre microtime,
y muchos sobre RUSAGE_.
Durante la porción make de la
instalación, si encuentra problemas similares a esto:
microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1
Su sistema está dañado. Necesita arreglar sus
archivos /usr/include instalando un paquete
glibc-devel que coincida con su glibc. Esto no tiene nada que
ver con PHP. Para probar este punto, realice la siguiente
prueba:
Si eso produce errores, sabrá que sus archivos de
inclusión están en mal estado.
15.
Cuando compilo PHP con MySQL, configure corre bien, pero durante
make recibo un error similar al siguiente:
ext/mysql/libmysql/my_tempnam.o(.text+0x46): In
function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103:
the use of tempnam' is dangerous, better use
mkstemp', ¿qué está fallando?
Primero, es importante entender que esta es una
Advertencia y no un error fatal. Dado que
ésta es con frecuencia la última salida observada
durante make, puede parecer como un error
fatal, pero no lo es. Por supuesto, si ha configurado su
compilador para que se detenga en las Advertencias, lo
hará. También tenga en cuenta que el soporte MySQL
está habilitado por defecto.
Nota:
A partir de PHP 4.3.2, también verá el siguiente
texto después de que la compilación (make) se
complete:
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
16.
Quiero actualizar mi instalación de
PHP. ¿Dónde puedo encontrar la línea
./configure que fue usada para compilar mi
instalación actual de PHP?
Bien puede mirar su archivo config.nice, en el árbol
actual de su instalación PHP actual o, si no está
disponible, simplemente ejecute un script como el siguiente
<?php phpinfo(); ?>
Al comienzo de la salida, la línea
./configure usada para compilar la
instalación PHP actual es desplegada.
17.
Cuando se compila PHP con la biblioteca GD se producen errores
extraños de compilación o produce un fallo de
segmentos (segfault) en la ejecución.
Asegúrese de que su biblioteca GD y PHP están
enlazados contra las mismas bibliotecas de dependencia
(p.ej. libpng).
18.
Cuando se compila PHP parece que recibo errores aleatorios, como
si se colgara. Estoy usando Solaris si eso tiene importancia.
Usar utilidades no-GNU durante la compilación de PHP
puede causar problemas. Asegúrese de usar herramientas
GNU para tener la certeza de que la compilación de PHP
funcione. Por ejemplo, en Solaris, usar las versiones de SunOS
compatibles-con-BSD o de Solaris de sed no
funcionará, pero usar las versiones GNU o Sun POSIX
(xpg4) de sed lo hará. Enlaces: GNU sed, GNU
flex, y GNU bison.
Atencin tcnica y comercial: (54)-11-5031-1111 las 24 hs. los 365 días del ao. ToWebs, (c) 2008
Virtucom Networks S.A Av. Belgrano 1586, piso 10 (C1093AAQ) Cap. Fed. Bs. As, Argentina.