Todas las entradas de: Maks Skamasle

Acerca de Maks Skamasle

Maks Skamasle, sysadmin, fotógrafo aficionado y me gusta el tomar té por las madrugadas cuando no hay ruido ni sol.

Instalar ncurses-devel

Iba a compilar un kerel en debian y me hacia falta el paquete ncurses para configurar los menus, el programa me decía que instalara ncurses-devel pero tal paquete no existe actualmente, buscando por ahí me encontre que viene dentro del paquete libncurses5-dev

Así que instalamos y listo:

apt-get install libncurses5-dev

Una tontería pero es así, no se por que los errores siempre dicen, instala tal paquete, pero el paquete tiene otro nombre o es una dependencia de otro paquete y no se puede instalar directamente :/

Instalar java en debian 7 con apt-get [Repos]

Para instalar java en debian podemos usar los repos disponibles en ubuntu

Solo añadimos al sources.list estos repos:

deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main
deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main

Añadimos la key para que no salte el mensaje de que no estan verificados.

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886

Ahora apt-get update y luego podemos instalar:

apt-get install oracle-java7-installer oracle-java7-set-default

Eso es todo.

Cpanel nuevos sitema de backups desde SSH

Desde que salio el nuevo sistema de backups no son solo más que problemas, es bastante bueno si, ya era hora de que se pudieran guardar varios backups semanales, al estilo de plesk que lo tiene desde siempre, pero tiene un problema este nuevo sistema como que el otro no tenia y es que se para solo y se desactiva el backup ftp si tarda mucho tiempo en ejecutarse, esa es la gran pega.

Pero bueno, no es tan grave, no siempre pasa y si pasa te avisa y si nos molesta podemos ejecutar los dos sistemas de backups a la vez, que si bien parece una tonteria no lo es.

Podemos configurar uno para que a diario a haga backups de las bases de datos y el otro una vez por semana de bases de datos y archivos, tal vez es una de las ventajas de tener dos sistemas de backups.

Ejecutar backup desde ssh

Toda la vida el comando era este:

/script/cpbackup

Y sigue siendo ese, pero solo para el backup legacy, para el nuevo sistema de backups tenemos que ejecutarlo con este otro comando:

/usr/local/cpanel/bin/backup

Script en php para probar conexión a la base de datos postgreSQL

Para probar que la conexión este funcionando bien podemos crear un script .php cualquiera como prueba.php y ponemos este código:

<?php
$user = 'usuario';
$passwd = 'contraseña';
$db = 'nombre de la base de datos';
$port = 5432;
$host = 'localhost';
$strCnx = "host=$host port=$port dbname=$db user=$user password=$passwd";
$cnx = pg_connect($strCnx) or die ("Error de conexion. ". pg_last_error());
echo "Conexion exitosa <hr>";
?>

Acedemos y si dice que la conexión fue exitosa todo funciona y si no tendremos que revisar los logs de posrgreSQL

PostgreSQL Logs

Los logs estan en :

/var/lib/pgsql/data/pg_log/

El nombre es postgresql-DIAdeLAsemana.log

Cargar un subdirectorio en el index / con htaccess

Instalar web en subdirectorio pero cargarla en el index

Aveces por ciertas razones necesitamos tener nuestra página web en un subdirectorio y no en el public_html, pero necesitamos que el contenido se vea en el index, ejemplo:

/home/skamasle/public_html -> este es el index skamasle.com

Pero por algún motivo queremos que nuestra web este en:

/home/skamasle/public_html/blog , pero que al entrar a skamasle.com se cargue el contenido de blog sin que aparezca la url skamasle.com/blog.

Pues bien, podemos hacerlo con htaccess de esta manera:

RewriteCond %{HTTP_HOST} ^skamasle.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.pruebas.skamasle.com$
RewriteCond %{REQUEST_URI} !blog/
RewriteRule (.*) /blog/$1 [L]

Otras soluciones

Por la web encontramos otras soluciones como esta:

RewriteEngine On

# Map http://www.example.com to /site.
RewriteRule ^$ /site/ [L]

# Map http://www.example.com/x to /site/x unless there is a x in the web root.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/site/
RewriteRule ^(.*)$ /site/$1

# Add trailing slash to directories within /site
# This does not expose the internal URL.
RewriteCond %{SCRIPT_FILENAME} -d
RewriteRule ^site/(.*[^/])$ http://www.example.com/$1/ [R=301] 

Y una larga discusión sobre el tema en este enlace: http://www.webmasterworld.com/apache/4095623.htm

Otra variante en que encontramos en serverfault:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?site.com$
RewriteCond %{REQUEST_URI} !^/subdir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subdir/$1
RewriteCond %{HTTP_HOST} ^(www.)?site.com$
RewriteRule ^(/)?$ subdir/index.php [L]

En este enlace: http://stackoverflow.com/questions/990392/htaccess-rewrite-to-redirect-root-url-to-subdirectory

También en el foro de drupal se habla del asunto:

