Browse Tag: apache

Configuración de VirtualHost en Linux Debian con Apache2

Tras la actualización del último post “Instalación de Apache2 con PHP5 y MySQL en Debian Squeeze” traigo el tema de cómo configurar sitios web o servidores dinámicos con estas tecnologías.

El término VirtualHost (Hosting Virtual) se refiere a hacer funcionar más de un sitio web en una sola máquina. Los sitios web virtuales pueden estar “basados en direcciones IP“, lo que significa que cada sitio web tiene una dirección IP diferente, o “basados en nombres diferentes“, lo que significa que con una sola dirección IP están funcionando sitios web con diferentes nombres de dominios. El hecho de que estén funcionando en la misma máquina física pasa completamente desapercibido para el usuario que el sitio que visita esté conviviendo con otros.

Nota preliminar

En guía se utiliza la dirección IP 192.168.1.5. Estos ajustes podrían ser diferentes para usted, así que debes sustituirlos en caso necesario.

Por defecto el directorio raíz del Apache2 en Linux Debian es /var/www y tras la instalación se crea también un fichero index.html. Este directorio es accesible desde la dirección IP con la que está configurada la maquina o servidor a través de la configuración creada en el virtualhost por defecto (default) que se encuentra en /etc/apache2/sites-available.

Modificaremos esta configuración creada por defecto tras la instalación de Apache2 para evitar que puedan ser accesibles otros directorios creados en /var/www que utilizaremos para hospedar los sitios web.

Modificar el directorio raíz por defecto del virtualhost default

Creamos el directorio default

mkdir /var/www/default

Movemos el fichero index.html para nuevo directorio creado

mv /var/www/index.html /var/www/default/

Nota: El fichero index.html puede ser modificado también para mostrar un mensaje personalizado cuando se acceda directamente al servidor a través de la IP, para ello necesitaremos editar el HTML.

nano /var/www/default/index.html
<h1>¡Este es el servidor virtual de REGOREMOR!</h1>
 
Esta es la página web predeterminada para este servidor.
 
El software del servidor Web se está ejecutando.

Ahora modificamos la configuración del virtualhost default

nano /etc/apache2/sites-available/default

Solo modificamos las las rutas al directorio raíz

DocumentRoot /var/www/default
...

Debemos reiniciar Apache después:

invoke-rc.d apache2 restart

Ahora dirige tu navegador a http://192.168.1.5 y usted debería ver una página con el texto modificado del fichero index.html

it-works-personalizado

Configuración básica del VirtualHost

Primero que todo en los DNS públicos o privados deben estar registrados los dominios y/o alias que apuntarán a la IP del servidor en este caso (192.168.1.5).

dominio.com     A     192.168.1.5
www.dominio.com    A     192.168.1.5

Crearemos el directorio donde hospedaremos el sitio web que posteriormente configuraremos el DocumentRoot & Directory en el VirtualHost.

Podemos darle como nombre del directorio el nombre del dominio que apunta a este sitio (dominio.com).

mkdir /var/www/dominio.com

Creamos un fichero de prueba

nano /var/www/dominio.com/index.php
<h1>Hola Mundo desde mi dominio.com</h1>
Esto es una página de prueba

Creamos y configuramos el VirtualHost

nano /etc/apache2/sites-available/dominio.com
<VirtualHost *:80>
    ServerName dominio.com
    ServerAlias www.dominio.com
 
    DocumentRoot /var/www/dominio.com/
 
    ServerSignature On
 
    ErrorLog /var/log/apache2/dominio.com-error.log
 
    LogLevel warn
 
    CustomLog /var/log/apache2/dominio.com-access.log combined
 
    <Directory "/var/www/dominio.com/">
    Options Indexes FollowSymLinks MultiViews ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Habilitamos el VirtualHost en el Apache

cd /etc/apache2/sites-available/
a2ensite dominio.com

Debemos reiniciar Apache después

invoke-rc.d apache2 restart

Dirija su navegador a http://dominio.com o http://www.dominio.com y usted debería ver una página con el texto del fichero de prueba.

hola-mundo-test

Post relacionado

Configuración del módulo ProxyPass de Apache

Enlaces

Apache: http://httpd.apache.org/docs/2.0/vhosts/

