<?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; linux</title>
	<atom:link href="http://hostingaldescubierto.com/wordpress/tag/linux/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>Tue, 17 Jan 2012 22:44:59 +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>[php] Depurando / Profiling en php ( I )</title>
		<link>http://hostingaldescubierto.com/wordpress/2010/07/23/php-depurando-profiling-en-php-i/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php-depurando-profiling-en-php-i</link>
		<comments>http://hostingaldescubierto.com/wordpress/2010/07/23/php-depurando-profiling-en-php-i/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 16:50:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[servidores]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[profiling]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2010/07/23/php-depurando-profiling-en-php-i/</guid>
		<description><![CDATA[Para poder diagnosticar qué sucede en la máquina cuando se ejecuta un script en php es necesario instalar un depurador o profiler. En este caso instalamos Advanced Php Debugger. En máquinas Centos, como es usual no lo tenemos en el repositorio así lo instalaremos manualmente usando &#8216;pecl&#8216; que lo provee el paquete de php-pear . [...]]]></description>
			<content:encoded><![CDATA[<p>Para poder diagnosticar qué sucede en la máquina cuando se ejecuta un script en php es necesario instalar un depurador o profiler. En este caso instalamos <a target="_blank" href="http://php.net/manual/en/book.apd.php">Advanced Php Debugger</a>.</p>
<p>En máquinas Centos, como es usual no lo tenemos en el repositorio así lo instalaremos manualmente usando &#8216;<b>pecl</b>&#8216; que lo provee el paquete de php-pear .</p>
<pre>
pecl install apd
</pre>
<p>Será necesario tener instalado <b>make</b>, <b>gcc</b>&nbsp; y <b>autconf</b></p>
<p>Nos podemos encontrar con este error :</p>
<pre>
# pecl install apd
WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update
downloading apd-1.0.1.tgz ...
Starting to download apd-1.0.1.tgz (36,643 bytes)
..........done: 36,643 bytes
15 source files, building
running: phpize
Configuring for:
PHP Api Version:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20041225
Zend Module Api No:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20060613
Zend Extension Api No:&nbsp;&nbsp; 220060519
building in /var/tmp/pear-build-root/apd-1.0.1
running: /tmp/pear/download/apd-1.0.1/configure
checking for egrep... grep -E
checking for a sed that does not truncate output... //bin/sed
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
ERROR: `/tmp/pear/download/apd-1.0.1/configure' failed
</pre>
<p>Normalmente es debido a que tenemos <b>/var</b> y <b>/var/tmp</b> con la opcion de <b>noexec.</b> Para poder ejecutarlo correctamente pondremos temporalmente estos puntos de montaje con permisos de ejecución y luego lo restauramos:</p>
<pre>
mount -o,remount,rw,exec /var/tmp
mount -o,remount,rw,exec /tmp
pecl install apd
mount -o,remount,rw,noexec /var/tmp
mount -o,remount,rw,noexec /tmp
</pre>
<p>Nos insteresa quedarnos con este contenido para configurar el fichero .ini :</p>
<pre>
running: make INSTALL_ROOT="/var/tmp/pear-build-root/install-apd-1.0.1" install
Installing shared extensions:     /var/tmp/pear-build-root/install-apd-1.0.1/usr/lib64/php/modules/
running: find "/var/tmp/pear-build-root/install-apd-1.0.1" | xargs ls -dils
  12   1 drwxr-xr-x 3 root root   1024 Jul 23 18:33 /var/tmp/pear-build-root/install-apd-1.0.1
2057   1 drwxr-xr-x 3 root root   1024 Jul 23 18:33 /var/tmp/pear-build-root/install-apd-1.0.1/usr
4113   1 drwxr-xr-x 3 root root   1024 Jul 23 18:33 /var/tmp/pear-build-root/install-apd-1.0.1/usr/lib64
6169   1 drwxr-xr-x 3 root root   1024 Jul 23 18:33 /var/tmp/pear-build-root/install-apd-1.0.1/usr/lib64/php
8225   1 drwxr-xr-x 2 root root   1024 Jul 23 18:33 /var/tmp/pear-build-root/install-apd-1.0.1/usr/lib64/php/modules
8226 129 -rwxr-xr-x 1 root root 130196 Jul 23 18:33 /var/tmp/pear-build-root/install-apd-1.0.1/usr/lib64/php/modules/apd.so

Build process completed successfully
Installing '/usr/lib64/php/modules/apd.so'
install ok: channel://pear.php.net/apd-1.0.1
</pre>
<p>Tendremos que crear un fichero en /etc/php.d/apd.ini  con este contenido </p>
<pre>
zend_extension = /usr/lib64/php/modules/apd.so
apd.dumpdir = /tmp
apd.statement_tracing = 0
</pre>
<p>y comprobamos que el modulo carga con <b>php -m</b></p>
<pre>
#php -m

....

[Zend Modules]
Advanced PHP Debugger (APD)
Zend Optimizer
</pre>
<p>Ahora ya podemos lanzar el profiling en nuestras páginas, para ello podemos incrustar este fragmento de código y activarlo sólamente cuando accedamos nosotros y no los clientes:</p>
<pre>
 &lt;?php
 $DEBUGIPS = array('93.174.6.8','192.168.1.1');
 if(array_search($_SERVER[REMOTE_IP], $DEBUGIPS)) {
   apd_set_pprof_trace();
 }
?&gt;
</pre>
<p>Y con esto acabamos la primera parte, atentos a la segunda <img src='http://hostingaldescubierto.com/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </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%2F23%2Fphp-depurando-profiling-en-php-i%2F&amp;title=%5Bphp%5D%20Depurando%20%2F%20Profiling%20en%20php%20%28%20I%20%29" id="wpa2a_2">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2010/07/23/php-depurando-profiling-en-php-i/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_4">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>Agrengando lenguaje Vasco al webmail de Plesk: Horde</title>
		<link>http://hostingaldescubierto.com/wordpress/2009/11/12/agrengando-lenguaje-vasco-al-webmail-de-plesk-horde/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agrengando-lenguaje-vasco-al-webmail-de-plesk-horde</link>
		<comments>http://hostingaldescubierto.com/wordpress/2009/11/12/agrengando-lenguaje-vasco-al-webmail-de-plesk-horde/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 00:55:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Soporte]]></category>
		<category><![CDATA[hode]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[webmail]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2009/11/12/agrengando-lenguaje-vasco-al-webmail-de-plesk-horde/</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>Un requisito relativamente fácil como puede ser agregar un idioma a <a href="http://www.horde.org/" target="_blank">Horde</a> ( 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.</p>
<p>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 <a href="http://www.horde.org/horde/docs/?f=po_README.html" target="_blank">http://www.horde.org/horde/docs/?f=po_README.html</a></p>
<p>Primero verificamos que version tenemos de Horde instalada. Vamos a intentar siempre usar las mismas versiones para quitarnos de problemas</p>
<pre>
# rpm -qa | grep horde
psa-horde-3.1.7-cos5.build92090714.19
</pre>
<p>Creamos el directorio para preparar la compilacion de los idiomas ( hay que generar los .mo a partir de ficheros .po )</p>
<pre>
mkdir -p /usr/src/horde
cd /usr/src/horde
</pre>
<p>Nos bajamos nuestra versión de horde:</p>
<pre>
wget http://ftp.horde.org/pub/horde/horde-3.1.7.tar.gz
tar zxvf horde-3.1.7.tar.gz
</pre>
<p>Ahora nos bajamos por separado los ficheros .po del cvs y que no están en la distribucion 3.1.7.<br />
Es muy importante no mezclar ficheros de distribuciones para evitar problemas. La estructura de directorios se almacenará en el directorio &#8216;horde&#8217;</p>
<pre>
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
</pre>
<p>Como solo queremos los ficheros de cadenas, mezclar phps de distinas versiones nos dará errores de clases no encontradas</p>
<pre>
cp -r horde/po/*_* horde-3.1.7/po/
cp -r horde/locale/*_* horde-3.1.7/locale/
</pre>
<p>Tenemos algunos requistios que se pueden leer en el fichero <a href="http://cvs.horde.org/h/chora/co.php/horde/po/README?r=1.39" target="_blank">REAME</a>. </p>
<pre>
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/
</pre>
<p>También necesitamos la herramienta gettext al menos la version 0.12</p>
<pre>
yum install gettext
</pre>
<p>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</p>
<pre>
#!/usr/bin/php -qn
&lt;?php
ini_set ("include_path", "/usr/src/horde/horde-3.1.7/lib:/usr/share/psa-pear/:/usr/src/horde/pear/:." );
</pre>
<p>Ahora generamos los ficheros:</p>
<pre>
./translator.php make
</pre>
<p>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.</p>
<pre>
cp /usr/src/horde/horde-3.1.7/locale/* /usr/share/psa-horde/locale/
</pre>
<p>Por último editar la configuracón de horde de plesk para que aparezca el nuevo idioma disponible:</p>
<pre>
/etc/psa/webmail/horde/horde/nls.php
$nls['languages']['eu_ES'] = 'Euskera';
</pre>
<p>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.</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%2F2009%2F11%2F12%2Fagrengando-lenguaje-vasco-al-webmail-de-plesk-horde%2F&amp;title=Agrengando%20lenguaje%20Vasco%20al%20webmail%20de%20Plesk%3A%20Horde" id="wpa2a_6">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2009/11/12/agrengando-lenguaje-vasco-al-webmail-de-plesk-horde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Warning:  [eAccelerator] Can not create shared memory area in Unknown on line 0</title>
		<link>http://hostingaldescubierto.com/wordpress/2008/11/06/php-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0</link>
		<comments>http://hostingaldescubierto.com/wordpress/2008/11/06/php-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 17:13:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Soporte]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[openvz]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[proc]]></category>
		<category><![CDATA[sh]]></category>
		<category><![CDATA[shared]]></category>
		<category><![CDATA[userbean_counter]]></category>
		<category><![CDATA[userbena]]></category>
		<category><![CDATA[vps]]></category>

		<guid isPermaLink="false">http://hostingaldescubierto.com/wordpress/2008/11/06/php-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0/</guid>
		<description><![CDATA[eAccelertor es una solución de cache para php. Con este software conseguimos guardar una copia de scripts ya interpretados, de esta forma cada vez que el servidor web tenga que lanzar este script ahorrará una parte de tiempo y carga de cpu. Con este software puede ocurrir que nos econtremos con el siguiente error: PHP [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://eaccelerator.net/">eAccelertor</a> es una solución de cache para php. Con este software conseguimos guardar una copia de scripts ya interpretados, de esta forma cada vez que el servidor web tenga que lanzar este script ahorrará una parte de tiempo y carga de cpu.</p>
<p>Con este software puede ocurrir que nos econtremos con el siguiente error:</p>
<pre>
PHP Warning:&nbsp; [eAccelerator] Can not create shared memory area in Unknown on line 0PHP Fatal error:&nbsp; Unable to start eAccelerator module in Unknown on line 0</pre>
<p>&nbsp;&nbsp; &nbsp;<br />Por defecto el tamaño de memoria compartida ( <b>shared memory</b> ) en un kernel 2.6 es de 32mb. Este parámetro se encuentra en el fichero <b>/proc/sys/kernel/shmmax</b> de forma que puedes comprobar si está en el límite. Para modificarlo existen dos formas :</p>
<p>* Cambio on-fly, con esto duplicaremos el tamaño actual</p>
<pre>echo $(( `cat /proc/sys/kernel/shmmax` * 2 ))&nbsp; &gt; /proc/sys/kernel/shmmax</pre>
<p>* Cambio permamente, modificando <b>/etc/sysctl.conf </b>
<pre>kernel.shmmax=VALOR_DESEADO

# aplicar los cambios reiniciando o con este comando:sysctl -p 
</pre>
<p> En el caso de los vps habŕa que comprobar si la memoria asignada es suficiente ( share memory and socket buffers ). Para ello podemos verificar el fichero <b>/proc/user_beancounter</b> donde muestra todos los parámetros que tenemos y la última columna referente a failcnt, es la cantidad de veces que se han superado estos límites. Seguramente aparecerá la fila&nbsp; <b>PRIVVMPAGES</b> con el contador distinto de 0. Habrá que ampliar este valor en ese caso.</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%2F2008%2F11%2F06%2Fphp-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0%2F&amp;title=PHP%20Warning%3A%20%20%5BeAccelerator%5D%20Can%20not%20create%20shared%20memory%20area%20in%20Unknown%20on%20line%200" id="wpa2a_8">Share/Bookmark</a></p>]]></content:encoded>
			<wfw:commentRss>http://hostingaldescubierto.com/wordpress/2008/11/06/php-warning-eaccelerator-can-not-create-shared-memory-area-in-unknown-on-line-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

