Manuales

[Tutorial] Creando Virtual Host de Apache usando Linux

Hasta hoy creo que voy a escribir algo util, pero pues y saben que mi tiempo es poco y hay que aprovecharlo al máximo.

Bueno la idea de este post es platicarles sobre como se pueden crear los famosos virtualhosts.Pero antes de empezar enterémonos bien que es un virtualhost.

Con los virtualhosts podremos tener varios dominios apuntando a una misma pc. Dentro de cada virtualhost podremos definir las condiciones para cada dominio que esté representando.

Es como si tuviéramos varios dominios dentro de nuestro servidor osea 127.0.0.1.

Es decir que aparte de usar http://localhost, podríamos usar http://localweb, http://proyecto, http://www.beta.com o el nombre que mas nos guste, para ello lo primero que necesitamos es tener instalado apache2 (la ultima versión) y funcionando.

Ahora veamos como crear y usar los virtualhost(Es necesario tener permisos de root para algunos cambios)

Entraremos  a nuestra consola y nos moveremos a   cd /etc/apache2/sites-available/

ajaxman@debianJS:~$ su
Contraseña:
debianJS:/home/ajaxman# cd /etc/apache2/sites-available/
debianJS:/etc/apache2/sites-available#

Una vez ahí veremos que hay un archivo llamado default (en mi caso hay dos el otro se llama default-ssl es digamos que la “plantilla” de los sitio con ssl)

debianJS:/etc/apache2/sites-available# ls -la
total 24
drwxr-xr-x 2 root root 4096 abr 14 16:37 .
drwxr-xr-x 7 root root 4096 nov  6 16:46 ..
-rw-r–r– 1 root root 1428 nov  6 17:44 default
-rw-r–r– 1 root root 7366 oct  1  2008 default-ssl

El archivo default es el que contiene la información que usaremos en los virtualHost por lo cual simplemente copiaremos todo el archivo en uno nuevo eso lo hacemos mediante el comando cat.

debianJS:/etc/apache2/sites-available# cat default> website

Ahora nuestro ls se vera asi

debianJS:/etc/apache2/sites-available# ls -la
total 24
drwxr-xr-x 2 root root 4096 abr 14 16:37 .
drwxr-xr-x 7 root root 4096 nov  6 16:46 ..
-rw-r–r– 1 root root 1428 nov  6 17:44 default
-rw-r–r– 1 root root 7366 oct  1  2008 default-ssl
-rw-r–r– 1 root root 1480 abr 14 16:35 website

Ahora lo abrimos y lo editamos con el Vi y lo unico que modificaremos sera lo siguiente.

debianJS:/etc/apache2/sites-available# vim website

< VirtualHost *:80 >
ServerAdmin webmaster@localhost

DocumentRoot /home/www/
< Directory / >
Options FollowSymLinks
AllowOverride None
< /Directory >
< Directory /home/www/ >
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
< / Directory >
………
……………
…………….
< VirtualHost >

Por esto

< VirtualHost *:80 >
ServerAdmin webmaster@ajaxman.net
ServerName prog
ServerAlias www.website.net

DocumentRoot /home/www/prog
< Directory / >
Options FollowSymLinks
AllowOverride None
< /Directory >
< Directory /home/www/prog >
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
< / Directory >
………
……………
…………….
< VirtualHost >

Nota: Tiene espacios intencionales para evitar que wordpress lo tome como si fueran tags HTML

Lo que cambiamos fue

  • Agregamos Server Name, que es donde estará el nombre de nuestro servidor en este caso se llama prog
  • Le agregamos un ServerAlias, que es como otro nombre para acceder a este VirtualHost, en este caso es www.website.net.
  • Y le modificamos el DocumentRoot, el cual sera la carpeta del sitio que queremos Virtualizar

Los guardamos con [Esc]:wq

Ahora lo agregamos a apache

debianJS:/etc/apache2/sites-available# a2ensite website

