Configuración de Apache2 en Debian para soportar VirtualHost

A continuación, muestro un ejemplo, que puede servir de plantilla, para configurar Apache2 con lo básico para soportar VirtualHost, por lo tanto la posibilidad de tener varios dominios y varias carpetas (incluso fuera del típico /var/www) y con soporte de URL Rewriting, importantes para instalaciones de WordPress, Moodle, CakePHP, etc.

Antes de esto, recordar que los archivos de configuración se encuentran en el directorio: /etc/apache2/sites-available/

Si bien es cierto que, se puede tener un solo archivo para toda la configuración de Apache, se recomienda tener un archivo de configuración por sistema, de tal modo que no tengamos un archivo grande, sino un archivo por sistema, fácil de editar y configurar.

También es necesario recordar que, se debe colocar en el archivo en el directorio sites-available antes mencionado para poder activarlo y desactivarlo con los comandos

sudo a2ensite example.com.conf
sudo a2dissite example.com.conf

También se puede deshabilitar la configuración por defecto:

sudo a2dissite 000-default.conf

También recomiendo tener un archivo por cada sub domain, ya que, por lo general, los subdomains son sistemas completamente separados físicamente (en el sistema de archivos) y se puede requerir configuraciones específicas y separadas.

A continuación un archivo de ejemplo que involucra todas las prácticas mencionadas.

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  ServerName subdomain.example.com
  ServerAlias subdomain.example.com
  DocumentRoot /home/user/www/subdomain.example.com/main
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  
  <Directory /home/user/www/subdomain.example.com/main>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    # New directive needed in Apache 2.4.3:
    Require all granted
  </Directory>
</VirtualHost>

Cada modificación requiere el reinicio del servicio de Apache.

Instalando CakePHP en Raspbian… #Capítulo1

El multifacético Raspberry PI puede ser usado en infinidad de áreas tecnológicas. Particularmente estoy usando uno como “servidor de desarrollo”, es decir, le instalé Raspbian, una distribución ligera basada en Debian, y lo uso como servidor dentro de una red local. Al servidor le instalé Apache2, MySQL y PHP5.

Para descargar CakePHP, actualmente se usa el manejador de dependencias Composer… Instalarlo es tan sencillo como seguir los pasos de su página web. En la web oficial de CakePHP nos dan adicionalmente un pequeño truco para ejecutar composer como un comando desde cualquier parte.

mv composer.phar /usr/local/bin/composer

Nota: recordar tener activado el mod rewrite.

Dato: si queremos instalar openssh-server, es necesario activarlo desde las opciones de configuración del raspberry con el comando

sudo raspi-config

Luego, para descargar CakePHP, nos ubicamos en el directorio del servidor donde queremos crear el proyecto y si tenemos el composer global colocamos el siguiente comando

composer self-update && composer create-project –prefer-dist cakephp/app [NOMBRE_DEL_PROYECTO]

Con esos pasos ya tenemos la instalación básica de CakePHP y debería lucir así para la versión 3.4.4


Fuentes:

Activar Mod Rewrite de Apache en Debian

Mod rewrite o Rewrite engine, es un módulo de Apache para la reestructuración de URL, de tal modo que es un módulo imprescindible cuando se utilizan sistemas que tienen URL amigables, como WordPress o CakePHP.

Para activarlo en sistemas Debian like, como Ubuntu y hasta Raspbian. Se usa el siguiente comando:

a2enmod rewrite

Por último reiniciar Apache.

Apuntar una web a una dirección ip específica

Suponiendo que somos dueños de algún dominio, digamos laut.com.ve… Además imaginemos que tenemos un servidor de pruebas y un servidor distinto para el ambiente de producción.

Supongamos además que en la máquina donde estamos desarrollando queremos que al yo colocar en un navegador o hacer un SSH a la dirección laut.com.ve mi máquina de desarrollo apunte al servidor de prueba y no al servidor de producción.

Para hacer esto se coloca en el archivo /etc/hosts en Linux o C:\Windows\System32\Drivers\etc\hosts en Windows la correspondencia deseada. Por ejemplo

# Para que apunte a la máquina local:
127.0.0.1    laut.com.ve

# Para que apunte a una IP específica:
92.3.54.65    laut.com.ve

 

Configurar dominios en Apache2

Supongamos que tenemos registrado el dominio guzman6001.com.ve y laut.com.ve y queremos tener en nuestro servidor ambas páginas (en carpetas diferentes evidentemente), además que nuestro servidor al recibir la petición sepa exactamente que página debe mostrar. Así, por ejemplo, queremos que:

guzman6001.com.ve apunte a la carpeta dentro del servidor: /home/usuario/sitios/guzman6001
laut.com.ve apunte a la carpeta dentro del servidor: /home/usuario/sitios/laut

NOTA: Para esto es muy importante que nuestro servidor DNS esté apuntando ambas direcciones al servidor. En algunas de las fuentes se indica como hacerlo con un servidor propio como bind, también es factible hacerlo con un servicio en la red como CDMON.

Para configurar Apache vamos a la carpeta /etc/apache2/sites-enabled
abrimos el archivo 000-default y lo guardamos con un nombre que nos sea más útil para saber su contenido, yo recomiendo guardarlo con el nombre del dominio que vamos a configurar por ejemplo guzman6001-domain y hacemos los siguientes cambios:

<VirtualHost guzman6001.com.ve:80>
ServerAdmin webmaster@localhost
ServerAlias guzman6001.com.ve
DocumentRoot /home/usuario/sitios/guzman6001

El resto del archivo lo puedes dejar igual o configurarlo a tu gusto

Puedes configurar tantos subdominios como quieras duplicando el bloque VirtualHost y haciendo las mismas modificaciones.

<VirtualHost mail.guzman6001.com.ve:80>
ServerAdmin webmaster@localhost
ServerAlias mail.guzman6001.com.ve
DocumentRoot /home/usuario/sitios/guzman6001mail

Aunque puedes crear tantas direcciones de dominios y subdominios como quieras, siguiendo el mismo formato, es recomendable hacerlo en archivos distintos para mantener un orden, hay ocasiones en que se debe regresar a estos archivos para realizar algún cambio.

Reiniciar apache y listo.

Fuente: http://guzman6001.blogspot.com/2010/02/crear-subdominios-en-apache2.html

Instalar phpmyadmin en ubuntu

Comandos para instalar phpmyadmin en distribuciones Debian-like.

sudo apt-get install phpmyadmin
sudo ln -s /usr/share/phpmyadmin /var/www/

(reiniciar apache de ser necesario)

Reiniciar Apache2 en Linux

El comando para reiniciar el servidor es:

sudo /etc/init.d/apache2 restart

Si te da este error “apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName” procedemos a lo siguiente:

Editar el archivo apache2.conf:

sudo gedit /etc/apache2/apache2.conf

Agregamos el nombre de nuestra maquina al final del archivo: ServerName NOMBRE_DE_TU_MAQUINA

Si no sabes el nombre de tu máquina o no lo vez el prompt o no sabes que es el prompt. Usa el comando hostname en la consola y listo ese es el nombre que tienes que poner en el archivo.

Guarda, cierra y reintenta el comando para reiniciar.

Instalar servidor LAMP (Ubuntu 14.04) #Server6001

A continuación el comando para instalar y comenzar a configurar un servidor LAMP: Linux (Ubuntu 14.04), Apache2, MySQL y PHP.

sudo apt-get install lamp-server^

El símbolo ^ al final del comando no es un error.