Reiniciar Apache

Se debe reiniciar Apache cada vez que cambiemos el archivo de configuración o tengamos que hacerlo por la razón que sea.

sudo apachectl restart

Dependiendo del SO nos pedirá contraseña de super usuario; la ponemos y listo.

Para parar o arrancar el servidor Apache se utiliza start y stop.

sudo apachectl stop
sudo apachectl start

Como configurar Apache Virtual Hosts en una arquitectura Linux

Partiendo la base de que está configurado el archivo hosts y que estamos en root.

Localizamos el archivo httpd.conf y lo editamos.
sudo nano /etc/httpd/conf/httpd.conf

Nos aseguramos de que esta linea está sin comentar

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Accedemos al fichero de los servidores virtuales que ha sido incluido en httpd.conf
sudo nano /etc/httpd/conf/extra/httpd-vhosts.conf

La configuración de los servidores virtuales ha de parecerse a esto pero cambiando los valores por los que correspondan.

<VirtualHost *:80>
ServerAdmin webmaster@domain1.com
DocumentRoot “/var/www/domain1.com/”
ServerName domain1.com
ServerAlias www.domain1.com
ErrorLog “/var/www/log/httpd/domain1.com-error_log”
CustomLog “/var/log/httpd/domain1.com-access_log” common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@domain2.com
DocumentRoot “/var/www/domain2.com”
ServerName domain2.com
ErrorLog “/var/log/httpd/domain2.com-error_log”
CustomLog “/var/log/httpd/domain2.com-access_log” common
</VirtualHost>

Lo importante es tener correcto la ruta ServerAdmin , nombre y alias del dominio, en el caso de que lo tuviera, ServerName, ServerAlias

Archivo hosts

El archivo hosts de un ordenador es usado por el sistema operativo para guardar la correspondencia entre dominios de Internet y direcciones IP. Este es uno de los diferentes métodos que usa el sistema operativo para resolver nombres de dominios. Gracias wiki

En resumen, cada máquina tiene un archivo de configuración que se consulta en cada petición por URL.
Es editable y puedes configurar las IPs con los nombres de dominios en este fichero.

Se configura la URL que apunte a tu máquina. Si estás trabajando con un proyecto con dominio soyundominio.net, configura el archivo hosts para que apunte a tu localhost en cada llamada en vez de irse a buscar la IP a un servidor DNS. Si la IP de soyundominio.net es 83.55.23.11 le estás diciendo que la busque en 127.0.0.1

Ejemplo de archivo hosts
localhost 127.0.0.1
soyundominio.net 127.0.0.1

La ruta donde se encuentra el archivo hots depende de cada S.O.

Sistema Operativo Ruta
Windows 95 / 98 / Me C:\Windows\hosts
Windows NT / 2000 C:\WINNT\System32\drivers\etc\hosts
Windows XP / 2003 / Vista / 7 / 8 C:\Windows\System32\drivers\etc\hosts
Mac OS / iPhone OS /private/etc/hosts
Unix / Linux / BSD /etc/hosts
Novell NetWare SYS:etc\hosts
eComStation “bootdrive”:\mptn\etc\
BeOS /boot/beos/etc/hosts
Symbian OS 6.1-9.0 C:\system\data\hosts
Symbian OS 9.1+ C:\private\10000882\hosts
Android /system/etc/hosts

Cada cosa en su sitio

Un documento web consta del lenguaje de marcado (HTML), estilo (CSS) y de un comportamiento (JavaScript).

Se puede hacer un documento web con estos tres elementos incluidos en un único fichero .html pero esto es totalmente erróneo; de hecho creo que ya nadie lo hace.

CSS y JS siempre en un documento aparte para no tener el HTML infectado de <style> ni de <script> o de onclick=”” onblur=”” y así hasta llegar a todas las posibles etiquetas en HTML5 con javascript incrustado creando un código obstructivo ya sea por CSS o JavaScript

No hay nada mejor que entregar o recibir un documento web con todo separado para una mejor compresión y mantenimiento.

El desarrollo se hace más divertido con un documento limpio y ordenado.

Comprimir HTML en el servidor

La compresión del HTML es una manera sencilla para ahorrar ancho de banda y aumentar la velocidad de respuesta en tu sitio web.
La compresión consiste en responder al cliente con la respuesta comprimida en un fichero comprimido. Para hacerse una idea un fichero HTML sin comprimir que pese 100Kb puede ser entregado al cliente con un peso de 15Kb! Por lo tanto el rendimiento de nuestro sitio web aumenta considerablemente.

Para configurar o activar la compresión en el servidor (Apache en mi caso) necesitas añadir las siguiente directivas en el fichero .htaccess
<files *.html>
SetOutputFilter DEFLATE
</files>

Bueno, hay dos maneras de hacerlo, utilizando el estandar de Apache o gzip que es mas potente y puedes dar al servidor contenido ya comprimido (lo que se llama hacer un “crunch”) por lo que es más efectivo.

La manera que he dicho antes es especica para la extensión .html pero puede utilizar también la directiva AddOutputFilterByType DEFLATE text/html

Un ejemplo más claro de .htaccess


# Comprime text, html, javascript, css, xml
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# O, Comprime ficheros según extensión
<files *.html>
SetOutputFilter DEFLATE
</files>

Recuerda cuando edites tu .htaccess que tienes que cambiar los permisos a 755 después de editarlo o editarlo como modo root.

Etiquetas según contenido

¿No sabes que etiqueta escoger en HTML5?

Siguiendo este flujo de datos puedes averiguar cual és la etiqueta adecuada dependiendo del contenido. Aunque a veces es mejor empezar por preguntarse si el contenido tiene o no tiene sentido semántico. En caso que no tenga sentido semántico, puedes usar <div>

Flujo de datos según contenido

Flujo de datos según contenido

etiqueta viewport y sus consecuencias

¿Qué es y para qué sirve?, Esta pregunta siempre me la hacía cada vez que echaba un vistazo a las etiquetas incluidas en, pero es como todo, no le das importancia hasta que realmente es necesario. viewport identifica el tamaño deseado de la pantalla y dice al dispositivo a que tamaño debe renderizar la página. Es imprescindible cuando tenemos un diseño responsive y en ella dependiendo de los parámetros podemos habilitar/inhabilitar el zoom, definir el tamaño de pantalla así como el zoom predeterminado. Curiosamente desarrollando una pequeña aplicación nativa para iPad en la que el tamaño del viewport era de 320px por 480px no renderizaba a esa medida. No podía cambiar el tamaño porque el web view (www) se que quedaba fijo y se perdía la plantilla responsive, por lo tanto para que funcionase tuve que remover width=device-width como parámetro o pasar width=100% cosa que no tiene mucho sentido.

En resumen, si estáis desarrollando una aplicación nativa que “embeba” una aplicación web responsive, hay que revisar los parámetros de la <meta> etiqueta viewport.

Empieza por entender como funciona..

<meta name=”viewport” content=”width=device-width, initial-scale=1.0″/>

Para más información siempre estarán nuestros “compañeros” de W3C.