viernes, 6 de julio de 2012

Instalando Drupal

       Esta semana en el trabajo he tenido que realizar un proyecto de publicación de revistas para una importante empresa de Telefónia.
       La parte de sistemas consistia en la instalación de un servidor Drupal con acceso a una bbdd (he utulizado mysql). Drupal es simplemente un gesto de contenidos, por lo que es una buena opción para la publicación de revistas.
      Para la instalación he optado por la versión 7 de Drupal.
El primer inconveniente que he tenido es como acoplarlo a una plataforma existente, debido a los requisitos de sistema.
      Para el caso de utilizar una bbdd mysql, los requisitos de Drupal 7.14 son:
- MySQL 5.0.15 o superior con PDO (PHP Data Object)
- PHP 5.2.5 o superior.

Por lo que la plataforma que he utilizado ha sido un frontal web con Windows y Apache. Y un servidor de backend Mysql.

El primer inconveniente que se puede encontrar uno es con php.
La versión de php que he utilizado es: php-5.2.17-Win32-VC6-x86.zip
En el fichero php.ini se encuentra una linea donde se indican las extensiones que cargará php al arrancar.
Por defecto la ruta de las extensiones viene indicada como 
 
extension_dir = "./"

Sin embargo en windows esta ruta a veces no funciona correctamente (se puede ver configurando una pagina de info.php y viendo que sale en blanco).

La solución pasa por incluir la ruta absoluta.

extension_dir = "C:/php/ext/"

 Para activar el PDO basta con descomentar las siguientes 2 lineas en el php.ini

extension=php_pdo.dll
extension=php_pdo_mysql.dll.


y reiniciar apache.

Es posible que no se establezca la conexión con mysql desde php. Para ello se puede resolver añadiendo el fichero  c:/php/libmysql.dll  a la carpeta de windows o añadiendo c:/php al path de la maquina.

Para la instalacion de Drupal, basta con bajar el software de drupal y descomprimirlo en la carpeta host del apache.

La version descargada ha sido:  Acquia Drupal full install (.zip)

Acceder a la web

http://localhost/drupal/install.php

e indicar en el wizard los datos de nuestro mysql.




martes, 29 de mayo de 2012

Instalacion Centos6 (64bits) + Pandora 4.0.1

Pandora FMS es una herramienta software de monitorización , similar a Nagios, que ayuda a detectar problemas antes de que ocurran, gestionando sus activos e intraestructura en servidores, comunicaciones y aplicaciones. 
Como elementos interesantes y diferenciadores de Nagios de este producto son :
- Que es mas sencillo de implantar que Nagios
- Que es un producto español.
Como inconvenientes podemos destacar que no esta tan extendido como el anterior.


Para realizar una instalacion:


a) Se hará una instalación de Centos. Respecto a esto existen multitu de guias por internet.
b) Configuraremos yum para resolver automáticamente las dependencias.
c) Verificaremos que esta apache instalado y levantado y php.
d) Procederemos a descargar los paquetes de pandora de la web.
e) Procederemos a su instalación.
[user@localhost]# rpm -ivh pandorafms_server-4.0-1.centos5.noarch.rpm pandorafms_console-4.0-1.centos5.noarch.rpm
error: Failed dependencies:
wmic is needed by pandorafms_server-4.0-1.noarch
perl-SNMP is needed by pandorafms_server-4.0-1.noarch
He intentado resolver estas dependencias, instalando el paquete:
# yum install net-snmp-perl
Pero esto no resuelve el problema. La solución viene por buscar el paquete: perl-SNMP-5.3.2.2-1.i386.rpm e instalarlo.

Aun queda por resolver la dependencia del paquete wmic.
 Para ello es necesario descargar el fichero: wmic-4.0.0SVN-2.1.el5.centos.noarch.rpm

 Sin embargo si se instala mediante: rpm -ivh wmic-4.0.0SVN-2.1.el5.centos.noarch.rpm
Nos dará errores de dependencias:

 [user@localhost]# rpm -ivh wmic-4.0.0SVN-2.1.el5.centos.noarch.rpm warning:
