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/