Instalación de Apache2 con PHP5 y MySQL en Debian Squeeze

En esta guía mostraremos como instalar un servidor LAMP acrónimo de la unión de las  tecnologías Linux, Apache, MySQL y Perl, PHP o Python. La combinación de estas tecnologías proporciona un conjunto de subsistemas de software necesarios para alcanzar una solución global, en este caso configurar sitios web o servidores dinámicos con un esfuerzo reducido, utilizando un paradigma de programación para el desarrollo.

GNU/Linux

Linux es un núcleo de sistema operativo libre tipo Unix.

Apache HTTP Server

El servidor HTTP Apache es un servidor web libre y de código abierto, el más popular en cuanto a uso, sirviendo de facto como plataforma de referencia para el diseño y evaluación de otros servidores web.

MySQL

MySQL es un Sistema de Gestión de Bases de Datos relacional, que por lo tanto utiliza SQL, multihilo y multiusuario del que se estiman más de un millón de instalaciones.

PHP

PHP (acrónimo recursivo de “PHP: Hypertext Preprocessor”) es un lenguaje de programación diseñado para producir sitios web dinámicos. PHP es utilizado en aplicaciones del lado del servidor, aunque puede ser usado también desde una interfaz de línea de comandos o como aplicación de escritorio.

Debian

Debian GNU/Linux ofrece más que un S.O. puro; viene con 29000 paquetes, programas precompilados distribuidos en un formato que hace más fácil la instalación

Liberada la versión 6.0 de Linux Debian Squeeze hicimos una revisión y actualización del de la guía anterior basada en Debian Lenny

Nota preliminar

En guía se utiliza la dirección IP 192.168.100.25. Estos ajustes podrían ser diferentes para usted, así que debes sustituirlos en caso necesario.

Configurar los repositorios de Debian Squeeze

Primero asegúrese de que el archivo /etc/apt/sources.list contiene squeeze-updates como repositorios de actualizaciones.

nano /etc/apt/sources.list

Agregar al fichero /etc/apt/sources.list

deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

Ejecutar update para actualizar la base de datos de paquetes

aptitude update

Ejecutar upgrade para instalar las actualizaciones más recientes (si los hay).

aptitude upgrade

Instalación de Apache2

Apache2 está disponible como un paquete de Debian, por lo que se puede instalar directamente desde cualquier repositorio oficial o DVD de Debian Squeeze de la siguiente manera:

aptitude install apache2

Ahora dirige tu navegador a http://192.168.100.25 y usted debería ver una página en blanco con el texto It works!.

It Works

Por defecto el directorio raíz del Apache en Debian es /var/www y el archivo de configuración /etc/apache2/apache2.conf. Configuraciones adicionales se almacenan en los subdirectorios de /etc/apache2 como /etc/apache2/mods-available (para los módulos) y /etc/apache2/sites-available (para los hosts virtuales).

Instalación de PHP5

Podemos instalar PHP5 y el módulo de Apache PHP5 como sigue:

aptitude install php5 libapache2-mod-php5

Debemos reiniciar Apache después:

invoke-rc.d apache2 restart

Obtener información sobre la instalación de PHP5

En el directorio raíz del Apache /var/www creamos un archivo info.php

nano /var/www/info.php

Insertamos la siguiente función nativa de PHP phpinfo().

<?php phpinfo(); ?>

Llamamos este archivo a través de un navegador http://192.168.100.25/info.php y mostrará un montón de detalles útiles sobre nuestra instalación de PHP incluida la versión instalada.

phpinfo

Instalación de MySQL 5

Instalamos MySQL 5 de la siguiente manera:

aptitude install mysql-server mysql-client

Se le pedirá que proporcione una contraseña para el usuario root de MySQL – Esta contraseña es válida para el usuario root@localhost, así como root@server.dominio.com:

New password for the MySQL "root" user: -- contraseñaparausuarioroot
Repeat password for the MySQL "root" user: -- contraseñaparausuarioroot

Soporte MySQL en PHP5

Para obtener soporte MySQL en PHP5, debemos instalar el paquete php5-mysql. Será necesario instalar otros módulos de PHP5 para un correcto funcionamiento de sus aplicaciones. Puede buscar módulos de PHP5 que estén disponibles el repositorio o DVD de Debian de esta manera:

