miércoles, 16 de julio de 2014

Actualizar Tomcat 6 al 7 en Ubuntu

Aquí describiremos como actualizar nuestro Tomcat 6 a la versión 7, esta actualización conservara nuestros archivos en webapps, sin embargo se recomienda realizar un respaldo de nuestras aplicaciones para evitar alguna perdida.

Primero detenemos el servicio de tomcat que tenemos en nuestro servidor, posteriormente para actualizar solo escribimos el siguiente comando:

$ sudo apt-get purge tomcat6 && sudo apt-get autoremove && sudo apt-get install tomcat7

Iniciamos nuestro servicio, después solo tendremos que copiar nuestras aplicaciones a la nueva ruta de tomcat: /var/lib/tomcat7/webapps, posterior a ello sera necesario instalar las herramientas de administración y configurar nuestros usuarios en /etc/tomcat7/tomcat-users.xml. (http://mgermano.blogspot.mx/2014/04/configurar-usuario-admin-en-tomcat.html)

$ sudo apt-get install tomcat7-admin

jueves, 26 de junio de 2014

Instalar Tomcat 6 en Ubuntu

Instalar tomcat en Ubuntu es más sencillo que en CentoOs, aquí describimos los pasos a seguir:

1. Instalamos nuestro servidor mediante el siguiente comando

$ sudo apt-get install tomcat6

De esta forma se instalara el servidor con ROOT webapp que muestra una página sencilla que dice It works (http://localhost:8080).

Por defecto el tomcat trabaja en el puerto 8080 (conector http), si deseas cambiarlo, toda la configuración del tomcat se encuentra en /etc/tomcat6/server.xml, las lineas a modificar serian las siguientes:
<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000"
           redirectPort="8443" />

2. Para que tomcat trabaje tenemos que tener instalado el JDK, lo hacemos mediante la siguiente linea:

$ sudo apt-get install default-jdk

3. Para la administración del tomcat instalamos el paquete correspondiente:

$ sudo apt-get install tomcat6-admin

Podemos instalar también la documentación y ejemplos del tomcat:

$ sudo apt-get install tomcat6-docs tomcat6-examples

4. Antes de reiniciar nuestro servidor, no se olvide que tenemos que crear nuestro usuario de administración del tomcat, como se describe en: http://mgermano.blogspot.mx/2014/04/configurar-usuario-admin-en-tomcat.html, y tendremos nuestro servidor tomcat listo para trabajar (http://localhost:8080).

$ sudo service tomcat6 restart




martes, 3 de junio de 2014

Montar particiones al inicio en Linux

1. Primero tenemos que identificar que partición es la que vamos a montar con el siguiente comando:

$ sudo fdisk -l
Disco /dev/sda: 500.1 GB, 500107862016 bytes
Identificador del disco: 0x40a6023f

Disposit. Inicio    Comienzo    Fin    Bloques  Id    Sistema
/dev/sda1    *       2048    206847    102400    7    HPFS/NTFS/exFAT
/dev/sda2          206848 204799999 102296576    7    HPFS/NTFS/extFAT
/dev/sda3       204800000 400112499  97656250   83    Linux
/dev/sda4       400112500 404113407   1999872   82    Linux swap
La partición que usaremos sera la /dev/sda3

2. Identificamos el UUID (Universally Unique IDentifier) con el siguiente comando

$ sudo blkid /dev/sda3
/dev/sda3: UUID="8ff9f53e-732c1935aa" TYPE="ext4"

3. Creamos una carpeta donde se montara la partición dentro de /media, en este caso la llamaremos appweb

$ sudo mkdir /media/appweb

4. Editamos el archivo fstab para que se monte inicialmente

$ sudo nano /etc/fstab

Ahora dependiendo del tipo de partición configuramos según sea el caso:
# <file system>  <mount point>  <type>  <options>  <dump>  <pass>
NTFS
UUID=8ff9f53e-732c1935aa  /media/appweb  ntfs-3g default 0 0

FAT
UUID=8ff9f53e-732c1935aa  /media/appweb  vfat rw,uid=1000,gid=1000 0 0

Ext4
UUID=8ff9f53e-732c1935aa  /media/appweb  ext4  errors=remount-ro 0 1
En este caso nuestra partición es Ext4, recuerda agregar tu UUID y la carpeta donde montaras esta partición, así como los espacios en blanco se refieren a tabuladores.

Guardamos nuestro archivo y reiniciamos nuestro servidor, al cargar nuestro sistema deberíamos tener montada nuestra partición.

Directorios virtuales para Apache en Ubuntu

Cuando instalamos apache, la carpeta por defecto donde alojamos nuestras aplicaciones se encuentra en /var/www, pero en la práctica es mejor tener un directorio donde montar nuestras aplicaciones, a continuación describiremos los pasos a seguir.

1. Creamos la carpeta donde alojaremos nuestras aplicaciones, aquí por ejemplo creamos una carpeta llamada appweb dentro de nuestro home de usuario.

$ sudo mkdir /home/miusuario/appweb

2. Definimos y configuramos nuestro directorio virtual, para ello creamos un archivo con un nombre que haga referencia a nuestro directorio dentro de /etc/apache2/sites-available.

$ cd /etc/apache2/sites-available
$ sudo nano appweb.conf

Dentro de este archivo agregamos las siguientes lineas

# domain appweb
# public /home/miusuario/appweb

<VirtualHost *:80>
# definimos como accederemos al directorio
ServerName appweb
ServerAlias appweb

DirectoryIndex index.php index.html
# definimos el directorio donde estaran las aplicaciones
Documentroot /home/miusuario/appweb

# definimos nuestro log de acceso y de errores
ErrorLog /home/miusuario/appweb/log/error_log.log
CustomLog /home/miusuario/appweb/log/access_log.log combined

# definimos los permisos en nuestro directorio
<Directory /home/miusuario/appweb/>
    Options All
    Require all granted
</Directory>
</VirtualHost>

Terminado de agregar las líneas, guardamos nuestro archivo.

Nota: La configuración de los permisos es para Apache 2.4, para versiones anteriores debe cambiar dentro del Directory a las siguientes lineas:

<Directory /home/miusuario/appweb/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

3. Creamos los archivos del log dentro de nuestro directorio ya que no existen.

$ sudo touch /home/miusuario/appweb/log/error_log.log
$ sudo touch /home/miusuario/appweb/log/access.log

4. Ahora activamos el directorio

$ sudo a2ensite appweb

5. Después tenemos que configurar el archivo hosts en /etc

$ sudo nano /etc/hosts

en el archivo agregamos nuestro sitio:

127.0.0.1    localhost
127.0.0.1    appweb

# The following lines are desirable for IPv6 capable hosts

6. Ahora reiniciamos o cargamos nuevamente la configuración de nuestro servidor apache

$ sudo service apache2 restart
   ó
$ sudo service apache2 reload

7. Por ultimo creamos un index.php agregandole la función phpinfo() en nuestro directorio virtual /home/miusuario/appweb, lo guardamos y probamos desde nuestro navegador

http://appweb

y nos debería listar la configuración de nuestro PHP.

Nota: si la carpeta donde guardaras tus aplicaciones se encuentra en /media y no se monta al inicio cuando arrancas tu servidor, podría generarte un error de permisos, por lo cual recomiendo que se monte esta unidad al arrancar el sistema, como se describe en el siguiente post: Montar particiones al inicio en linux


miércoles, 21 de mayo de 2014

Agregar headers de expiración (Add Expires headers)

Los encabezados (headers) de expiración nos sirven para indicar cuando expira un determinado tipo de archivo, esto hace que no sea necesaria una nueva carga del mismo si es que aun no ha expirado. Esto es muy útil para archivos del tipo imagen, vídeo, javascript y hojas de estilo entre otros, ya que nos reduce las solicitudes HTTP lo que nos lleva a la carga de nuestra página en un menor tiempo.

Si tenemos acceso a nuestro servidor podremos editar el archivo de configuración del apache.

Para CentOS, RedHat Fedora
$ sudo nano /etc/httpd/conf/httpd.conf

Para Ubuntu, Debian
$ sudo nano /etc/apache2/apache2.conf

Si no tuviesemos acceso al servidor podemos editar el archivo .htaccess de nuestro sitio o crearlo en caso de que no exista.

$ sudo nano /larutademisitio/.htaccess
Para cualquiera de los casos dentro del archivo, las lineas que debemos agregar o editar son las siguientes:

<IfModule mod_expires.c>
# Habilitar la expiración
ExpiresActive On

# Para las imágenes (1 mes)
ExpiresByType image/gif "access plus 1 months"
ExpiresByType image/png "access plus 1 months"
ExpiresByType image/jpg "access plus 1 months"
ExpiresByType image/jpeg "access plus 1 months"

# Para archivos CSS (1 semana)
# 60*60*24*7, de acuerdo a la modificación del archivo
ExpiresByType text/css M604800

# Para archivos JavaScript (2 meses)
ExpiresByType application/javascript "access plus 60 days"

# Directiva por default para los demás archivos
ExpiresDefault "access plus 1 months"

</IfModule>

Puedes adecuar el tiempo en que expirara cada archivo de acuerdo a tus necesidades, como recomendación es mejor darle mas tiempo a aquellos archivos que no cambien regularmente como las imagenes o javascript.

Posterior a ello, guardamos el archivo y reiniciamos el servicio de apache.

Para Ubuntu, Debian
$ sudo service apache2 restart

Para Centos, RedHat, Fedora
$ sudo service httpd restart

Nota: 
A continuación listamos los tipos de expiración que podemos agregar
  • years
  • months
  • weeks
  • days
  • hours
  • minutes
  • seconds
Así por ejemplo podemos colocar "access plus 4 weeks" para indicar que durara 4 semanas. 

También es posible asignar el tiempo de forma manual multiplicando segundos, minutos, horas, días según sea el caso. Por ejemplo para indicar 30 dias, seria 60(segundos) * 60(minutos) * 24 (horas) * 30 (días) = A2592000.

Ahora podemos usar M o A según se ajuste a nuestra necesidades:

  • M - Tiempo base sería la ultima modificación del archivo
  • A - Tiempo base sería el ultimo acceso del usuario al archivo

Entradas Populares