wmic-4.0.0SVN-2.1.el5.centos.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 155987ef: NOKEY error: Failed dependencies: libc.so.6 is needed by wmic-4.0.0SVN-2.1.noarch libc.so.6(GLIBC_2.0) is needed by wmic-4.0.0SVN-2.1.noarch libc.so.6(GLIBC_2.1) is needed by wmic-4.0.0SVN-2.1.noarch libc.so.6(GLIBC_2.1.2) is needed by wmic-4.0.0SVN-2.1.noarch libc.so.6(GLIBC_2.1.3) is needed by wmic-4.0.0SVN-2.1.noarch libc.so.6(GLIBC_2.2) is needed by wmic-4.0.0SVN-2.1.noarch libc.so.6(GLIBC_2.2.3) is needed by wmic-4.0.0SVN-2.1.noarch libc.so.6(GLIBC_2.3) is needed by wmic-4.0.0SVN-2.1.noarch libc.so.6(GLIBC_2.3.2) is needed by wmic-4.0.0SVN-2.1.noarch libcrypt.so.1 is needed by wmic-4.0.0SVN-2.1.noarch libdl.so.2 is needed by wmic-4.0.0SVN-2.1.noarch libdl.so.2(GLIBC_2.0) is needed by wmic-4.0.0SVN-2.1.noarch libdl.so.2(GLIBC_2.1) is needed by wmic-4.0.0SVN-2.1.noarch libpam.so.0 is needed by wmic-4.0.0SVN-2.1.noarch libpam.so.0(LIBPAM_1.0) is needed by wmic-4.0.0SVN-2.1.noarch libpopt.so.0 is needed by wmic-4.0.0SVN-2.1.noarch libresolv.so.2 is needed by wmic-4.0.0SVN-2.1.noarch libresolv.so.2(GLIBC_2.2) is needed by wmic-4.0.0SVN-2.1.noarch libsasl2.so.2 is needed by wmic-4.0.0SVN-2.1.noarch 

Para resolver esta dependencias, la manera de hacerlo es:  yum install wmic-4.0.0SVN-2.1.el5.centos.noarch.rpm


Con esto se resuelven las dependencias.


[user@localhost]# yum install wmic-4.0.0SVN-2.1.el5.centos.noarch.rpm
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Examining wmic-4.0.0SVN-2.1.el5.centos.noarch.rpm: wmic-4.0.0SVN-2.1.noarch
Marking wmic-4.0.0SVN-2.1.el5.centos.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package wmic.noarch 0:4.0.0SVN-2.1 will be installed
--> Processing Dependency: libc.so.6 for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libc.so.6(GLIBC_2.0) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libc.so.6(GLIBC_2.1) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libc.so.6(GLIBC_2.1.2) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libc.so.6(GLIBC_2.1.3) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libc.so.6(GLIBC_2.2) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libc.so.6(GLIBC_2.2.3) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libc.so.6(GLIBC_2.3) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libc.so.6(GLIBC_2.3.2) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libcrypt.so.1 for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libdl.so.2 for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libdl.so.2(GLIBC_2.0) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libdl.so.2(GLIBC_2.1) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libpam.so.0 for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libpam.so.0(LIBPAM_1.0) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libpopt.so.0 for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libresolv.so.2 for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libresolv.so.2(GLIBC_2.2) for package: wmic-4.0.0SVN-2.1.noarch
--> Processing Dependency: libsasl2.so.2 for package: wmic-4.0.0SVN-2.1.noarch
--> Running transaction check
---> Package cyrus-sasl-lib.i686 0:2.1.23-13.el6 will be installed
--> Processing Dependency: libdb-4.7.so for package: cyrus-sasl-lib-2.1.23-13.el6.i686
---> Package glibc.i686 0:2.12-1.47.el6 will be installed
--> Processing Dependency: libfreebl3.so for package: glibc-2.12-1.47.el6.i686
--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.12-1.47.el6.i686
---> Package pam.i686 0:1.1.1-10.el6 will be installed
--> Processing Dependency: libcrack.so.2 for package: pam-1.1.1-10.el6.i686
--> Processing Dependency: libaudit.so.1 for package: pam-1.1.1-10.el6.i686
--> Processing Dependency: libselinux.so.1 for package: pam-1.1.1-10.el6.i686
---> Package popt.i686 0:1.13-7.el6 will be installed
--> Running transaction check
---> Package audit-libs.i686 0:2.1.3-3.el6 will be installed
---> Package cracklib.i686 0:2.8.16-4.el6 will be installed
---> Package db4.i686 0:4.7.25-16.el6 will be installed
---> Package libselinux.i686 0:2.0.94-5.2.el6 will be installed
---> Package nss-softokn-freebl.i686 0:3.12.9-11.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================
 Package                     Arch            Version                 Repository                                     Size
