Compilación

Compilación PHP

# wget … 
# tar -zxvf php… 
# cd php … 
# ./configure --with-apxs2=/www/bin/apxs --with-mysql --with-pdo-mysql –with-mysqli --prefix=/www/php --with-libdir=lib64 --with-gd --with-jpeg-dir=/usr/lib64 --with-png-dir=/usr/lib64 --with-zlib-dir=/usr/lib64 –with-xpm-dir=/usr/lib64 --with-freetype-dir=/usr/lib64 --with-tiff-dir=/usr/lib64 --enable-exif --with-mcrypt --enable-mbstring --with-curl --with-openssl --with-config-file-path=/usr/local/lib/php.ini --enable-soap --enable-zip –with-pgsql  --enable-bcmath --enable-ftp --enable-intl

Instalación de extensiones, ejemplos:

   #cd /www/php/bin 
   # ./pecl install APCu
   # ./pecl install mongodb 
   # ./pecl install opcache

Compilación Apache2

Actualmente la versión de apache instalada en el servidor es 2.4.23, esta se puede encontrar en:

https://archive.apache.org/dist/httpd/httpd-2.4.23.tar.bz2
cd /usr/local/src 
wget https://archive.apache.org/dist/httpd/httpd-2.4.23.tar.bz2
tar -jxvf httpd-2.4.23.tar.bz2
cd httpd-2.4.23

Para compilar el apache con el APR bajar el código del apr y el apr-util (los dos se pueden entocontar en:

https://apr.apache.org/download.cgi) . Bajar por ejemplo los paquetes  
http://apache.rediris.es//apr/apr-1.6.5.tar.gz y http://apache.rediris.es//apr/apr-util-1.6.1.tar.gz. 

Descomprimirlos en srclib con el nombre de apr y apt-util respectivamente.

cd srclib
wget  http://apache.rediris.es//apr/apr-1.6.5.tar.gz
wget http://apache.rediris.es//apr/apr-util-1.6.1.tar.gz
tar -zxvf apr-1.6.5.tar.gz
tar -zxvf apr-util-1.6.1.tar.gz
mv apr-1.6.5. apr 
mv apr-util-1.6.1 apr-util

Una vez hecho esto lanzar el configure, make y make install

# ./configure --prefix=/www --enable-so --enable-cgi --enable-info --enable-rewrite --enable-speling --enable-usertrack --enable-mime-magic --enable-mpms-shared=all --enable-dav --enable-dav-fs --enable-ssl –with-included-apr
# make 
# make install 

Instalar el GeoIP, primero des librerías de desarrollo y luego el módulo (lo podemos encontrar en https://github.com/maxmind/geoip-api-mod_geoip2)

yum install GeoIP-devel 
cd /usr/local/src 
curl https://codeload.github.com/maxmind/geoip-api-mod_geoip2/zip/1.2.10 -o mod_geoip2.zip
unzip mod_geoip2.zip 
cd geoip-api-mod_geoip2-1.2.10 
/www/bin/apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c

Compilación de nginx

Para la instalación de nginx nos deberemos bajar la última versión y guardarla en la carpeta /install del servidor

wget https://nginx.org/download/nginx-1.14.0.zip

Una vez descargada descomprimimos el fichero en /usr/local/src/.

Ahora llega una parte importante, y es que como debemos compilar este servicio tendremos que obtener las opciones previas para la configuración de la compilación, por suerte tenemos varias servicios web instalados en diferentes máquinas para poder obtener estas opciones de manera rápida: Nos vamos un equipo que ya contenga el servicio instalado y lanzamos el siguiente comando:

/usr/local/nginx/sbin/nginx -V

De la salida de este comando podemos sacar la opciones de configure.

Nos colocamos en /usr/local/src/nginx y lanzamos el configure:

./configure –prefix=/usr/local/nginx/....
make
make install

Para compilar PHP debemos realizar las mismas operaciones que con Nginx, solo que para obtener las opciones de configuración:

/usr/local/src/PHP....../config.log

Ojo!!, la compilación de PHP puede tardar bastante, lanzar el ./configure... con un Screen. Del servidor que hemos obtenido las opciones de compilación vamos a obtener también las configuraciones:

/usr/local/nginx/conf en la misma carpeta de destino
/etc/php7 en la misma carpeta de destino

Después de hacer las copias de configuraciones deberemos aplicar los cambios oportunos, nuevos virtual-host, versiones de PHP, etc. Creamos enlaces simbólicos para nginx y php:

/etc
lrwxrwxrwx 1 root root 12 May 8 17:51 nginx ->nginx-1.14.0
lrwxrwxrwx 1 root root 4 May 9 10:57 php ->php7

También debemos copiar los script de inicio de servicios, corrigiendo lo que fuese necesario:

/etc/init.d/nginx o httpd o apache2
/etc/init.d/php-fpm

OJO! Con la configuración del puerto de escucha de php. Esto también estará especificado en el VirtualHost de Ningx y hay dos opciones posibles, que deben cuadrar tanto en el virtualhost como en la configuración de PHP.

/etc/php/fpm/pool.d/www.conf

Dejamos los servicios listos por si hubiese un reinicio:

chkconfig –list | more
chkconfig –add nginx
chkconfig –add php-fpm
chkconfig –level 35 php-fpm on
chkconfig –level 35 nginx on

Arrancamos los servicios desde /etc/init.d/