<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hosting Al Descubierto &#187; Soporte</title>
	<atom:link href="http://hostingaldescubierto.com/wordpress/category/soporte/feed/" rel="self" type="application/rss+xml" />
	<link>http://hostingaldescubierto.com/wordpress</link>
	<description>Ayuda plesk  hosting, servidores dedicados y virtuales. ¿ problemas con spam, migraciones, installar aplicaciones ? podemos ayudarte</description>
	<lastBuildDate>Thu, 05 Apr 2012 16:58:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[debian] xulrunner</title>
		<link>http://hostingaldescubierto.com/wordpress/2011/10/08/debian-xulrunner/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=debian-xulrunner</link>
		<comments>http://hostingaldescubierto.com/wordpress/2011/10/08/debian-xulrunner/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 10:39:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[debian]]></category>
		<category><![CDATA[Soporte]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2011/10/08/debian-xulrunner/</guid>
		<description><![CDATA[Otro error actualizando Debian esta mañana. Al actualizar el sistema y abrir Iceweasel&#8230;. cataplas !!!!! Error de lectura XML: entidad no definida Ubicación: jar:file:///usr/lib/xulrunner-7.0/omni.jar!/chrome/toolkit/content/global/netError.xhtml Número de línea 338, columna 43: &#60;h1 id="et_corruptedContentError"&#62;&#38;corruptedContentError.title;&#60;/h1&#62; ------------------------------------------^ Así que lo de siempre, googlear y encuentro un bug reportado en http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=643862 Hacen referencia a que es causa de un paquete [...]]]></description>
			<content:encoded><![CDATA[<p>Otro error actualizando Debian esta mañana.</p>
<p>Al actualizar el sistema y abrir Iceweasel&#8230;. cataplas !!!!!</p>
<pre>
Error de lectura XML: entidad no definida
Ubicación: jar:file:///usr/lib/xulrunner-7.0/omni.jar!/chrome/toolkit/content/global/netError.xhtml
Número de línea 338, columna 43:        &lt;h1 id="et_corruptedContentError"&gt;&amp;corruptedContentError.title;&lt;/h1&gt;
------------------------------------------^
</pre>
<p>Así que lo de siempre, googlear y encuentro un bug reportado en <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=643862" target="_blank">http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=643862</a></p>
<p>Hacen referencia  a que es causa de un paquete e idiomas que no está actualizado, así que para evitar estar dando vueltas, directamente los desinstalo y otro día&#8230; ya veremos <img src='http://hostingaldescubierto.com/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<pre>
  iceweasel-l10n-es-ar* iceweasel-l10n-es-es*
</pre>
<p>y a funcionar&#8230;.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2011%2F10%2F08%2Fdebian-xulrunner%2F&amp;title=%5Bdebian%5D%20xulrunner" id="wpa2a_2">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2011/10/08/debian-xulrunner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[ubuntu] locale: Cannot set LC_CTYPE to default locale: No such file or directory</title>
		<link>http://hostingaldescubierto.com/wordpress/2011/06/27/ubuntu-locale-cannot-set-lc_ctype-to-default-locale-no-such-file-or-directory/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ubuntu-locale-cannot-set-lc_ctype-to-default-locale-no-such-file-or-directory</link>
		<comments>http://hostingaldescubierto.com/wordpress/2011/06/27/ubuntu-locale-cannot-set-lc_ctype-to-default-locale-no-such-file-or-directory/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 10:33:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Soporte]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2011/06/27/ubuntu-locale-cannot-set-lc_ctype-to-default-locale-no-such-file-or-directory/</guid>
		<description><![CDATA[Vaya con ubuntu&#8230; no me esperaba esto. Normalmente en Debian cuando no está bien configurado el idioma local, basta con reconfigurar el paquete de esta manera : sudo dpkg-reconfigure --frontend=dialog --priority=low locales Con las opciones forzamos a que los mensajes sean vía dialogo con libncurses y la prioridad es que nos pregunte cualquier opción necesaria [...]]]></description>
			<content:encoded><![CDATA[<p>Vaya con ubuntu&#8230; no me esperaba esto. Normalmente en Debian cuando no está bien configurado el idioma local, basta con reconfigurar el paquete de esta manera :</p>
<pre>
sudo dpkg-reconfigure --frontend=dialog --priority=low locales
</pre>
<p>Con las opciones forzamos a que los mensajes sean vía dialogo con libncurses y la prioridad es que nos pregunte cualquier opción necesaria para configurar el paquete , no sólo las importantes. Como decíamos en debian, con esto es suficiente.</p>
<p>El error que normalmente aparece es algo asi :</p>
<pre>
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
</pre>
<p>El caso es que hoy con un servidor ubuntu&#8230;. esto no hace na de naaaaa y he estado indagando y parace que hace falta definir qué idiomas son los válidos en el directorio <b>/var/lib/locales/supported.d</b>.<br />
En la documentación de Ubuntu nos encontramos información, pero no es muy clara <a href="https://wiki.ubuntu.com/LocalesThatDontSuck">https://wiki.ubuntu.com/LocalesThatDontSuck</a></p>
<p>La configuración correcta la podemos hacer así :</p>
<p>Instalamos el paquete con los idiomas en nuestro caso inglés</p>
<pre>
apt-get install language-pack-en
</pre>
<p>Como el inglés tiene bastante variantes le vamos a dejar sólo la americana <b>en_US</b>. Para ello editamos el fichero <b>/var/lib/locales/supported.d/en</b> y dejamos sólo esta linea:</p>
<pre>
en_US.UTF-8 UTF-8
</pre>
<p>Ahora configuramos el idioma por defecto con</p>
<pre>update-locale LANG=en_US</pre>
<p>Ya tenemos generado el fichero que necesitabamos en <b>/etc/default/locale</b></p>
<pre>
#  File generated by update-locale
LANG=en_US
</pre>
<p>y con esto el problema queda solucionado.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2011%2F06%2F27%2Fubuntu-locale-cannot-set-lc_ctype-to-default-locale-no-such-file-or-directory%2F&amp;title=%5Bubuntu%5D%20locale%3A%20Cannot%20set%20LC_CTYPE%20to%20default%20locale%3A%20No%20such%20file%20or%20directory" id="wpa2a_4">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2011/06/27/ubuntu-locale-cannot-set-lc_ctype-to-default-locale-no-such-file-or-directory/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[plesk] ERROR: WDExc fallo en pack-sysstats</title>
		<link>http://hostingaldescubierto.com/wordpress/2011/01/16/plesk-error-wdexc-fallo-en-pack-sysstats/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=plesk-error-wdexc-fallo-en-pack-sysstats</link>
		<comments>http://hostingaldescubierto.com/wordpress/2011/01/16/plesk-error-wdexc-fallo-en-pack-sysstats/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 11:00:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Soporte]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2011/01/16/plesk-error-wdexc-fallo-en-pack-sysstats/</guid>
		<description><![CDATA[Aunque debería estar corregido ya en todas las instalaciones puede que alguno os encontreis con alguna versión de Plesk 9.5.x o 10.x con este error que se genera en el fichero : &#60;b&#62;/opt/psa/libexec/modules/watchdog/cp/pack-sysstats &#60;/b&#62; La consula sql no está bien formada y falla al ejecutar, concretamente el error es este : ERROR: WDExc Error occurred [...]]]></description>
			<content:encoded><![CDATA[<p>Aunque debería estar corregido ya en todas las instalaciones puede que alguno os encontreis con alguna versión de Plesk 9.5.x o 10.x con este error que se genera en el fichero :</p>
<pre>
&lt;b&gt;/opt/psa/libexec/modules/watchdog/cp/pack-sysstats &lt;/b&gt;
</pre>
<p>La consula sql no está bien formada y falla al ejecutar, concretamente el error es este : </p>
<pre>
ERROR: WDExc
Error occurred while processing database query: 'MySQL query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group by service_id, type, round(unix_timestamp(time) / 200, 0) having count(val' at line 3'
0: wdlib.php:1088
       wd__db_query(string 'select service_id, type, unix_timestamp(min(time)) as min_time, unix_timestamp(max(time)) as max_time, avg(value) as avg
                                       from module_watchdog_sys_stat where
                                       group by service_id, type, round(unix_timestamp(time) / 200, 0) having count(value) &gt; 1 limit 10000;')
1: pack-sysstats:63
       pack_statistics(integer '200', boolean  false, boolean  false)
2: pack-sysstats:44
</pre>
<p>Existe un microupdate de corrige el problema, para aplicarlo, directamente ejecutamos el autoupdate de plesk de la siguiente forma :</p>
<pre>
/usr/local/psa/admin/sbin/autoinstaller --select-release-current --install-component base
</pre>
<p>Artículo de kb de Parallels: <a href="http://kb.parallels.com/en/9554">http://kb.parallels.com/en/9554 Cron job failure on watchdog jobs</a></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2011%2F01%2F16%2Fplesk-error-wdexc-fallo-en-pack-sysstats%2F&amp;title=%5Bplesk%5D%20ERROR%3A%20WDExc%20fallo%20en%20pack-sysstats" id="wpa2a_6">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2011/01/16/plesk-error-wdexc-fallo-en-pack-sysstats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[plesk] ERROR: PleskFatalException: Solucionar incosistencias en la base de datos</title>
		<link>http://hostingaldescubierto.com/wordpress/2010/10/09/plesk-error-pleskfatalexception-solucionar-incosistencias-en-la-base-de-datos/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=plesk-error-pleskfatalexception-solucionar-incosistencias-en-la-base-de-datos</link>
		<comments>http://hostingaldescubierto.com/wordpress/2010/10/09/plesk-error-pleskfatalexception-solucionar-incosistencias-en-la-base-de-datos/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 11:43:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[hosting]]></category>
		<category><![CDATA[knowledge base]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Soporte]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2010/10/09/plesk-error-pleskfatalexception-solucionar-incosistencias-en-la-base-de-datos/</guid>
		<description><![CDATA[Plesk sigue teniendo algunos defectos , uno de ellos es que a veces se pierde la integridad referencial en algunas tablas como las tablas mail y accounts, que provoca el fallo de las cuentas de correo. Este fallo puede ser : The error that the other server returned was: 550 550 sorry, no mailbox here [...]]]></description>
			<content:encoded><![CDATA[<p>Plesk sigue teniendo algunos defectos , uno de ellos es que a veces se pierde la integridad referencial en algunas tablas como las tablas mail y accounts, que provoca el fallo de las cuentas de correo. Este fallo puede ser :</p>
<ul>
<li>The error that the other server returned was: 550 550 sorry, no mailbox here by that name. (#5.7.17)</li>
<li>The error that the other server returned was: 451 451 qq internal bug (#4.3.0)</li>
<li>O bien que al acceder a las propiedades de la cuenta de correo o intentar eliminar la cuenta, obtengamos este error en Plesk :
<pre>
ERROR: PleskFatalException
Error: Can't create Account object: Account: unable to select: no such row in the table

0: common_func.php3:146
    psaerror(string 'Error: Can't create Account object: Account: unable to select: no such row in the table')
1: client.domain.mail.mailname.php:86
    plesk__client__domain__mail__mailname-&gt;accessItemOverview(string 'GET', NULL null)
2: client.domain.mail.mailname.php:160
    __plesk__client__domain__mail__mailname-&gt;accessItem(string 'GET', NULL null)
3: UIPointer.php:596
    UIPointer-&gt;access(string 'GET')
4: plesk.php:38
</pre>
</li>
</ul>
<p>Pongamos el supuesto que en mi servidor tengo dos dominios uno que se llama hostingaldescubierto.com y otro senin.org y que la cuenta que falla con el error de antes es contacto@senin.org.<br />
Vamos a lanzar esta consulta en la base de datos para localizar los registros huérfanos en la taba de mail con accounts.</p>
<pre>
select domains.name, mail.mail_name, accounts.id, accounts.password from domains, mail left join accounts on mail.account_id = accounts.id where domains.id = mail.dom_id and accounts.id IS null;
+--------------------------+-------------+------+----------+
| name                     | mail_name   | id   | password |
+--------------------------+-------------+------+----------+
| hostingaldescubierto.com | basura      | NULL | NULL     |
| senin.org                | contacto    | NULL | NULL     |
+--------------------------+-------------+------+----------+
2 rows in set (0.01 sec)
</pre>
<p>Ahora podemos hacer dos cosas o bien borrar la cuenta de correo de la tabla mail o bien insertar una entrada en la tabla accounts. El único problema que puede haber si borramos la entrada en la tabla mail, es que si volvemos a crear la cuenta de correo podría ser que plesk eliminase el buzón con el contenido y lo crease de nuevo, pero no estoy totalmente seguro de esto o si ocurriría en todas las versiones. Yo opto por insertar los registros que falten.</p>
<p>Podríamos proceder generando los valores a insertar en la tabla accounts, y generando unas passwords aleatorias :</p>
<pre>
select mail.account_id, 'plain', SUBSTRING(MD5(RAND()) FROM 1 FOR <img src='http://hostingaldescubierto.com/wordpress/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> from domains, mail left join accounts on mail.account_id = accounts.id where domains.id = mail.dom_id and accounts.id IS null;
</pre>
<p>Nos devuelve : </p>
<pre>
+------------+------+-------------------------------------+
| account_id | text | SUBSTRING(MD5(RAND()) FROM 1 FOR <img src='http://hostingaldescubierto.com/wordpress/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> |
+------------+------+-------------------------------------+
|       1550 | text | 764dd7d1                            |
|       2310 | text | cdc15fc4                            |
+------------+------+-------------------------------------+
</pre>
<p>Con lo que montamos la sentencia INSERT y quedaría así:</p>
<pre>
INSERT INTO accounts select mail.account_id, 'plain', SUBSTRING(MD5(RAND()) FROM 1 FOR <img src='http://hostingaldescubierto.com/wordpress/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> from domains, mail left join accounts on mail.account_id = accounts.id where domains.id = mail.dom_id and accounts.id IS null;

Query OK, 2 rows affected (0.04 sec)
Records: 2  Duplicates: 0  Warnings: 0
</pre>
<p>y ahora verificamos que haya quedado corregido con la primera consulta:</p>
<pre>
select domains.name, mail.mail_name, accounts.id, accounts.password from domains, mail left join accounts on mail.account_id = accounts.id where domains.id = mail.dom_id and accounts.id IS null;
Empty set (0.01 sec)
</pre>
<p>Y así tenemos corregido el problema con tan solo copiar y pegar.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2010%2F10%2F09%2Fplesk-error-pleskfatalexception-solucionar-incosistencias-en-la-base-de-datos%2F&amp;title=%5Bplesk%5D%20ERROR%3A%20PleskFatalException%3A%20Solucionar%20incosistencias%20en%20la%20base%20de%20datos" id="wpa2a_8">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2010/10/09/plesk-error-pleskfatalexception-solucionar-incosistencias-en-la-base-de-datos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[wordpress]</title>
		<link>http://hostingaldescubierto.com/wordpress/2010/09/28/wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress</link>
		<comments>http://hostingaldescubierto.com/wordpress/2010/09/28/wordpress/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 22:38:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[knowledge base]]></category>
		<category><![CDATA[Soporte]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2010/09/28/wordpress/</guid>
		<description><![CDATA[WordPress ya está maduro y cosas como esta hacen darle un voto positivo. Instalado un template en un cliente me aparece este error: Warning: touch() [function.touch]: SAFE MODE Restriction in effect. The script whose uid is 10277 is not allowed to access /tmp owned by uid 0 in /var/www/vhosts/dominio.comm/httpdocs/wordpress/wp-admin/includes/file.php on line 199 Download failed. Could [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress ya está maduro y cosas como esta hacen darle un voto positivo.</p>
<p>Instalado un template en un cliente me aparece este error:</p>
<pre>
Warning: touch() [function.touch]: SAFE MODE Restriction in effect. The script whose uid is 10277 is not allowed to access /tmp owned by uid 0 in /var/www/vhosts/dominio.comm/httpdocs/wordpress/wp-admin/includes/file.php on line 199  Download failed. Could not create Temporary file.
</pre>
<p>Es normal en los alojamientos con safe_mode activado y seguramente no quieran desactivarlo por seguridad.</p>
<p>Para ello, nos creamos nuestro propio tmp ( teniendo en cuenta los problemas de seguridad que podría ocasionar ) </p>
<pre>
mkdir /var/www/vhosts/dominio.com/httpdocs/tmp 

# ajustar el usuario real para asignarle al directorio
chown dominio.com:psacln  /var/www/vhosts/dominio.com/httpdocs/tmp

# para que el usuario apache pueda escribir tambien
chmod 777 /var/www/vhosts/dominio.com/httpdocs/tmp
</pre>
<p>Ahora lo más interesante ,a gregar a nuestro fichero <b>wp-config.php</b>, esta linea :</p>
<pre>
define('WP_TEMP_DIR','/var/www/vhosts/dominio.com/httpdocs/tmp');
</pre>
<p>Con este cambio lo que hemos hecho ha sido preprar un tmp e indicarle a wordpress que por defecto ese es el directorio temporal.</p>
<p>Me ha gustado mucho encontrarme con estos detalles que demuestran la madured del proyecto.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2010%2F09%2F28%2Fwordpress%2F&amp;title=%5Bwordpress%5D" id="wpa2a_10">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2010/09/28/wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[php] Depurando / Profiling en php ( II )</title>
		<link>http://hostingaldescubierto.com/wordpress/2010/07/28/php-depurando-profiling-en-php-ii/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php-depurando-profiling-en-php-ii</link>
		<comments>http://hostingaldescubierto.com/wordpress/2010/07/28/php-depurando-profiling-en-php-ii/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 23:42:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[profiling]]></category>
		<category><![CDATA[servidores]]></category>
		<category><![CDATA[Soporte]]></category>
		<category><![CDATA[apd]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/?p=371</guid>
		<description><![CDATA[En este caso analizamos un hecho real, una web que tarda en cargar aleatoriamente entre 10 y 12 segundos. El problema es que al medir los tiempos en otro servidor no llega a 2 segundos. Después de revisar conectividad, carga de sistema, carga de apache &#8230; y demás parámetros habituales; todo estaba perfecto. Así que [...]]]></description>
			<content:encoded><![CDATA[<p>En este caso analizamos un hecho real, una web que tarda  en cargar aleatoriamente entre 10 y 12 segundos. El problema es que al medir los tiempos en otro servidor no llega a 2 segundos. Después de revisar conectividad, carga de sistema, carga de apache &#8230; y demás parámetros habituales; todo estaba perfecto. Así que decidimos relizar el profiling de la web para localizar el cuello de botella dentro de los scripts php.</p>
<p>En el artículo anterior <a href="http://hostingaldescubierto.com/wordpress/2010/07/23/php-depurando-profiling-en-php-i/">[php] Depurando / Profiling en php ( I )</a> dejamos instalado el módulo APD para capturar la información necesaria y luego procesarla. Recordamos que hay que usar la función <span style="color: #000000;"> <em>apd_set_pprof_trace();</em></span> para que se generen los datos. En nuestro caso hemos seleccionado la ruta /tmp en donde se almacenarán estos ficheros.</p>
<p>Ejecutamos unos cuantas veces el script php que nos interesa. Generamos una captura de una ejecución en 1-2 segundos (<em>/tmp/pprof.32231.1</em>) y seguimos ejecutando hasta que conseguimos una captura de datos de una ejecución que tardó unos 10-11 segundos (<em>/tmp/pprof.01666.0</em>)</p>
<p>Vamos a comparar la captura de los datos :</p>
<p>La ejecución buena :</p>
<pre># pprofp -R /tmp/pprof.32231.1

Trace for /var/www/vhosts/hostingaldescubierto.com/httpdocs/index.php
Total Elapsed Time = 0.36
Total System Time  = 0.03
Total User Time    = 0.07

Real         User        System             secs/    cumm
%Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
--------------------------------------------------------------------------------------
100.0 0.00 0.36  0.00 0.07  0.00 0.03     1  0.0000   0.3589            0 main
96.1 0.00 0.34  0.00 0.08  0.00 0.03     5  0.0000   0.0690            0 require_once
59.1 0.00 0.21  0.00 0.01  0.00 0.00     8  0.0000   0.0265            0 include
58.9 0.00 0.21  0.00 0.01  0.00 0.00     1  0.0000   0.2113            0 call_user_func_array
58.9 0.00 0.21  0.00 0.01  0.00 0.00     1  0.0000   0.2113            0 Pages-&gt;index
58.9 0.00 0.21  0.00 0.01  0.00 0.00     1  0.0000   0.2112            0 Pages-&gt;show
58.9 0.00 0.21  0.00 0.01  0.00 0.00     1  0.0000   0.2112            0 Template-&gt;build
58.8 0.00 0.21  0.00 0.01  0.00 0.00     2  0.0000   0.1054            0 MY_Loader-&gt;view
58.6 0.00 0.21  0.00 0.01  0.00 0.00     2  0.0000   0.1052            0 MY_Loader-&gt;_ci_load
56.8 0.00 0.20  0.00 0.00  0.00 0.00     1  0.0000   0.2038            0 weather_google_api
56.8 0.20 0.20  0.00 0.00  0.00 0.00     1  0.2037   0.2037            0 simplexml_load_file
29.4 0.00 0.11  0.00 0.05  0.00 0.02     1  0.0000   0.1054            0 Pages-&gt;Pages
29.2 0.00 0.10  0.00 0.05  0.00 0.02     1  0.0000   0.1048            0 Pages-&gt;Public_Controller
13.9 0.00 0.05  0.00 0.03  0.00 0.02     1  0.0000   0.0497            0 Pages-&gt;MY_Controller
13.4 0.00 0.05  0.00 0.02  0.00 0.03     2  0.0000   0.0241            0 MY_Loader-&gt;_ci_autoloader
12.2 0.00 0.04  0.00 0.01  0.00 0.00     3  0.0000   0.0146            0 Banners_model-&gt;get_by_section
11.7 0.00 0.04  0.00 0.00  0.00 0.00    25  0.0000   0.0017            0 CI_DB_mysql_driver-&gt;query
11.5 0.00 0.04  0.00 0.01  0.00 0.00     6  0.0000   0.0069            0 Banners_model-&gt;add_hit
11.4 0.04 0.04  0.03 0.03  0.01 0.01    65  0.0006   0.0006            0 defined
10.9 0.00 0.04  0.00 0.00  0.00 0.00    25  0.0000   0.0016            0 CI_DB_mysql_driver-&gt;simple_query
</pre>
<p>El fichero de 10-12 segundos : </p>
<pre># pprofp -R /tmp/pprof.01666.0

Trace for /var/www/vhosts/hostingaldescubierto.com/httpdocs/index.php
Total Elapsed Time = 10.34
Total System Time  = 0.02
Total User Time    = 0.08

Real         User        System             secs/    cumm
%Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
--------------------------------------------------------------------------------------
100.1 0.00 10.35  0.00 0.09  0.00 0.02     5  0.0000   2.0692            0 require_once
100.0 0.00 10.34  0.00 0.08  0.00 0.02     1  0.0000   10.3394            0 main
99.1 0.00 10.24  0.00 0.01  0.00 0.00     8  0.0000   1.2802            0 include
99.0 0.00 10.24  0.00 0.01  0.00 0.00     1  0.0000   10.2409            0 call_user_func_array
99.0 0.00 10.24  0.00 0.01  0.00 0.00     1  0.0000   10.2409            0 Pages-&gt;index
99.0 0.00 10.24  0.00 0.01  0.00 0.00     1  0.0000   10.2409            0 Pages-&gt;show
99.0 0.00 10.24  0.00 0.01  0.00 0.00     1  0.0000   10.2409            0 Template-&gt;build
99.0 0.00 10.24  0.00 0.01  0.00 0.00     2  0.0000   5.1202            0 MY_Loader-&gt;view
99.0 0.00 10.24  0.00 0.01  0.00 0.00     2  0.0000   5.1200            0 MY_Loader-&gt;_ci_load
99.0 0.00 10.23  0.00 0.00  0.00 0.00     1  0.0000   10.2335            0 weather_google_api
<strong>99.0 10.23 10.23  0.00 0.00  0.00 0.00     1  10.2333   10.2333            0 simplexml_load_file</strong>
0.7 0.00 0.08  0.00 0.06  0.00 0.01     1  0.0000   0.0766            0 Pages-&gt;Pages
0.7 0.00 0.08  0.00 0.05  0.00 0.01     1  0.0000   0.0761            0 Pages-&gt;Public_Controller
0.5 0.00 0.05  0.00 0.04  0.00 0.01     2  0.0000   0.0266            0 MY_Loader-&gt;_ci_autoloader
0.5 0.00 0.05  0.00 0.04  0.00 0.01     1  0.0000   0.0524            0 Pages-&gt;MY_Controller
0.4 0.04 0.04  0.04 0.04  0.01 0.01    65  0.0006   0.0006            0 defined
0.4 0.00 0.04  0.00 0.02  0.00 0.01    38  0.0000   0.0010            0 MY_Loader-&gt;helper
0.3 0.00 0.04  0.00 0.03  0.00 0.00    10  0.0000   0.0036            0 MY_Loader-&gt;model
0.3 0.00 0.03  0.00 0.02  0.00 0.01     1  0.0000   0.0312            0 Pages-&gt;Controller
0.3 0.00 0.03  0.00 0.02  0.00 0.01     1  0.0000   0.0311            0 Pages-&gt;_ci_initialize
</pre>
<p>Vemos claramente esta linea que es la que penaliza el tiempo de ejecución del script:</p>
<pre><strong>99.0 10.23 10.23  0.00 0.00  0.00 0.00     1  10.2333   10.2333            0 simplexml_load_file</strong></pre>
<p>Perfecto, ya sabemos lo que tenemos que buscar el uso de la función <strong>simplexml_load_file</strong>. Buscamos los ficheros que usan esta funcion, por ejemplo así :</p>
<pre>find -name "*php" -exec grep -l simplexml_load_file {} \;</pre>
<p>Entre los resultados encontramos uno, que llama especialmente la atención, en el que solicita un fichero xml de google <strong>http://www.google.com/ig/api?weather=madrid&amp;oe=utf-8</strong>.<br />
Vamos a medir cuanto tiempo tarda en descargarlo :</p>
<pre># time wget 'http://www.google.com/ig/api?weather=madrid&amp;oe=utf-8'
--2010-07-26 18:27:47--  http://www.google.com/ig/api?weather=madrid&amp;oe=utf-8
Resolving www.google.com... 66.249.92.104
Connecting to www.google.com|66.249.92.104|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/xml]
Saving to: `api?weather=madrid&amp;oe=utf-8.1'

[ &lt;=&gt;                                                                                                                                      ] 1,291       --.-K/s   in 0s

2010-07-26 18:27:57 (12.0 MB/s) - `api?weather=madrid&amp;oe=utf-8.1' saved [1291]

real    0m10.157s
user    0m0.002s
sys    0m0.001s</pre>
<p>Parece bastante claro que la ejecución se ralentiza por la petición a google&#8230; una caché que se actualice cada día, hora o cada minuto solucionaría este problema.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2010%2F07%2F28%2Fphp-depurando-profiling-en-php-ii%2F&amp;title=%5Bphp%5D%20Depurando%20%2F%20Profiling%20en%20php%20%28%20II%20%29" id="wpa2a_12">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2010/07/28/php-depurando-profiling-en-php-ii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[wordpress]  Fatal error: Call to undefined function wp() in /var/www/vhosts/dominio.tld/httpdocs/wordpress/wp-blog-header.php on line 14</title>
		<link>http://hostingaldescubierto.com/wordpress/2010/07/16/wordpress-fatal-error-call-to-undefined-function-wp-in-varwwwvhostsdominio-tldhttpdocswordpresswp-blog-header-php-on-line-14/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-fatal-error-call-to-undefined-function-wp-in-varwwwvhostsdominio-tldhttpdocswordpresswp-blog-header-php-on-line-14</link>
		<comments>http://hostingaldescubierto.com/wordpress/2010/07/16/wordpress-fatal-error-call-to-undefined-function-wp-in-varwwwvhostsdominio-tldhttpdocswordpresswp-blog-header-php-on-line-14/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 10:41:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Soporte]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2010/07/16/wordpress-fatal-error-call-to-undefined-function-wp-in-varwwwvhostsdominio-tldhttpdocswordpresswp-blog-header-php-on-line-14/</guid>
		<description><![CDATA[Al hacer una instalación nueva de wordpress, puedes contrarte con este error : Fatal error: Call to undefined function wp() in /var/www/vhosts/dominio.tld/httpdocs/wordpress/wp-blog-header.php on line 14 Es debido a que el fichero wp-config.php esté vacio o mal configurado. La mejor opción es coger el fichero wp-config-sample.php y rellenarlo a mano. Sólo hay que especificar base de [...]]]></description>
			<content:encoded><![CDATA[<p>Al hacer una instalación nueva de wordpress, puedes contrarte con este error :</p>
<pre>
Fatal error: Call to undefined function wp() in /var/www/vhosts/dominio.tld/httpdocs/wordpress/wp-blog-header.php on line 14
</pre>
<p>Es debido a que el fichero wp-config.php esté vacio o mal configurado. La mejor opción es coger el fichero <b>wp-config-sample.php</b> y rellenarlo a mano. Sólo hay que especificar base de datos, usuariom, password y host.</p>
<p>Puedes usar esta plantilla para wordpress 3.0 si no tienes nada a mano</p>
<pre>
&lt;?php

define('DB_NAME', 'nombre_base_datos');

/** MySQL database username */
define('DB_USER', 'usuario');

/** MySQL database password */
define('DB_PASSWORD', 'password');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

#
# generado automaticametne desde:
# https://api.wordpress.org/secret-key/1.1/salt/
#

define('AUTH_KEY',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'pQ&lt;@NK%: 42QBJ&amp;$bhPZZzqs!vGZ}8Ph$R&gt;j~x8}Z+V+[%]10Z~oy!N#^#/pT&amp;}l');
define('SECURE_AUTH_KEY',&nbsp; ';CT`bP|YA&gt;[+|i(Kza+*K4x&lt;[8ce(cfEzJefBUnlm$kGo=|+#MDuc+3Eka3oEcUp');
define('LOGGED_IN_KEY',&nbsp;&nbsp;&nbsp; 'Ym_wh[WKu;q_}@N$Y&lt;A?u{{W5hg3&amp;^K5`l~RTIdiO;=|TiG/BD~FMWF b^qz7L_4');
define('NONCE_KEY',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'qDwCcdk?T8-PHo pFNOu(yCUsi0^&lt;$lP05A/A=D2PZ+5|xZ&lt;-z:Z&amp;=p?7$JK:hUT');
define('AUTH_SALT',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'YTJ1VYm1m[-9),*uxvB#c@MgFBAVpf6m~8Eg._uZ(|$c-%nsM}_#3&amp;48=H_E2PY&lt;');
define('SECURE_AUTH_SALT', '{RNOa149Lnw6jyQDMJ9L%KUTXoir.R$NLO.BHO=,A]#G;=C$ OS_&gt;4ed+l}ZUpF}');
define('LOGGED_IN_SALT',&nbsp;&nbsp; '&lt;fu@&amp;qA2j&amp;NK]1RLOI 0QtH/NY%.8ufHJrwum kc9&gt;Cmv!h}pkYHU.&lt;y~1%#y09o');
define('NONCE_SALT',&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'G1NkJF3E3xI_KFu|[oLk??o6GagegY(6*=Gkk!adIv%bUNnU #@7R&amp;ZI85;~R$ki');

$table_prefix&nbsp; = 'wp_';

define ('WPLANG', '');

define('WP_DEBUG', false);

if ( !defined('ABSPATH') )
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; define('ABSPATH', dirname(__FILE__) . '/');

require_once(ABSPATH . 'wp-settings.php');
</pre>
<p><b>Nota: el fichero acaba sin cerrar el script php , SIN ?&gt;</b></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2010%2F07%2F16%2Fwordpress-fatal-error-call-to-undefined-function-wp-in-varwwwvhostsdominio-tldhttpdocswordpresswp-blog-header-php-on-line-14%2F&amp;title=%5Bwordpress%5D%20%20Fatal%20error%3A%20Call%20to%20undefined%20function%20wp%28%29%20in%20%2Fvar%2Fwww%2Fvhosts%2Fdominio.tld%2Fhttpdocs%2Fwordpress%2Fwp-blog-header.php%20on%20line%2014" id="wpa2a_14">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2010/07/16/wordpress-fatal-error-call-to-undefined-function-wp-in-varwwwvhostsdominio-tldhttpdocswordpresswp-blog-header-php-on-line-14/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[magento] PHP Fatal error:  Exception thrown without a stack frame in Unknown on line 0</title>
		<link>http://hostingaldescubierto.com/wordpress/2010/07/08/magento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=magento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0</link>
		<comments>http://hostingaldescubierto.com/wordpress/2010/07/08/magento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 09:43:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Soporte]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apc]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[magneto]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2010/07/08/magento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0/</guid>
		<description><![CDATA[Estos últimas días hemos tenido que optimizar la carga de servidores con Magento. Una de las tareas es usar un sistema de caché que acelere los scripts php. Usamos apc por compatibilidad con Magento y por que ya viene paquetizado en los repositorios de Debian. El problema, aparece en el pié de página: &#8220;PHP Fatal [...]]]></description>
			<content:encoded><![CDATA[<p>Estos últimas días hemos tenido que optimizar la carga de servidores con Magento. Una de las tareas es usar un sistema de caché que acelere los scripts php. Usamos apc por compatibilidad con Magento y por que ya viene paquetizado en los repositorios de Debian.</p>
<p>El problema, aparece en el pié de página:<b> &#8220;PHP Fatal error:&nbsp; Exception thrown without a stack frame in Unknown on line 0&#8243;</b>.<br />
Este error aparece cuando <i>se ha lanzado una excepcion en un lugar donde se no se puede lanzar una excepción por no tener &#8216;stack frame</i>&#8216;. </p>
<p>Los manejadores de excepciones &#8216; <i>exception handlers</i>&#8216; y los destructores no tienen &#8216;<i>stack frame</i>&#8216;.<br />
Por lo que combinar por ejemplo un &#8216;<i>execption handler</i>&#8216; con un &#8216;<i>error preporting</i>&#8216;&nbsp; o lanzar un <i>execption</i> en un <i>destructor</i> puede provocar que aparezcan. Os podeis documentar más en este interesante enlace <a href="http://www.compdigitec.com/labs/2009/08/02/solving-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0/" rel="bookmark" title="Permanent Link: Solving “Fatal error: Exception thrown without a stack frame in Unknown on line 0″">Solving “Fatal error: Exception thrown without a stack frame in Unknown on line 0″</a></p>
<p>En nuestro caso, tan solo hizo falta acutalizar la version del apc con un simple apt</p>
<p><source><br />
apt-get install php-apc</p>
<p>En la máquina estaba previamente instalado el apc vía pecl</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2010%2F07%2F08%2Fmagento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0%2F&amp;title=%5Bmagento%5D%20PHP%20Fatal%20error%3A%20%20Exception%20thrown%20without%20a%20stack%20frame%20in%20Unknown%20on%20line%200" id="wpa2a_16">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2010/07/08/magento-php-fatal-error-exception-thrown-without-a-stack-frame-in-unknown-on-line-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[mediawiki] cambiar wikisysop password</title>
		<link>http://hostingaldescubierto.com/wordpress/2010/06/08/mediawiki-cambiar-wikisysop-password/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mediawiki-cambiar-wikisysop-password</link>
		<comments>http://hostingaldescubierto.com/wordpress/2010/06/08/mediawiki-cambiar-wikisysop-password/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 10:12:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[knowledge base]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Soporte]]></category>
		<category><![CDATA[mediawiki]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2010/06/08/mediawiki-cambiar-wikisysop-password/</guid>
		<description><![CDATA[Mucho más cómodo que cambiar la password en la base de datos, es lanzar este comando en la ruta de la instalación de tu mediawiki : php ./maintenance/changePassword.php &#8211;user=WikiSysop &#8211;password=nuevapasssword No tiene mucho que explicar]]></description>
			<content:encoded><![CDATA[<p>Mucho más cómodo que cambiar la password en la base de datos, es lanzar este comando en la ruta de la instalación de tu mediawiki :</p>
<p><source><br />
php ./maintenance/changePassword.php &#8211;user=WikiSysop &#8211;password=nuevapasssword</p>
<p>No tiene mucho que explicar</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2010%2F06%2F08%2Fmediawiki-cambiar-wikisysop-password%2F&amp;title=%5Bmediawiki%5D%20cambiar%20wikisysop%20password" id="wpa2a_18">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2010/06/08/mediawiki-cambiar-wikisysop-password/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[mysql] Reparar todas las tablas dañas &#8216; marked as crashed &#8216;</title>
		<link>http://hostingaldescubierto.com/wordpress/2010/03/18/mysql-reparar-todas-las-tablas-danas-marked-as-crashed/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-reparar-todas-las-tablas-danas-marked-as-crashed</link>
		<comments>http://hostingaldescubierto.com/wordpress/2010/03/18/mysql-reparar-todas-las-tablas-danas-marked-as-crashed/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 16:13:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Soporte]]></category>
		<category><![CDATA[drweb]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2010/03/18/mysql-reparar-todas-las-tablas-danas-marked-as-crashed/</guid>
		<description><![CDATA[A veces un apagón repentino o la muerte de nuestro proceso de mysql puede provocar errores de tablas mal cerradas. Sobretodo en tablas de sesiones, logins, etc.. mysqld[2978]: 100318 7:34:27 [ERROR] /usr/sbin/mysqld: Incorrect key file for table &#8216;./home/tlr_boards.MYI&#8217;; try to repair it mysqld[2978]: 100318 16:44:46 [ERROR] /usr/sbin/mysqld: Table &#8216;./home/tlr_sessions&#8217; is marked as crashed and last [...]]]></description>
			<content:encoded><![CDATA[<p>A veces un apagón repentino o la muerte de nuestro proceso de mysql puede provocar errores de tablas mal cerradas. Sobretodo en tablas de sesiones, logins, etc..</p>
<p><source><br />
mysqld[2978]: 100318  7:34:27 [ERROR] /usr/sbin/mysqld: Incorrect key file for table &#8216;./home/tlr_boards.MYI&#8217;; try to repair it</p>
<p>mysqld[2978]: 100318 16:44:46 [ERROR] /usr/sbin/mysqld: Table &#8216;./home/tlr_sessions&#8217; is marked as crashed and last (automatic?) repair failed<br />
</source></p>
<p>A veces lanzar un mysqlcheck -A no es suficiente, pero con este script sí conseguimos reparar todas las tablas :</p>
<pre>
for database in $(mysql --skip-column-names -uadmin -p`cat /etc/psa/.psa.shadow` -e "show databases" ); do echo "bd: $database"; for table in $(mysql --skip-column-names -uadmin -p`cat /etc/psa/.psa.shadow` -e "show tables" $database ); do echo "reparando $table " ; mysqlcheck -uadmin -p`cat /etc/psa/.psa.shadow` -r $database $table ; done ; done ;
</pre>
<p>Tras la reparación en el log podremos ver algo como esto:<br />
<source><br />
mysqld[2978]: 100318 16:45:49 [Note] Found 1821 of 295 rows when repairing &#8216;./home/tlr_messages&#8217;<br />
mysqld[2978]: 100318 16:45:50 [Note] Found 222 of 1 rows when repairing &#8216;./home/tlr_sessions&#8217;<br />
</source></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fhostingaldescubierto.com%2Fwordpress%2F2010%2F03%2F18%2Fmysql-reparar-todas-las-tablas-danas-marked-as-crashed%2F&amp;title=%5Bmysql%5D%20Reparar%20todas%20las%20tablas%20da%C3%B1as%20%E2%80%98%20marked%20as%20crashed%20%E2%80%98" id="wpa2a_20">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2010/03/18/mysql-reparar-todas-las-tablas-danas-marked-as-crashed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