=========================================================================================================================
Installing:
 wmic                        noarch          4.0.0SVN-2.1            /wmic-4.0.0SVN-2.1.el5.centos.noarch          7.7 M
Installing for dependencies:
 audit-libs                  i686            2.1.3-3.el6             base                                           59 k
 cracklib                    i686            2.8.16-4.el6            base                                           70 k
 cyrus-sasl-lib              i686            2.1.23-13.el6           base                                          135 k
 db4                         i686            4.7.25-16.el6           base                                          580 k
 glibc                       i686            2.12-1.47.el6           base                                          4.3 M
 libselinux                  i686            2.0.94-5.2.el6          base                                          107 k
 nss-softokn-freebl          i686            3.12.9-11.el6           base                                          116 k
 pam                         i686            1.1.1-10.el6            base                                          656 k
 popt                        i686            1.13-7.el6              base                                           39 k

Transaction Summary
=========================================================================================================================
Install      10 Package(s)

Total size: 14 M
Total download size: 6.0 M
Installed size: 25 M
Is this ok [y/N]: y
Downloading Packages:
(1/9): audit-libs-2.1.3-3.el6.i686.rpm                                                            |  59 kB     00:00
(2/9): cracklib-2.8.16-4.el6.i686.rpm                                                             |  70 kB     00:00
(3/9): cyrus-sasl-lib-2.1.23-13.el6.i686.rpm                                                      | 135 kB     00:00
(4/9): db4-4.7.25-16.el6.i686.rpm                                                                 | 580 kB     00:00
(5/9): glibc-2.12-1.47.el6.i686.rpm                                                               | 4.3 MB     00:00
(6/9): libselinux-2.0.94-5.2.el6.i686.rpm                                                         | 107 kB     00:00
(7/9): nss-softokn-freebl-3.12.9-11.el6.i686.rpm                                                  | 116 kB     00:00
(8/9): pam-1.1.1-10.el6.i686.rpm                                                                  | 656 kB     00:00
(9/9): popt-1.13-7.el6.i686.rpm                                                                   |  39 kB     00:00
-------------------------------------------------------------------------------------------------------------------------
Total                                                                                     15 MB/s | 6.0 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : glibc-2.12-1.47.el6.i686                                                                             1/10
  Installing : nss-softokn-freebl-3.12.9-11.el6.i686                                                                2/10
  Installing : db4-4.7.25-16.el6.i686                                                                               3/10
  Installing : cyrus-sasl-lib-2.1.23-13.el6.i686                                                                    4/10
  Installing : libselinux-2.0.94-5.2.el6.i686                                                                       5/10
  Installing : audit-libs-2.1.3-3.el6.i686                                                                          6/10
  Installing : cracklib-2.8.16-4.el6.i686                                                                           7/10
  Installing : pam-1.1.1-10.el6.i686                                                                                8/10
  Installing : popt-1.13-7.el6.i686                                                                                 9/10
  Installing : wmic-4.0.0SVN-2.1.noarch                                                                            10/10

Installed:
  wmic.noarch 0:4.0.0SVN-2.1

Dependency Installed:
  audit-libs.i686 0:2.1.3-3.el6                cracklib.i686 0:2.8.16-4.el6      cyrus-sasl-lib.i686 0:2.1.23-13.el6
  db4.i686 0:4.7.25-16.el6                     glibc.i686 0:2.12-1.47.el6        libselinux.i686 0:2.0.94-5.2.el6
  nss-softokn-freebl.i686 0:3.12.9-11.el6      pam.i686 0:1.1.1-10.el6           popt.i686 0:1.13-7.el6

Complete!


Una vez instalado el paquete wmic, ya se puede instalar sin problemas el paquete de pandora:  yum install pandorafms*







miércoles, 16 de mayo de 2012

[Mysql] Consultas con fecha en Mysql

En esta entrada voy a comentar unas cuantas sentencias mysql relacionadas con fechas que me han sido utiles.

Obtener la fecha y hora en MySQL

Código :
select now();   #   ejemplo:  '2012-05-12 12:12:43'

Obtener solo día mes y año en MySQL

