Archive for the ‘Plesk’ category

Plesk 9.5

March 5th, 2010

Siguiendo con la linea anterior de otras releases , Parallels ha liberado temporalmente su version 9.5 y aún no está disponible para los demás clientes.
Según este comentario en el foro de Parallels, sólo está disponible para ‘testear’
http://forum.parallels.com/showthread.php?t=99362

Pero lo cierto es que Parallels libera durante unas horas las nuevas releases para que algunos usuarios incautos las instalen y así probar qué tal funciona.

Dado que la release aún no ha sido liberada todo apunta a que Plesk 9.5 viene cargado de fallos. Mucho cuidadado con la nueva versión. Esperamos estar equivocados.

  • Share/Bookmark

[Plesk] Nueva actualizacion 9.5

February 22nd, 2010

Si tuvieramos que valorar la nota de Plesk no sería ni mucho menos un 9,5 ( sobresaliente ) si no más bien un 5,9 ( bien bajo jejeje ). Tras la tremenda oleada de cagadas que están teniendo ( sobretodo con qmail y postfix ) tenemos ya la release 9.5

Básicamente corrigen mogollón de fallos realtivos al webmail, qmail y posftix. Agregan soporte para Explorer 8, soporte para CloudLInux, pasarelas de pago, virtualizacion con Xen, HyperV, Wmware,etc.. y quizás dos o tres cosas que nos interesa a los administradores :

  •  Upgraded components: ProFTPD was upgraded to the version 1.3.2b, phpMyAdmin to the version 2.9.11, and Horde Application Framework to the versio
  • Cross-site scripting vulnerability was eliminated.
  • ProFTPD 1.3.1 was prone to a security vulnerability that allowed
    attackers to perform cross-site request forgery types of attacks
    – to resolve this issue, ProFTPD was upgraded to the version 1.3.2b.
  • [-] SpamAssassin spam filter incorrectly classified most of the messages delivered in the year 2010 as spam – issue resolved.

  • [-] If a message cannot be sent, sender receives a message with invalid field from=#@[] bug is fixed.

  • [-] Web statistics were not calculated properly when the piped logs feature was switched on – issue resolved.

Como podeis comprobar, cuatro cositas de nada más los ‘known bugs’

  • Share/Bookmark

[plesk] Failed to connect to database: User admin already has more than ‘max_user_connections’ active connections

February 17th, 2010

Algunas veces obtengo estos errores de Plesk Windows cuando están realizando el backup:

Backup error.
Failed to connect to database: User admin already has more than 'max_user_connections' active connections

Para solucionarlo vamos a ampliar las cantidad de conexiones por usario en nuestra base de datos:

notepad  %plesk_dir%\databases\mysql\data\my.ini

configuramos la variable a nuestro gusto, por ejemplo:

max_user_connections=50

Y ahora reiniciar Mysql

net stop mysql
net start mysql
  • Share/Bookmark

Plesk 9.2.3 ya soporta Debian 5.0 ( Lenny )

January 14th, 2010

Mucho tiempo ha tenido que pasar para que podamos actualizar nuestra Debian a Lenny no cargarnos la instalación de Plesk.

Podeis confirmar en las novedades de la versión 9.2.3 para sistemas basadas en paquetes .deb que Debian 5.0 está soportado.

Esperamos no encontrarnos con errores gordos con postfix como antaño.

La lista de sistemas soportados por Plesk actualmente es la siguiente:

  • Debian 3.1
  • Debian 4.0
  • Debian 5.0 New!
  • Ubuntu 6.06
  • Ubuntu 7.10
  • Ubuntu 8.04
  • Share/Bookmark

Parallels libera Plesk Windows 9.3 con mejoras para 2008

January 12th, 2010

Recientemente ha sido liberado Plesk 9.3 con mejoras de soporte par Hyper-V y compabilidad con sistema operativo Windows 2008

La lista de cambios :

Parallels Plesk Panel 9.3.0

  1. [+] Microsoft Windows Server 2008 R2 support added.
  2. [+] Microsoft Hyper-V Server 2008 support added.
  3. [+] MailEnable Standard 4.16 support added.
  4. [-] Certificates from repository of domain set on exclusive IP address are reset when domain backup is restored bug is fixed.
  5. [-] The “Applications” link appearing in the left frame for domain administrator’s main menu when applications management is not supported by license bug is fixed.
  6. [-] Panel freezing because of web applications installation in Windows 2008 bug is fixed.
  7. [-] In-place migration from IIS 6 to Parallels Plesk Panel hanging bug is fixed.
  • Share/Bookmark