Y apache nos dira que lo agrego con éxito, Ojo: para evitar que Apache nos de errores, es necesario que la carpeta que el indicamos en DocumentRoot exista, si no no nos va a funcionar.

a2ensite, lo único que hace es un enlace simbólico dentro de la carpeta /etc/apache2/sites-enabled a algunos de los sitios que están en la otra carpeta /etc/apache2/sites-available , es decir  en sites-available están los sitios disponibles, y en sites-enabled están  los que podemos usar.

Leer más

[Linux] Solución a la baja velocidad de internet en Open Suse 11.0

Tal como les comente ando bien apurado con un buen de cosas, y probablemente el blog va a sufrir una ligera crisis en estos días, pero bueno, lo chido es que mis 200 Lectores de Feeds sigen activos :-) , eso es bueno.

Ahora pasando a otras cosas, les platico que desde que instale Open Suse 11, me pasaba lo siguiente cuando me conectaba a Internet, la resolución de nombres era lenta, aquí pongo una lista para que vean, como estaba la situación.

  • Abrir Firefox 1-3 Segundos
  • Escribir Ajaxman.net  3-4 Segundos
  • Resolución de nombres de dominio (DNS) 10-20 o hasta 30 segundos
  • Respuesta de la pagina y mostrar en pantalla 5-9 Segundos
  • Si había una conexión con Twitter o con Google, o algún otro servicio, volvía ha hacer la resolución de nombres o sea otros 30 segundos mas o menos
  • Esto solo sucedía en mi pc con Linux.

El problema en si no era la conexión a Internet, si no la resolución de nombres el DNS.

Sabia que algo tenia que hacer pero no soy tan bueno en Linux, pues estuve sufriendo así mas o menos un mes.

Leyendo foros y mas di con el problema, ya que a primera vista, no sabia cual era el problema, ya cuando di con el busque como resolverlo.

La solución era simple, modificar los dns’s. Y ¿Como hacemos eso?

Bueno se supone que en Suse ya todo biene mas APP(*) , pero para verlo mas Geek, lo haremos a manita.

Como primer paso toca modificar el archivo resolv.conf, para esto veamos que contiene dicho archivo, recuerden hacer un respaldo en caso de que algo vaya mal

Ajaxman:/home/javier # cat  /etc/resolv.conf

Archivo resolv.conf

Ahora si observamos lo siguiente

#search gateway.2wire.net
#nameserver 192.168.1.254

Ahorita están comentados pero al principio no, osea en vez de eso que les puse estaba así

search gateway.2wire.net
nameserver 192.168.1.254

Entonces, al parecer el problema viene de que al parecer suse, intenta resolver nombres en el router, lo cual es incorrecto, ya que el no es un servidor de DNS.

Entonces la solución es simple modifiquemos el archivo, agregándole unos DNS’s buenos, yo en lo personal use Open DNS, los cuales son los siguientes.

200.33.146.233
200.33.146.169

Ahora lo editamos con el Vi

Ajaxman:/home/javier # vim  /etc/resolv.conf

Para que quede asi

Archivo resolv.conf editado

Archivo resolv.conf editado

Ahora bien, ya debe de funcionar bien, sin embargo tendremos un problema, cada vez que, reiniciemos la tarjeta de red (NIC), o cuando reiniciamos el servicio dhclient, veremos que nos borrar este archivo y nos lo deja como estaba al principio.

Bien para solucionar esto basta con editar dos archivos(en estos no pongo capturas por que están muy grandes los archivos), el primero es.

Ajaxman:/home/javier # vim /etc/sysconfig/network/dhcp

Leer más

[Php] Cargando clases en Php 5 !!sin dolores de cabeza!!

Hasta hoy creo que voy a escribir algo sobre Php, una categoría que tenia algo de olvidada por este blog, y se trata de algo muy simple digamos que es un tip, es una forma de cargar clases en Php 5 sin hacer un relajo.

