Instalación de PHP desde Código Fuente e Integración con Apache HTTP Server

Este artículo detalla el procedimiento para compilar e instalar PHP desde el código fuente y su posterior configuración para funcionar con Apache HTTP Server en un entorno Linux. Se cubren los pasos desde la preparación del sistema hasta la verificación final de la instalación.

1. Preparcaión del Entorno del Sistema

Antes de compilar PHP, es fundamental asegurarse de que todas las dependencias necesarias estén instaladas. Esto incluye varias bibliotecas de desarrollo que PHP utiliza para funcionalidades como procesamiento de imágenes, compresión, XML, SSL, entre otras.

Inicialmente, instale las bibliotecas de desarrollo a través del gestor de paquetes:

sudo yum install -y \
  zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel \
  gd-devel curl-devel openssl-devel libxslt-devel

Algunas bibliotecas, como libiconv, pueden requerir instalación desde el código fuente para asegurar compatibilidad o versiones específicas. A continuación, se muestra cómo compilar e instalar libiconv:

wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar -xzvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
sudo make install
cd ..

2. Compilación e Instalación de PHP

Una vez preparadas las dependencias, proceda con la compilación de PHP. El comando ./configure es crucial para definir las características y extensiones que PHP incluirá. Asegúrese de especificar la ruta de Apache apxs y MySQL si planea usar esas integraciones.

# Suponiendo que el código fuente de PHP 5.3.27 se encuentra en el directorio actual
./configure \
  --prefix=/application/php-5.3.27 \
  --with-apxs2=/application/apache/bin/apxs \
  --with-mysql=/application/mysql \
  --with-libxml-dir \
  --with-zlib \
  --with-gd \
  --with-jpeg-dir=/usr \
  --with-png-dir=/usr \
  --with-freetype-dir=/usr \
  --with-iconv=/usr/local/libiconv \
  --with-curl \
  --with-openssl \
  --with-xsl \
  --enable-mbstring \
  --enable-soap \
  --enable-sockets \
  --enable-ftp \
  --enable-gd-native-ttf \
  --enable-xmlrpc \
  --enable-short-tags \
  --enable-zend-multibyte

Después de configurar, compile e instale PHP:

make
sudo make install

Copie el archivo de configuración de PHP (php.ini) a su ubicación final. Es recomendable usar la versión de "producción" para entornos de servidores reales:

sudo cp php-5.3.27/php.ini-production /application/php-5.3.27/lib/php.ini

3. Configuración de Apache para Soporte de PHP

Para que Apache HTTP Server pueda procesar archivos PHP, necesita ser configurado para reconocer el módulo PHP y manejar los tipos de archivo correspondientes.

Edite el archivo de configuración principal de Apache (normalmente httpd.conf, ubicado en /application/apache/conf/httpd.conf o similar):

# Agregue estas líneas para que Apache procese archivos PHP
# La línea LoadModule debería ser añadida automáticamente por apxs,
# pero verifique su existencia.
# LoadModule php5_module modules/libphp5.so

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

Para mejorar la seguridad y evitar que Apache se ejecute como el usuario root, se recomienda crear un usuario y grupo específicos para el servidor web:

sudo useradd -r -s /sbin/nologin apacheuser
sudo groupadd apachegroup # Puede usar el mismo nombre de usuario o un grupo diferente

Luego, modifique httpd.conf para usar este nuevo usuario y grupo:

# Cambie los valores predeterminados (User daemon, Group daemon)
User apacheuser
Group apachegroup

Finalmente, asegúrese de que Apache sirva los archivos index.php como página predteerminada. Edite la sección <IfModule dir_module>:

# Modifique el orden de los archivos de índice predeterminados
<IfModule dir_module>
    DirectoryIndex index.php index.html index.htm
</IfModule>

Reinicie Apache para aplicar los cambios:

sudo /application/apache/bin/apachectl restart

4. Verificación de la Instalación

Para confirmar que PHP y Apache funcionan correctamente, cree un archivo de prueba en el directorio raíz de documentos de Apache (por ejemplo, /application/apache/htdocs/).

Verificación de PHP con Apache:

Cree un archivo llamado info.php:

<?php
    // Archivo: /application/apache/htdocs/info.php
    phpinfo();
?>

Acceda a http://su_servidor/info.php desde su navegador. Debería ver la página de información detallada de PHP.

Verificación de Conexión PHP con MySQL:

Cree un archivo llamado db_test.php para probar la conexión con la base de datos MySQL:

<?php
    // Archivo: /application/apache/htdocs/db_test.php

    $host_db = 'localhost';
    $usuario_db = 'root';
    $contrasena_db = 'oldboy123'; // ¡Importante: Use una contraseña segura en entornos de producción!

    $enlace_db = mysql_connect($host_db, $usuario_db, $contrasena_db);

    if ($enlace_db) {
        echo "Conexión a MySQL establecida con éxito!";
        mysql_close($enlace_db);
    } else {
        echo "Error al conectar a MySQL: " . mysql_error();
    }
?>

Acceda a http://su_servidor/db_test.php. Si la configuración de MySQL es correcta, debería ver el mensaje de conexión exitosa.

Etiquetas: PHP Apache HTTP Server Instalación de Código Fuente LAMP Stack Configuración de Servidor Web

Publicado el 6-28 01:27