[mysql] Reparar todas las tablas de todas las bases de datos

December 22nd, 2009

Para reparar todas las tablas de todas las bases de datos ( teniendo en cuenta que usamos Pleks ) en una sola linea tienes este churro:

for database in $(mysql --skip-column-names -uadmin -p`cat /etc/psa/.psa.shadow` -e "show databases" ); do echo "optmizing tables from $database"; for table in $(mysql --skip-column-names -uadmin -p`cat /etc/psa/.psa.shadow` -e "show tables" $database ); do echo "-> $table " ; mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e "OPTIMIZE TABLE $table" $database ; done ; done ;
  • Share/Bookmark

[debian] ValueError: unsupported format character ‘t’ (0×74) at index 8

December 11th, 2009

Me he encontrado con este problema al chequear una lista de correo en mi máquina con Plesk:

check_perms : chequea los permisos de ficheros y directorios de la estructura de mailman

# ./check_perms -f -v
comprobando el modo para /var/lib/mailman
    comprobando gid y modo de /var/lib/mailman/logs/post
    comprobando gid y modo de /var/lib/mailman/logs/error
    comprobando gid y modo de /var/lib/mailman/logs/qrunner
    comprobando gid y modo de /var/lib/mailman/logs/smtp
    comprobando gid y modo de /var/lib/mailman/logs/subscribe
    comprobando gid y modo de /var/lib/mailman/logs/smtp-failure
    comprobando gid y modo de /var/lib/mailman/logs/vette
    comprobando gid y modo de /var/lib/mailman/logs/bounce
    comprobando gid y modo de /var/lib/mailman/logs/locks
    comprobando gid y modo de /var/lib/mailman/mail