Les cuento a que viene el caso o la situación, estoy creando una clase en Php, para manejar unas cosas, sin embargo son 3 cosas diferentes, vamos, tendré que usar 3 clases diferentes, ya que se trata de cosas distintas, ahora bien, para usar una clase el php se haría de la siguiente forma.

< ?php
include ("clases/calcula.inc.php");
$calcula=new Calcula();
?>

El problema surge cuando deseamos utilizar varias clases, las cuales a veces por facilidad y por costumbre las almacenamos en archivos diferentes, el ejemplo se vería mas o menos de esta forma

< ?php
include ("clases/cacula.inc.php");
include ("clases/suma.inc.php");
include ("clases/resta.inc.php");
include ("clases/raiz.inc.php");
$calc=new Calcula();

$sum=new Suma();

$rest=new Resta();
?>

Esto DESAFORTUNADAMENTE se tendrá que hacer si tenemos php 4 en nuestro server, ya que si tenemos Php 5 podemos usar autoload, una función nativa de php5, como lo indica la documentacion de Php.

Puede definir una función __autoload la cual es llamada automáticamente en caso de que intente usar una clase que no ha sido definida aún. Al llamar esta función la ejecución del script da una última oportunidad de cargar la clase antes de que PHP falle con un error.

Aqui les pongo un ejemplo de como quedaría nuestro código anterior

< ?php

function __autoload($nombre_de_clase) {
require_once $nombre_de_clase . '.php';
}

$calc=new Calcula();

$sum=new Suma();

............
?>

