COMPILAR APACHE CON PHP EN UBUNTU

Cómo compilar servidor web Apache con PHP en Ubuntu desde 0

Creamos una carpeta dentro de Documents que se llama apache-php que es donde vamos a realizar la instalación.

Descargamos ultima versión de apache, de php, de apr y apr-utils y las extraemos en la propia carpeta Downloads

wget https://dlcdn.apache.org/httpd/httpd-2.4.58.tar.gz
wget https://dlcdn.apache.org//apr/apr-1.7.4.tar.gz
wget https://dlcdn.apache.org//apr/apr-util-1.6.3.tar.gz
wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.tar.gz
wget https://www.php.net/distributions/php-8.2.11.tar.gz

tar -xzvf apr-1.7.4.tar.gz -C /home/iot/Downloads/
tar -xzvf apr-util-1.6.3.tar.gz -C /home/iot/Downloads/
tar -xzvf pcre2-10.42.tar.gz -C /home/iot/Downloads/
tar -xzvf httpd-2.4.58.tar.gz -C /home/iot/Downloads/
tar -xzvf php-8.2.11.tar.gz -C /home/iot/Downloads/

Ahora instalamos las dependencias necesarias para la compilación y instalación de nuestro servidor web apache con php

sudo apt install build-essential libpcre3-dev libssl-dev libxml2-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libfreetype6-dev libonig-dev pkg-config sqlite3 libsqlite3-dev

ahora en el directorio /home/iot/Downloads vamos a realizar los siguientes pasos para compilar cada uno de los paquetes descargados

cd apr-1.7.4
./configure –prefix=/home/iot/Documents/apache-php/apr
make
make install

cd ..
cd apr-util-1.6.3
./configure –prefix=/home/iot/Documents/apache-php/apr-util –with-apr=/home/iot/Documents/apache-php/apr
make
make install

cd ..
cd httpd-2.4.58
./configure –prefix=/home/iot/Documents/apache-php/apache –with-apr=/home/iot/Documents/apache-php/apr –with-apr-util=/home/iot/Documents/apache-php/apr-util
make
make install

cd ..
cd php-8.2.11
./configure –prefix=/home/iot/Documents/apache-php/php –with-apxs2=/home/iot/Documents/apache-php/apache/bin/apxs –with-mysqli –with-pdo-mysql –enable-fpm
make
make install

Ahora tenemos que editar el archivo de configuración de apache para que permita mostrar paginas en php y sepa interpretarlas

Abrimos vsc y elegimos la carpeta donde tenemos la instalación y buscamos este archivo

/home/iot/Documents/apache-php/apache/conf/httpd.conf

Añadimos estas lineas debajo del ultimo LoadModule
LoadModule php_module /home/iot/Documents/apache-php/apache/modules/libphp.so
SetHandler application/x-httpd-php

y ponemos el puerto 8080

ahora nos vamos al directorio /home/iot/Documents/apache-php/apache/htdocs desde el terminal y creamos una pagina en php

sudo nano info.php

guardamos y salimos

Cambiamos los permisos de la pagina para que se pueda mostrar.

sudo chown iot:iot /home/iot/Documents/apache-php/apache/htdocs/index.php
sudo chmod 644 /home/iot/Documents/apache-php/apache/htdocs/index.php

Ahora vamos al directorio /home/iot/apache-php/php/etc y creamos el archivo php-fpm.conf

[my_pool]
user = iot
group = iot
listen = 127.0.0.1:9000
listen.owner = iot
listen.group = iot
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

en un nuevo terminal vamos a iniciar nuestro apache y nuestro php

/home/iot/Documents/apache-php/apache/bin/apachectl start
/home/iot/Documents/apache-php/php/sbin/php-fpm -c /home/iot/Documents/apache-php/php/etc/php-fpm.conf

ahora si abrimos un navegador con http://localhost:8080 vemos la pagina en html por defecto de apache

si abrimos http://localhost:8080/info.php vemos la info de nuestro php que es la pagina que habíamos cargado previamente