Drupal instalado en subdirectorio pero cargando en el index

https://drupal.org/node/144643
Options -Indexes
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} !^www\.mysite\.com$ [NC]
RewriteRule .* http://www.mysite.com/	[L,R=301]
RewriteRule ^$ drupal/index.php [L]
RewriteCond %{DOCUMENT_ROOT}/drupal%{REQUEST_URI} -f
RewriteRule .* drupal/$0 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* drupal/index.php?q=$0 [QSA]

Anti – Malware Linux – Escanear carpetas

Uno de los mejores y más usados antimalware de linux es el de rfxn, bueno para detectar shells aunque por ahora no me esta detectando todo, hay uno comercial que va un poco mejor, pero este cada vez mejora más:

Descargamos e instalamos:

wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar xfz maldetect-current.tar.gz
cd maldetect-*
./install.sh

Podemos configurarlo y ejecutarlo con un cron, en la configuración podemos especificar una dirección de correo para que nos mande emails si encuentra algo.

 nano /usr/local/maldetect/conf.maldet

Uso:

maldet --scan-all /home/carpeta

Anti Malware para WHM /cPanel

Si buscan un anti malware comercial que se integre con whm uno de los mejores es el de pyxsoft:

http://www.pyxsoft.com/en/installation.html

PHPMYADMIN acceder a bases de datos remotas.

Pendiente de explicación…….

Podemos acceder a varios servidores mysql desde un phpmyadmin, no es complicado el asunto pero por ahora no tengo tiempo para explicarlo, el truco esta en el archivo de configuración: config.inc.php y este código:

Si estamos en localhost y queremos definir las claves para no estar poniendolas.

$i++;
$cfg['Servers'][$i]['host']          = 'ip-host';
$cfg['Servers'][$i]['port']          = '-puerto-o-en-blanco-para-default';
$cfg['Servers'][$i]['socket']        = '-socket-o-enblanco';
$cfg['Servers'][$i]['connect_type']  = 'tcp';
$cfg['Servers'][$i]['extension']     = 'mysqli';
$cfg['Servers'][$i]['compress']      = FALSE;
$cfg['Servers'][$i]['auth_type']     = 'config';
$cfg['Servers'][$i]['user']          = 'username';
$cfg['Servers'][$i]['password']      = 'password';

Este otro si es un server publico y queremos poner la clave siempre que se escoja un lugar:

$i++;
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['host'] = 'host-server-o-ip';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = false;

Lo repetimos tantas veces como servidores tengamos ( cambiando los datos claro ) y es todo.

En cuanto pueda ( la otra semana seguro ) daré más detalles.

Forzar las WWW con NGINX

Para forzar que nuestro dominio cargue directamente con las www y evitar algunos errores de «este dominio no esta redirigiendo correctamente» en el caso de wordpress y otros cms en los que en la configuración ponemos que cargue con www pero que aún así a veces deja acceder sin las www, en nginx basta con una redirección:

Con este código lo solucionamos:

Redirigir a WWW con NGINX

server {
    listen       80;
    server_name  skamasle.com;
    return       301 http://www.skamasle.com$request_uri;
}

Pero es importante tener dos directivas server, un ejemplo, una directiva normal puede ser:

server {
        listen *:80;
        server_name skamasle.com www.skamasle.com;
        root   /var/www/web;
        index index.html index.htm....................... etc
}

O sea en server_name definidos los dos dominios, así que tenemos que separar a una directiva aparte, skamasle.com en una sección server para hacer la redirección y www.skamasle.com en la directiva server principal si no, no funciona.

NOTA para versiones viejas de nginx se usaba rewrite:

server {
    server_name  skamasle.com;
    rewrite ^(.*) http://www.skamasle.com$1 permanent;
}

Usar rewrite es menos eficiente, aunque ya nadie usa versiones viejas de nginx y con el return no tendremos problemas en ninguna versión.

Quitar las WWW con nginx

server {
    server_name www.skamasle.com;
    return 301 $scheme://skamasle.com$request_uri;
}

Velocidad de Discos VPS de leaseweb.

Hice unas pruebas en un VPS de leaseweb como es costumbre probar y reprobar VPS, en este caso:

3 cores:

processor	: 2
vendor_id	: GenuineIntel
cpu family	: 6
model		: 13
model name	: QEMU Virtual CPU version (cpu64-rhel6)
stepping	: 3
cpu MHz		: 2400.004
cache size	: 4096 KB
fpu		: yes
fpu_exception	: yes
cpuid level	: 4

3 gigas de RAM

MemTotal:        3922688 kB

Disco: 70 gigas

Velocidad de del disco para copiar,

16384+0 records in
16384+0 records out
1073741824 bytes (1,1 GB) copied, 21,544 s, 49,8 MB/s

Bastante lento, aunque es un VPS viejo, no hay vps en leaseweb con esta capacidad, ni con 70 gigas de disco ni con 3 gigas de ram y los nuevos deberán tener más velocidad ya que son raid10 (SAN Storage, RAID 10)