Como vemos es muy simple, espero que les ayude, ya que a mi no me ayudara mucho, por que en uno de los servers donde haré esto usa php 4 :-( pues ya que, si a ti te sirvió coméntanos, como la usaste.

Mas información | Auto carga de Objetos

Leer más

[Manual] Usando el crontab en Linux

Bueno hoy es viernes y no hay que hacer nada ¿no creen?, ojala y así fuera pero hay bastante chamba, bueno regular, pero veamos un poco sobre como usar el famoso crontab que a veces me ha costado trabajo, bueno aquí les pondré un pequeño manual espero que les sea de utilidad, cualquier pregunta no duden, para eso están los comentarios.

terminal

Terminal

El crontab, es un archivo en donde podemos configurar tareas para que se ejecuten automáticamente en nuestro sistema, digamos por ejemplo descargar un archivo de respaldo diariamente,  o borrar ciertos archivos periódicamente, ejecutar un script que haga algo, etc, digamos que podemos automatizar las tareas, para no estar haciéndolas a mano.

Para poder ejecutar el crontab, regularmente no es necesario hacer nada, mas que ejecutar cierto comando y ya estará funcionando, en la mayoría de distribuciones que he probado (ubuntu,open suse, debian, gentoo)regularmente esta por default, de todos modos si surgen dudas están los comentarios.

También debemos de revisar que para poder ejecutarlo nuestro nombre de usuario debe de aparecer en /usr/lib/cron/cron.allow, o en dado caso que no aparezcamos dentro de la lista /usr/lib/cron/cron.deny.

Si sólo existe cron.deny  y está vacío, todos los usuarios pueden utilizar crontab. Si no el archivo existe, sólo el usuario root puede usar crontab. El permitir / denegar archivos constan de el nombre de usuario en cada línea.
Lo anterior no lo pude localizar correctamente en Open suse, de todos modos, utilicen en este caso acceso como root y se evitaran problemas.
Ahora para poder trabajar con el cron vamos a ver como podemos configurarlo o modificarlo.
Podemos usar linux-g5yh:/home # export EDITOR = vi para especificar un editor por default para editar el archivo del crontab, pueden usar pico, nano, etc, pero a mi me gusta mas el Vim o Vi
Ahora usaremos los siguiente comandos dependiendo de lo que deseemos hacer
linux-g5yh:/home #crontab-e Con este comando podremos editar nuestro archivo crontab, si no existe dicho archivo se crea.
linux-g5yh:/home #crontab-l Muestra el contenido del archivo crontab.
linux-g5yh:/home #crontab-r Eliminar el archivo crontab(ejecutar esta instrucción con cuidado).
linux-g5yh:/home #crontab-v Muestra la última vez que editó su archivo crontab. (Esta opción sólo está disponible en algunos sistemas.)
Ahora que ya sabemos como configurar el archivo del crontab, ahora veamos como podemos agregar tareas, a dicho archivo.
———————————————————————————————————————–

*     *   *   *    *  comando_a_ejecutar
-     -    -    -    -
|     |     |     |     |
|     |     |     |     +—– dia de la semana (0 – 6) (Domingo=0)
|     |     |     +——- mes(1 – 12)
|     |     +——— dia del mes (1 – 31)
|     +———– hora (0 – 23)
+————- minuto (0 – 59)

——————————————————————————————————————-

Bajo el anterior criterio vamos a poner un cron job que se ejecute a las 10 de la noche, el cual solo reinicia el apache server

linux-g5yh:/home #crontab-e

* 10,20  *  *  * /etc/init.d/apache2 restart

:wq  //guardamos el archivo en el vi

linux-g5yh:/home #

Ahora un ejemplo un poco mas difícil,  bajar un respaldo a las 2:20 am y a las 2:20 pm, bajar un segundo respaldo 25 minutos después, ejecutar el script de los respaldos cada 30 minutos los viernes.

Leer más

[Manual] Instalando Firefox 3 en Debian Etch 4

Como saben estoy desde hace unos días en mi Debian, y las verdad no podía estar mas contento, apenas lo estoy puliendo y me han salido muchos detalles, los cuales poco a poco voy resolviendo.

Como saben(si no pues ya se enteraron), hace tiempo hubo diferencias entre la comunidad de desarrollo de Debian y la fundacion Mozilla, por lo cual en Debian no viene incluido Firefox, bueno en si lo que no viene es ese producto pero, lo que si viene es un navegador igualito a Firefox, se llama Iceweasel, vamos lo único que cambia es la imagen, y el nombre, además de que al ser una versión distinta, se tardan tiempo en sacar nuevas versiones.

El caso es que es Firefox pero un poco atrasado(iceweasel=Firefox 2), y como yo quería disfrutar de lo nuevo el Firefox 3, pues me encontré con ese problema, ya que ni esta en los repositorios del apt.

Pero como yo se que en linux todo es posible, pues busque si había una forma de hacerlo ya que Firefox 3 esta disponible en formato tar.bz2 desde la pagina de Mozilla.

Entonces me dispuse a buscar como instalarlo, y pues después de mucho buscar encontré la solución, la cual pongo a continuación.

  1. Primero necesitamos tener instalado alien, este paquete nos permitirá pasar algunos(ojo no todos) paquetes rmp a paquetes .deb y de esta forma instalarlos en debian.
  2. Necesitaremos instalar un paquete que es el gtk+-2.10, el cual no esta disponible de manera estable para Debian por lo cual lo deberemos bajar en rpm.
  3. Para bajar el rpm lo podemos hacer desde aquí gtk+-2.10.14-1ark.i586.rpm, o aquí gtk+-2.10.14-1ark.i586.rpm o aquí gtk+-2.10.14-1ark.i586.rpm , también cabe mencionar que tiene que ser cualquier rpm siempre y cuando su versión se superior a gtk 2.8 que es el problema que surge cuando se intenta instalar Firefox
  4. Ahora lo que haremos sera convertir el rpm en .deb, para hacerlo solo hay que abrir la consola(todo lo hice desde root) y teclear el siguiente comando debianj:/home/javier# alien gtk+-2.10.14-1ark.i586.rpm
  5. Si todo ha ido bien(si no comente en el post para ver posible errores), creamos un directorio donde guardaremos el gtk debianj:/home/javier# mkdir gtk21
  6. Ahora descomprimimos el contenido(no se instala el .deb) en al carpeta que creamos mediante el comando debianj:/home/javier# dpkg -x gtk+_2.10.14-2_i386.deb gtk210/
  7. Ahora nos bajamos el Firefox 3 y lo descomprimimos en alguna carpeta Firefox se descarga desde aquí y ahí nos aparecerá la descarga para Linux, no es necesario hacer nada extra, y descomprimimos el archivo.
  8. Creamos un script en bash para poder ejecutar gtk antes de lanzar firefox,Ojo deben de cambiar los paths dependiendo de donde hayamos puesto el Firefox y gtk, la ultima linea es donde tenemos el ejecutable de firefox

    #!/bin/bash
    export LD_LIBRARY_PATH="/home/javier/gtk210/usr/lib"
    /home/javier/firefox/firefox $*

  9. El script anterior, puede ser creado de la siguiente forma
    1. Abrimos la consola
    2. creamos el archivo debianj:/home/javier# touch firefoxexec, (yo use el nombre de firefoxexec ustedes pueden usar otro)
    3. lo editamos debianj:/home/javier# vim firefoxexec, osea le agregamos el código y lo guardamos
    4. Y le damos permisos de ejecución debianj:/home/javier# chmod +x firefoxexec
    5. Listo ya tenemos el script
  10. Y con esto ya tenemos Firefox 3 en nuestro Debien Etch, ahora para poder ejecutarlo lo haremos de la siguiente forma
    1. ejecutamos debianj:/home/javier# ./firefoxexec
    2. Y listo
  11. Para que no tengan que estar ejecutando esto cada vez que inician debian, lo podemos configurar de la siguiente forma.

Leer más

[Manual] El archivo de configuracion del servidor Apache httpd.conf

Lamentablemente a pesar de que había empezado bien ha postear en este mes otra vez estoy dejándolo, y culpen de eso a meneame jaja y a microsiervos entre otros, no ya en serio, si que he tenido unos días complicados, pero bueno ya pasaran, por cierto en 3 meses exactamente me caso , luego les platicare mas de esto.

Bien esto les platico por que he recibido un par de comentarios que me piden que postee mi archivo de configuracion de apache el httpd.conf, pero como les comente a veces me quedo sin tiempo, por eso en hoy en una escapada que me he dado les pondré mi archivo de configuracion httpd.conf, en su configuracion para Windows.

Les cuento brevemente donde esta regularmente y para que sirve o vamos en pocas palabras que es este archivo con este nombre tan raro para muchos.

Apache

Cuando instalamos apache en windows a mano, osea sin usar Wamp o appserver o algunas de esas cosas, si seguimos el manual que postee, aqui “Manual de instalación y configuración de Apache, Php y MySQL“, y se instala Apache por default en la carpeta: C:\Archivos de programa\Apache Software Foundation\Apache2.2\conf , se crear un archivo llamado httpd.conf, el cual guarda los parámetros de la configuracion global y completa de nuestro servidor apache, en Linux regularmente se guardaria en /etc/apache2/http.conf.

En dicho archivo podremos instalar modulos para que funcione php, cgi’s, compresion gzip, proxies, modrewrite (para reescribir urls y en vez de tener direcciones art.php?id=1,art.php?id=2 etc, se vea como articulos/vendemos_gatos_a_domicilio, articulos_renta_de_autos, etc), SSI (es i no es l), etc.

Tambien dentro de este archivo podremos configurar los mimetypes, con lo cual le decimos a apache como debe de interpretar ciertos tipos de archivos, asi como posibilidad usar vhosts, configurar rutas, email del administrador, bueno en pocas palabras casi todo, lo que queramos hacer con Apache lo podemos hacer desde este archivo, a continuación les posteo el archivo es un poco grande, solo remarcare y comentare los punto importantes.

Cabe destacar que si deseamos hacer un comentario desde nuestro httdp.conf podemos usar la el carácter de numero o de gato como se le conoce a este (#) y a continuación el comentario.

Archivo httpd.conf
Lo puse en lo siguiente por que el archivo es muy grande y deformaria mucho la pagina de inicio, :-)

Leer más

[Java] Para que sirve y que podemos hacer con Java

Bueno, ya les he platicado un poco de Java, pero hay algo muy importante, saber Java de que nos va a servir.

Java, como bien sabemos esta dividido en cuatro principales ramas:

  • JRE (Entorno de ejecucion)
  • JDK (Entorno de desarrollo y testeo)
  • JEE (Entorno para crear aplicaciones empresariales que se usen tecnologia de servidores)
  • JME (Entorno de desarrollo para moviles)

Ahora bien con Java podemos hacer maravillas, aqui les explico a grandes razgos algunas de las cosas que podemos hacer con Java y sus principales caracteristicas.

javalogo


Aplicaciones autónomas:

Todo en Java está dentro de una clase, incluyendo programas autónomos.
Las aplicaciones autónomas se ejecutan dando al entorno de ejecución de Java el nombre de la clase cuyo método main debe invocarse. Por ejemplo, una línea de comando (en Unix o Windows) de la forma java –cp . Hola ejecutará un programa (previamente compilado y generado como “Hola.class”) . El nombre de la clase cuyo método main se llama puede especificarse también en el fichero “MANIFEST” del archivo de empaquetamiento de Java (.jar).

Applets:
Las applets de Java son programas incrustados en otras aplicaciones, normalmente una página Web que se muestra en un navegador.

Servlets:

Los servlets son componentes de la parte del servidor de Java EE, encargados de generar respuestas a las peticiones recibidas de los clientes.

Aplicaciones con ventanas:
Swing es la librería para la interfaz gráfica de usuario avanzada de la plataforma Java SE.

JSP (Java Server Pages):

páginas que se compilan dinámicamente (o se pre-compilan previamente a su distribución) de modo que el código que se consigue una ventaja en rendimiento substancial frente a muchos lenguajes interpretados.

En estos principales usos, tambien se usan API’s de Java o extensiones, las cuales dotan, aumentan o mejoran algunas funcionalidades.Estas extensiones de Java están en paquetes que cuelgan de la raíz javax: javax.*. No se incluyen en la JDK o el JRE. Algunas de las extensiones y arquitecturas ligadas estrechamente al lenguaje Java como son:

  • JDBC (Java Database Connectivity) para conectarse con bases de datos como ORACLE
  • JSF (JavaServer Faces)
  • Java 3D (Una API de alto nivel para programación gráfica en 3D)
  • JNI (Java Native Interface)
  • JSP (JavaServer Pages)
  • JMF (Java Media Framework)
  • Beans
  • EJB (Enterprise Java Beans)

Ahora mas o menos ya tenemos una idea acerca de en donde podemos usar Java, en el siguiente capitulo de Java, haremos nuestra primera aplicacion Java he instalaremos JDK, tanto en Windows(XP) como en Linux(DEBIAN), asi que esten pendientes

Con Información obtenida en

Leer más

Historico de entradas

febrero 2012
L M X J V S D
« ene    
 12345
6789101112
13141516171819
20212223242526
272829  

Ajaxman

Mi nombre es Javier, soy desarrollador web con especialización en PHP (avanzado), HTML, CSS y Javascript(Medio).

Me considero evangelizador de Kohana Framework, Mozilla Firefox y GNU/Linux Debian.

Estoy casado, y tengo dos hermosos hijos.

Todos los contenidos a menos que se exprese lo contrario estan bajo licencia Creative Commons.

Enlazanos!!

hit counters online counter