Traceback (most recent call last):
  File "./check_perms", line 380, in ?
    checkall()
  File "./check_perms", line 196, in checkall
    os.path.walk(d, checkwalk, STATE)
  File "/usr/lib/python2.4/posixpath.py", line 290, in walk
    func(arg, top, names)
  File "./check_perms", line 120, in checkwalk
    print _('%(path)s bad group (has: %(groupname)s, '
  File "/usr/lib/mailman/Mailman/i18n.py", line 90, in _
    return tns % dict
ValueError: unsupported format character 't' (0x74) at index 8

Según he visto comentado en varias fuentes es un bug debido a un problema con el juego de caracteres de la consola, por lo que utf8 está generando problemas. Hay que forzar a ejecutarlo con LANG=C

export  LC_ALL=C; export  LANG=C
./check_perms -f -v
  • Share/Bookmark

ayuda plesk : error al borrar un dominio

November 30th, 2009

Un error que sigue apareciendo aunque pasen versiones y versiones de Plesk ( desde la 7.4 a la 9.2 ) es la perdida de integridad referencial en algunas tablas. Esto provoca que a la hora de ejectuar algunas herramientas y falten datos se generen errores. En ese caso al borrar el dominio ‘delete.me’ nos aparece este mensaje :

0: class.MailManager.php:242
        MailManager::execWithException(string 'smart_exec', string 'mailmng', array, array, string 'lst')
1: class.MailManager.php:274
        MailManager->callMailManager(string 'remove-mailname', array)
2: class.MailManager.php:354
        MailManager->removeMailname(string 'sharoj.com', string 'delete')
3: cmd_mail.php3:1357
        mn_del(string '490')
4: class.DSMail.php:211
        DSMail->delete(boolean false)
5: class.PhDomain.php:358
        PhDomain->reset(integer '0', boolean true, boolean false)
6: class.BsDomain.php:330
        BsDomain->reset(integer '0')
7: class.BsDomain.php:302
      BsDomain->delete(integer '0')
8: class.BsDomain.php:536
        mdeleteDomains(array)
9: removeDomains.php3:42
        require(string '/opt/psa/admin/htdocs/domains/removeDomains.php3')
10: plesk.php:51

Tendremos que buscar manualmente donde está el problema y repararlo , directamente a la base de datos.

Comenzamos a buscar relaciones rotas entre objetos:

# mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 152938
Server version: 5.0.32-Debian_7etch10-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select id, name from domains where name = "delete.me";
+------+------------+
| id   | name       |
+------+------------+
| 1241 | delete.me  |
+------+------------+
1 row in set (0.00 sec)

Ya tenemos el ID del dominio, nos centramos en las cuentas de correo ya que el error se genera al borrar cuentas de correo. Vamos a ver que tablas hay en esta version de Plesk ( 9.2.3 )

mysql> show tables like '%mail%' ;
+------------------------+
| Tables_in_psa (%mail%) |
+------------------------+
| Webmails               |
| badmailfrom            |
| mail                   |
| mail_aliases           |
| mail_redir             |
| mail_resp              |
| mass_mail              |
| mass_mail_clients      |
| mass_mail_domains      |
+------------------------+
9 rows in set (0.00 sec)

La tabla que nos interesa es mail vamos a ver que esctructura tiene y vamos sacando datos:

mysql> desc mail ;
+---------------+------------------------------------------+------+-----+---------+----------------+
| Field         | Type                                     | Null | Key | Default | Extra          |
+---------------+------------------------------------------+------+-----+---------+----------------+
| id            | int(10) unsigned                         | NO   | PRI | NULL    | auto_increment |
| mail_name     | varchar(245)                             | NO   |     |         |                |
| perm_id       | int(10) unsigned                         | NO   | MUL |         |                |
| postbox       | enum('false','true')                     | NO   |     | false   |                |
| account_id    | int(10) unsigned                         | NO   | MUL |         |                |
| redirect      | enum('false','true')                     | NO   |     | false   |                |
| redir_addr    | varchar(255)                             | YES  |     | NULL    |                |
| mail_group    | enum('false','true')                     | NO   |     | false   |                |
| autoresponder | enum('false','true')                     | NO   |     | false   |                |
| spamfilter    | enum('false','true')                     | NO   |     | true    |                |
| virusfilter   | enum('none','incoming','outgoing','any') | NO   |     | none    |                |
| mbox_quota    | bigint(20)                               | NO   |     | -1      |                |
| dom_id        | int(10) unsigned                         | NO   | MUL |         |                |
+---------------+------------------------------------------+------+-----+---------+----------------+
13 rows in set (0.01 sec)

mysql> select * from mail where dom_id = 1241;
+-----+-----------+---------+---------+------------+----------+------------+------------+---------------+------------+-------------+------------+--------+
| id  | mail_name | perm_id | postbox | account_id | redirect | redir_addr | mail_group | autoresponder | spamfilter | virusfilter | mbox_quota | dom_id |
+-----+-----------+---------+---------+------------+----------+------------+------------+---------------+------------+-------------+------------+--------+
| 490 | delete.me |    2202 | true    |       2204 | false    |            | false      | false         | false      | incoming    |         -1 |   1241 |
+-----+-----------+---------+---------+------------+----------+------------+------------+---------------+------------+-------------+------------+--------+
1 row in set (0.00 sec)

Vemos que tiene al menos una cuenta de correo para el usuario 2204, vamos a buscar este usuario en la tabla accounts, ya que el id es accounts_id

mysql> show tables like '%acco%'
    -> ;
+------------------------+
| Tables_in_psa (%acco%) |
+------------------------+
| accounts               |
+------------------------+
1 row in set (0.00 sec)

mysql> select * from accounts where id = 2204 ;
Empty set (0.01 sec)

Pues no está, aquí tenemos el problema, no existe la información del usuario pero sí el buzón.
lo más comodo es borar la entrada en la base de datos de la cuenta de correo. Dado que vamos a borrar el dominio nos es indiferente conservarlo.

mysql> delete from mail where id =490 limit 1 ;
Query OK, 1 row affected (0.03 sec)

De otra forma , habíamos dado de alta una fila en accounts con el id 2204 .

  • Share/Bookmark

He migrado mi web y ahora no me salen los acentos !!!

November 20th, 2009

Suele ocurrir cuando migramos de un sistema a otro que el juego de caracteres del sistema no es el mismo. Esto unido a que la mayoría de los no profesionales ni saben ni les interesa codificar sus webs correctamente genera horror y caos tras una migración.

Frases célebres :

  • me han hackeado la web, las eñes (ñ) no salen
  • no salen los acentos, arreglamelo
  • algo pasa con el office que me salen símbolos en vez de tildes , eñes y exclamaciones.
  • y la mítica de no me funciona internet…

Para evitar que esta tortura se dilate en el tiempo tengo un copy paste bastante elegante que ahorra tiempo:

cd /var/www/vhosts/tudominio.ext/httpdocs
alias cp='cp'

for file in $( find -name "*.htm*" ); do echo "convirtiendo $file.."; cat $file |iconv -flatin1 -t utf8> ../tmp.htm; cp ../tmp.htm $file ; done ;

rm -f ../tmp.htm

Basicamente convertimos todos los ficheros de latin1 a utf8 usando un fichero temporal fuera del httpdocs para que no nos convierta el propio fichero temporal.

RECOMENDACIÓN:
Elegir un fichero, hacer el iconv a mano y ver que aparece correctamente en el explorador ya que apache también puede estar configurado para usar por defecto un juego de caracteres u otro. O que el cambio no sea de latin1 a utf8 sino al revés. Eso ya es cosa vuestra.

  • Share/Bookmark

Agrengando lenguaje Vasco al webmail de Plesk: Horde

November 12th, 2009

Un requisito relativamente fácil como puede ser agregar un idioma a Horde ( gestor de mail vía web y software libre ) puede complicarse al tener que realizarlo en un entorno paquetizado y cerrdado como es Plesk. El problema de modificar este componente ( u otros de Plesk ) es que futuras versiones o parches de Plesk puedes modificar o machacar nuestros cambios. Además de no conocer el impacto real de nuestras modificaciones.

Desde el soporte de Parallels nos han indicado que no existe problema en agregar un nuevo lenguaje a Plesk y nos indican la guia de instalacion de idiomas en Horde http://www.horde.org/horde/docs/?f=po_README.html

Primero verificamos que version tenemos de Horde instalada. Vamos a intentar siempre usar las mismas versiones para quitarnos de problemas

# rpm -qa | grep horde
psa-horde-3.1.7-cos5.build92090714.19

Creamos el directorio para preparar la compilacion de los idiomas ( hay que generar los .mo a partir de ficheros .po )

mkdir -p /usr/src/horde
cd /usr/src/horde

Nos bajamos nuestra versión de horde:

wget http://ftp.horde.org/pub/horde/horde-3.1.7.tar.gz
tar zxvf horde-3.1.7.tar.gz

Ahora nos bajamos por separado los ficheros .po del cvs y que no están en la distribucion 3.1.7.
Es muy importante no mezclar ficheros de distribuciones para evitar problemas. La estructura de directorios se almacenará en el directorio ‘horde’

export CVSROOT=:pserver:cvsread@anoncvs.horde.org:/repository
cvs login
# password: horde
# cvs co horde/po/ horde/locale horde/lib/core.php
cvs co horde/po/ horde/locale

Como solo queremos los ficheros de cadenas, mezclar phps de distinas versiones nos dará errores de clases no encontradas

cp -r horde/po/*_* horde-3.1.7/po/
cp -r horde/locale/*_* horde-3.1.7/locale/

Tenemos algunos requistios que se pueden leer en el fichero REAME.

cd /usr/src/horde-po
wget http://download.pear.php.net/package/File_Find-1.3.0.tgz
wget http://download.pear.php.net/package/Console_Table-1.1.3.tgz

mkdir -p pear/Console
mkdir -p pear/File

tar zxvf File_Find-1.3.0.tgz -C pear/File/ *Find.php
mv pear/File/File_Find-1.3.0/Find.php pear/File/

tar zxvf Console_Table-1.1.3.tgz -C pear/Console/ *Table.php
mv pear/Console/Console_Table-1.1.3/* pear/Console/

También necesitamos la herramienta gettext al menos la version 0.12

yum install gettext

Dado que ejecutamos php con la configuracion de Plesk estamos limitados a la ejecución de comandos bajo safe_mode. En la cabecera de translator.php, agregamos las rutas necesarias ( include_path ) y con php -n hacemos que no cargue el /etc/php.ini para saltarnos el safe_mode

#!/usr/bin/php -qn
<?php
ini_set ("include_path", "/usr/src/horde/horde-3.1.7/lib:/usr/share/psa-pear/:/usr/src/horde/pear/:." );

Ahora generamos los ficheros:

./translator.php make

Copiamos los ficheros de cadenas a nuestra ubicación de la instalación de Plesk. Cuidado, no copiar ningún php de la rama del cvs a nuestra rama estable.

cp /usr/src/horde/horde-3.1.7/locale/* /usr/share/psa-horde/locale/

Por último editar la configuracón de horde de plesk para que aparezca el nuevo idioma disponible:

/etc/psa/webmail/horde/horde/nls.php
$nls['languages']['eu_ES'] = 'Euskera';

Aún no he tenido la oportunidad de problarlo pero casi seguro que con alguna alguna actualización, machaca este fichero y hay que volver a editarlo para agregar el idioma.

  • Share/Bookmark