Código :
select CURDATE();  # ejemplo: '2012-05-12'  #sin hora

Obtener hora actual en MySQL

Código :
select curTime(); #Selecciona la hora

Obtener día, mes, año, u hora de una fecha en MySQL


El formato de la fecha debe ser YYYY-MM-DD HH:MM:SS, aunque para obtener el año, mes o día solo es necesario YYYY-MM-DD
Código :
select YEAR(NOW());  #Selecciona el año
select MONTH (NOW()) as mes;  #Selecciona el mes
select DAY(NOW()) as dia; #Selecciona el día 
select TIME(NOW()) as hora;  #Selecciona la hora
Select LAST_DAY(NOW()); # Selecciona el ultimo dia del mes

También existe MICROSECOND, SECOND, MINUTE, HOUR, MONTHNAME, etc.

Dar formato a una fecha en MySQL


Para esto usamos Date_format, DATE_FORMAT(fecha,formato); ejemplo:
Código :
select Date_format(now(),'%Y/%M/%d'); # '2012/March/12'
select Date_format(now(),'%Y-%M-%d %h:%i:%s %p'); #'2012-March-12 12:34:29 AM'
select Date_format(now(),'%W %d %M %Y'); # 'Tuesday 12 March 2010'
select Date_format(now(),'El año actual es %Y'); # 'El año actual es 2012'

Estos son algunos de los especificadores que tenemos disponibles para dar formato a una fecha, la lista completa pueden verla en los manuales de MySql:
Código :
- %d #Día del mes numérico (00...31)
- %H #Hora (00...23)
- %h #Hora (01...12)
- %i #Minutos, numérico (00...59)
- %M #Nombre mes (January...December)
- %m #Mes, numérico (00...12)
- %p #AM o PM
- %W #Nombre día semana (Sunday...Saturday)
- %Y #Año, numérico, cuatro dígitos
- %y #Año, numérico (dos dígitos)
- %s #Segundos (00...59)


Sumar o restar días a una fecha con DATE_ADD o DATE_SUB en MySQL


DATE_ADD(fecha,INTERVAL valor tipo), DATE_SUB(fecha,INTERVAL valor tipo)

Sumar tiempo en MySQL

Código :
select DATE_ADD(NOW(),INTERVAL 20 DAY); # Agrega 20 días a la fecha actual
select DATE_ADD(NOW(),INTERVAL 30 MINUTE); # Agrega 30 minutos a la fecha actual
select DATE_ADD(NOW(),INTERVAL 50 YEAR); #Agrega 50 años a la fecha actual
select DATE_ADD(NOW(),INTERVAL '10-5' YEAR_MONTH); #Agrega 10 años 5 meses a la fecha actual


Restar tiempo en MySQL

Código :
select DATE_SUB(NOW(),INTERVAL 8 YEAR); #Resta 8 años a la fecha actual 
select DATE_SUB(NOW(),INTERVAL 24 HOUR); #Resta 24 horas a la fecha actual
select DATE_SUB(NOW(),INTERVAL '7-2' YEAR_MONTH); #Resta 7 años dos meses a la fecha actual

Estos son algunos de los argumentos que podemos usar, para una lista completa consulten los manuales de MySql
Código :
SECOND #Segundos
MINUTE #Minutos
HOUR #Horas
DAY #Días
MONTH #Meses
YEAR #Años
YEAR_MONTH #'Años-meses'
DAY_HOUR #'Días Horas'


Restar dos fechas


DATEDIFF(fecha_1,fecha_2) devuelve el número de días entre la fecha fecha_1 y la fecha_2
Código :
SELECT DATEDIFF(NOW(),'2012-11-02'); #cuantos días han pasado
SELECT DATEDIFF(NOW(),'2012-03-20'); #Cuantos días faltan

martes, 17 de abril de 2012

[Linux] Como buscar texto dentro de ficheros

En ciertos casos me he visto en la necesidad de buscar texto en ficheros de manera recursiva a partir de una carpeta:
La manera en la que lo suelo hacer es:
find ruta -type f | xargs grep cadena_a_buscar
Donde:
  • ruta: es el directorio a partir del cual queremos buscar.
  • cadena_a_buscar: Es el texto que quiero encontrar.
Ejemplo: buscar el texto “status” en el directorio actual:

find . -type f | xargs grep status