aptitude search php5

Escoja los que necesite y los instala de la siguiente manera:

aptitude install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json

Debemos reiniciar Apache después:

invoke-rc.d apache2 restart

Recargue su navegado en la página http://192.168.100.25/info.php ahora debe encontrar gran cantidad de módulos nuevos, incluido el módulo de MySQL:

mysqlinfo

phpMyAdmin

phpMyAdmin es una interfaz web a través de la cual puede administrar sus bases de datos MySQL. Puede instalar esta aplicación de la siguiente manera:

aptitude install phpmyadmin

Verá la siguiente pregunta:

pmaconfig-1

pmaconfig-2

Posteriormente, puede acceder a phpMyAdmin en http://192.168.100.25/phpmyadmin/:

pmafront

Resumen

aptitude install apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json phpmyadmin

Responder a las preguntas necesarias y listo.

Enlaces

Apache: http://httpd.apache.org/
PHP: http://www.php.net/
MySQL: http://www.mysql.com/
Debian: http://www.debian.org/
phpMyAdmin: http://www.phpmyadmin.net/

Configuración del módulo ProxyPass de Apache

En éste artículo mostraré cómo hacer que varios servidores web interno pueda ser accedido desde Internet, sin cambiar ninguna de las reglas del firewall ni comprometiendo la seguridad de su red. Veremos como usar el módulo ProxyPass de Apache para lograr esto.

Escenario

Tenemos un servidor instalado con Linux Debian, el cual tiene configurado dos interfaces de redes, una con IP Publica Internacional (200.xx.xxx.46) y la otra con IP Privada Local (192.168.100.1) conectada a la red LAN donde se encuentran otros dos servidores con prestación de servicios web. En uno tenemos el Servidor de Correo con posibilidad de Webmail (192.168.100.2) y en el otro tenemos la Intranet (192.168.100.3)

mainserver = 200.xx.xxx.46 – 192.168.100.1
webmail = 192.168.100.2
intranet = 192.168.100.3

En los DNS públicos están registrado los dominios con la misma IP de mainserver.

webmail.dominio.com     A     200.xx.xxx.46
intranet.dominio.com    A     200.xx.xxx.46

Las peticiones llegarán primero al servidor publico y luego este se encargará mediante el ProxyPass de Apache redireccionar a los servidores locales.

Solución

Activando los módulos proxy proxy_http proxy_connect en el Apache de mainserver, creando un par de registros A en el servidor DNS local o en el propio hosts del servidor y creando los VirtualHost con sus respectivas configuraciones, damos solución al escenario planteado.

Activando los módulos proxy proxy_http proxy_connect

a2enmod proxy proxy_http proxy_connect

Creando y configurando el VirtualHost para webmail en el Apache

nano /etc/apache2/sites-available/webmail.dominio.com

webmail.dominio.com

<VirtualHost *:80>
        ServerName webmail.dominio.com
 
        ServerSignature On
 
        ErrorLog /var/log/apache2/webmail.dominio.com-error.log
 
        LogLevel warn
 
        CustomLog /var/log/apache2/webmail.dominio.com-access.log combined
 
        <location />
            Allow from All
        </location>
 
        ProxyPass / http://webmail.dominio.com/
        ProxyPassReverse / http://webmail.dominio.com/
</VirtualHost>

Creando y configurando el VirtualHost para intranet en el Apache

nano /etc/apache2/sites-available/intranet.dominio.com

intranet.dominio.com

<VirtualHost *:80>
        ServerName intranet.dominio.com
 
        ServerSignature On
 
        ErrorLog /var/log/apache2/intranet.dominio.com-error.log
 
        LogLevel warn
 
        CustomLog /var/log/apache2/intranet.dominio.com-access.log combined
 
        <location />
            Allow from All
        </location>
 
        ProxyPass / http://intranet.dominio.com/
        ProxyPassReverse / http://intranet.dominio.com/
</VirtualHost>

Habilitamos los dos VirtualHost que acabamos de crear

a2ensite webmail.dominio.com
a2ensite intranet.dominio.com

Debemos reiniciar Apache después:

invoke-rc.d apache2 restart

