Instalar Apache desde código fuente en GNU/Linux

Hace ya 10 años publiqué un post en mi antiguo blog llamado igual:

Instalar Apache desde código fuente en GNU/Linux

En el cuál explicaba como instalar Apache en distribuciones GNU/Linux y Unix, hoy sólo actualizaré y lo sintetizaré ya que actualmente hay que compilar previamente el Apache Portable Runtime (APR) para que podamos instalar Apache.

Descargamos los siguientes paquetes:

apr-1.6.3.tar.bz2

apr-util-1.6.1.tar.bz2

apr-iconv-1.2.2.tar.bz2

httpd-2.4.29.tar.bz2

Para comenzar nos convertiremos en usuario root.

javoaxian@vboxlinuxmintjx $ sudo su -

En mi caso los descargué en mi directorio de Descargas, nos situamos en el directorio donde descargamos los paquetes y los colocamos en /usr/local/src para después instalarlos.

root@vaiolinuxmintjx $ cd /ruta/donde/descargamos
root@vboxlinuxmintjx $ cp apr-* /usr/local/src/
root@vboxlinuxmintjx $ cp httpd-2.4.29.tar.bz2 /usr/local/src/
root@vboxlinuxmintjx $ cd /usr/local/src/

Comenzaremos instalando apr.

root@vboxlinuxmintjx $ tar -jxvf apr-1.6.3.tar.bz2
root@vboxlinuxmintjx $ cd apr-1.6.3/
root@vboxlinuxmintjx $ ./configure --prefix=/usr/local/apr

Es posible que en esta parte, mande algunos errores de dependencia, como por ejemplo que no tienen instalado gcc, o los fuentes de GCC como es el paquete libc6-dev.

Para instalarlos en sistemas basados en Debian, como Ubuntu, simplemente ejecuten el comando apt-get install con los paquetes que vayan necesitando, por ejemplo:

root@vboxlinuxmintjx $ apt-get install gcc libc6-dev

Ahora seguimos con la instalación.

root@vboxlinuxmintjx $ make
root@vboxlinuxmintjx $ make install

Ahora instalamos apr-utils.

root@vboxlinuxmintjx $ cd /usr/local/src/
root@vboxlinuxmintjx $ tar -jxvf apr-util-1.6.1.tar.bz2
root@vboxlinuxmintjx $ cd apr-util-1.6.1/
root@vboxlinuxmintjx $ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

Si obtenemos el siguiente error:

xml/apr_xml.c:35:19: fatal error: expat.h: No existe el archivo o el directorio
compilation terminated.
/usr/local/src/apr-util-1.6.1/build/rules.mk:206: fallo en las instrucciones para el objetivo 'xml/apr_xml.lo'
make[1]: *** [xml/apr_xml.lo] Error 1
make[1]: se sale del directorio '/usr/local/src/apr-util-1.6.1'
/usr/local/src/apr-util-1.6.1/build/rules.mk:118: fallo en las instrucciones para el objetivo 'all-recursive'
make: *** [all-recursive] Error 1

Instalaremos el siguiente paquete:

root@vboxlinuxmintjx $ apt-get install libexpat1-dev

Continuamos la instalación:

root@vboxlinuxmintjx $ make
root@vboxlinuxmintjx $ make install

Ahora instalamos apr-iconv.

root@vboxlinuxmintjx $ cd /usr/local/src/
root@vboxlinuxmintjx $ tar -jxvf apr-iconv-1.2.2.tar.bz2
root@vboxlinuxmintjx $ cd apr-iconv-1.2.2/
root@vboxlinuxmintjx $ ./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
root@vboxlinuxmintjx $ make
root@vboxlinuxmintjx $ make install

Ahora procederemos a instalar apache.

root@vboxlinuxmintjx $ cd /usr/local/src/
root@vboxlinuxmintjx $ tar -jxvf httpd-2.4.29.tar.bz2
root@vboxlinuxmintjx $ cd httpd-2.4.29/
root@vboxlinuxmintjx $ ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so

Si nos aparece el siguiente error:

checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

Instalamos el siguiente paquete:

root@vboxlinuxmintjx $ apt-get install libpcre3-dev

Continuamos con la instalación:

root@vboxlinuxmintjx $ make
root@vboxlinuxmintjx $ make install

Con esto ya queda instalado apache, para arrancar el servidor bastará ejecutar lo siguiente:

root@vboxlinuxmintjx $ /usr/local/apache/bin/apachectl start

Y para detenerlo:

root@vboxlinuxmintjx $ /usr/local/apache/bin/apachectl stop

En mi caso me gusta agregar la ruta de las herramientas en el PATH de todos los usuarios, para ello hay que editar el archivo como usuario root:

/etc/profile

y agregamos las siguientes líneas:

export APACHE=/usr/local/apache
export PATH=$PATH:$APACHE/bin

Si se desea más información, como configurar un script de arranque y otras cosas, visita mi viejo post.

Desactivar mensajes Deprecated en dotProject

Decidí instalar la aplicación dotProject para administrar proyectos, la instalación no tuvo problemas pero una vez instalado traté de ingresar y de entrada me mando algunos mensajes de Deprecated dado que en el PHP en el que lo estoy ejecutando se han depreciado algunas cosas.

Deprecated: Assigning the return value of new by reference is deprecated in /home/javoaxia/jx/dotproject/htdocs/lib/adodb/adodb.inc.php on line 885

Deprecated: Assigning the return value of new by reference is deprecated in /home/javoaxia/jx/dotproject/htdocs/lib/adodb/adodb.inc.php on line 1910

Deprecated: Assigning the return value of new by reference is deprecated in /home/javoaxia/jx/dotproject/htdocs/classes/ui.class.php on line 670

Deprecated: Assigning the return value of new by reference is deprecated in /home/javoaxia/jx/dotproject/htdocs/classes/ui.class.php on line 852

Una solución es cambiar el error_reporting del archivo de configuración php.ini, pero si por alguna razón no cuentan con el acceso a este archivo lo que pueden realizar es lo siguiente:

Busquen el archivo base.php de la instalación de dotProject.

Una vez que lo encontraron, descarguenlo si es necesario, edítenlo y modifiquen la línea:

error_reporting(E_ALL & ~E_NOTICE);

dejándola de la siguiente manera:

error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);

Guarden los cambios del archivo, transfiéranlo en dado caso que sea necesario y listo, dotProject aparecerá sin los mensajes de Deprecated.