Configurando DNS local ó Hosts de Linux

Evidentemente si en la zona dominio.com del DNS local ó en el Hosts de Linux no tenemos las entradas A de webmail e intranet donde apunten a sus respectivas IP Privada de la red local, de poco servirán los cambios realizados en el Apache.

nano /etc/hosts

Podemos agregar con mucho cuidado.

192.168.100.2     webmail.dominio.com
192.168.100.3     intranet.dominio.com

Post relacionado

Configuración de VirtualHost en Linux Debian con Apache2

Enlaces

Apache: http://httpd.apache.org/

Instalación de Apache2 con PHP5 y MySQL en Debian Lenny

LAMP es una abreviatura de Linux, Apache, MySQL y PHP. Este tutorial muestra cómo instalar un servidor web con Apache2 en un servidor Linux con Debian Lenny, con soporte para  PHP5 (mod_php) y MySQL.

Nota preliminar

En este tutorial se utiliza http://server.dominio.com cómo nombre del host con la dirección IP 192.168.100.1. Estos ajustes podrían ser diferentes para usted, así que debes sustituirlos en caso necesario.

Instalación de Apache2

Apache2 está disponible como un paquete de Debian, por lo que se puede instalar directamente desde cualquier repositorio oficial o DVD de Debian Lenny de la siguiente manera:

aptitude install apache2

Ahora dirige tu navegador a http://server.dominio.com y usted debería ver una página en blanco con el texto It works!.

it works

Por defecto el directorio raíz del Apache en Debian Lenny es /var/www y el archivo de configuración /etc/apache2/apache2.conf. Configuraciones adicionales se almacenan en los subdirectorios de /etc/apache2 como /etc/apache2/mods-enabled (para los módulos) y /etc/apache2/sites-enabled (para los hosts virtuales).

Instalación de PHP5

Podemos instalar PHP5 y el módulo de Apache PHP5 como sigue:

aptitude install php5 libapache2-mod-php5

Debemos reiniciar Apache después:

invoke-rc.d apache2 restart

Obtener información sobre la instalación de PHP5

En el directorio raíz del Apache /var/www creamos un archivo .php (info.php).

nano /var/www/info.php

Insertamos la siguiente función nativa de PHP phpinfo().

<?php phpinfo(); ?>

Llamamos este archivo a través de un navegador http://server.dominio.com/info.php y mostrará un montón de detalles útiles sobre nuestra instalación de PHP incluida la versión instalada.

info.php

Instalación de MySQL 5 Instalamos MySQL 5 de la siguiente manera:

aptitude install mysql-server mysql-client

Se le pedirá que proporcione una contraseña para el usuario root de MySQL – Esta contraseña es válida para el usuario root@localhost, así como root@server.dominio.com:

New password for the MySQL "root" user: -- contraseñaparausuarioroot
Repeat password for the MySQL "root" user: -- contraseñaparausuarioroot

Soporte MySQL en PHP5

Para obtener soporte MySQL en PHP5, debemos instalar el paquete php5-mysql. Será necesario instalar otros módulos de PHP5 para un correcto funcionamiento de sus aplicaciones. Puede buscar módulos de PHP5 que estén disponibles el repositorio o DVD de Debian Lenny de esta manera:

aptitude search php5

Escoja los que necesite y los instala de la siguiente manera:

aptitude install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json

Debemos reiniciar Apache después:

invoke-rc.d apache2 restart

Recargue su navegado en la página http://server.dominio.com/info.php ahora debe encontrar gran cantidad de módulos nuevos, incluido el módulo de MySQL:

info.mysql

phpMyAdmin

phpMyAdmin es una interfaz web a través de la cual puede administrar sus bases de datos MySQL. Puede instalar esta aplicación de la siguiente manera:

aptitude install phpmyadmin

Verá la siguiente pregunta:

Web server to reconfigure automatically: -- apache2

Posteriormente, puede acceder a phpMyAdmin en http://server.dominio.com/phpmyadmin/:

phpmyadmin

Enlaces

Apache: http://httpd.apache.org/
PHP: http://www.php.net/
MySQL: http://www.mysql.com/
Debian: http://www.debian.org/
phpMyAdmin: http://www.phpmyadmin.net/