<?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>Archivos de vps &#187; Endless Manifesto</title>
	<atom:link href="https://kadai.com.mx/tag/vps/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Un blog personal sobre muchas cosas, en especial videojuegos, descubrimientos y escritos al azar.</description>
	<lastBuildDate>Sat, 29 Feb 2020 21:11:30 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://kadai.com.mx/wp-content/uploads/2017/08/new-favicon-88x88.png</url>
	<title>Archivos de vps &#187; Endless Manifesto</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">126519727</site>	<item>
		<title>Error SIGSEGV en PHP 7.3 [Solución definitiva]</title>
		<link>https://kadai.com.mx/sigsegv-en-php-7-3-soluciones-al-problema/</link>
					<comments>https://kadai.com.mx/sigsegv-en-php-7-3-soluciones-al-problema/#respond</comments>
		
		<dc:creator><![CDATA[Kadai Crosshansen]]></dc:creator>
		<pubDate>Wed, 13 Mar 2019 17:37:38 +0000</pubDate>
				<category><![CDATA[Servidor]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[crash]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-fpm]]></category>
		<category><![CDATA[php7.2]]></category>
		<category><![CDATA[php7.3]]></category>
		<category><![CDATA[prefork]]></category>
		<category><![CDATA[vps]]></category>
		<guid isPermaLink="false">https://kadai.com.mx/?p=1506</guid>

					<description><![CDATA[<p>Recientemente, a principios de Marzo, realice una actualización de PHP 7.2 a PHP 7.3. Sin embargo, lo que iba a ser una actualización sin problemas, pronto comenzó a volverse más complicado. Los errores SIGSEGV en PHP aparecen una mañana Durante unos días libres que tuve, realice una actualización de PHP desde 7.2.12 (aproximadamente) a la [&#8230;]</p>
<p>The post <a href="https://kadai.com.mx/sigsegv-en-php-7-3-soluciones-al-problema/">Error SIGSEGV en PHP 7.3 [Solución definitiva]</a> appeared first on <a href="https://kadai.com.mx">Endless Manifesto</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Recientemente, a principios de Marzo, realice una actualización de PHP 7.2 a PHP 7.3. Sin embargo, lo que iba a ser una actualización sin problemas, pronto comenzó a volverse más complicado.</p>



<span id="more-1506"></span>



<h2 class="wp-block-heading">Los errores SIGSEGV en PHP aparecen una mañana</h2>



<p class="wp-block-paragraph">Durante unos días libres que tuve, realice una actualización de PHP desde 7.2.12 (aproximadamente) a la ultima versión disponible de PHP: 7.3.1</p>



<p class="wp-block-paragraph">Todo salio bien en ese momento. Incluso las cosas funcionaban sin problemas, pero eso cambiaría a la mañana siguiente.</p>



<p class="wp-block-paragraph">Fue entonces cuando este sitio web me arrojo un error 503. Así como otros más en esta VPS corriendo ubuntu.</p>



<p class="wp-block-paragraph">Al revisar en los archivos de errores, en busca de alguna causa, solo encontraba lo siguiente:</p>



<pre class="wp-block-preformatted">(104)Connection reset by peer: [client XX.XX.XX.XX:XXXX] AH01075: Error dispatching request to : <br><br>AH01067: Failed to read FastCGI header</pre>



<p class="wp-block-paragraph">Al mirar más de cerca, resulto que Apache servia contenido estático sin problemas. Solo las páginas generadas por PHP mostraban el error.</p>



<p class="wp-block-paragraph">Cuando revise en los registros de PHP, la siguiente línea aparecía múltiples veces:</p>



<pre class="wp-block-preformatted">WARNING: [pool XXXXX] child XXXX exited on signal 11 (SIGSEGV - core dumped) after 30.977656 seconds from start</pre>



<p class="wp-block-paragraph">Este error de SIGSEGV en PHP significaba que había sucedido una <a rel="noreferrer noopener" aria-label="Violación de Acceso (opens in a new tab)" href="https://es.wikipedia.org/wiki/Violaci%C3%B3n_de_acceso" target="_blank">Violación de Acceso</a> de memoria (<em>segfault o segmentation fault</em>) por parte de PHP.</p>



<p class="wp-block-paragraph">¿Cómo era esto posible? ¿Qué lo estaba causando?</p>



<p class="wp-block-paragraph">Una de las soluciones temporales que encontré fue el usar el siguiente comando:</p>



<pre class="wp-block-preformatted">systemctl restart php7.3-fpm</pre>



<p class="wp-block-paragraph">Pero esta era una solución temporal. Ya que al poco tiempo el problema volvía a suceder. En algunos casos tan pronto como a los pocos segundos.</p>



<p class="wp-block-paragraph">Esto se estaba volviendo una pesadilla.</p>



<h2 class="wp-block-heading">Apache2, prefork y el modulo PHP7.3: ¿Origen del problema?</h2>



<p class="wp-block-paragraph">Durante mi investigación, detecte algo que pase por alto cuando actualice PHP a su versión 7.3: Me había agregado un nuevo módulo y cambiado el modo MPM de Apache.</p>



<p class="wp-block-paragraph">El modo lo podemos ver con el siguiente comando en ubuntu:</p>



<pre class="wp-block-preformatted">apache2ctl -V</pre>



<p class="wp-block-paragraph">¿Eso explicaba el problema?</p>



<p class="wp-block-paragraph">De lo primero que me percate es que ese nuevo módulo, llamado solamente «PHP7.3», necesitaba que Apache2 corriera en modo Prefork.</p>



<p class="wp-block-paragraph">No entendí por que de este movimiento, pero no era el cual había configurado en el servidor: Event.</p>



<p class="wp-block-paragraph">Por lo cual procedí a desactivar PHP7.3 y cambiar Prefork por Event, ejecutando lo siguiente:</p>



<pre class="wp-block-preformatted">sudo a2dismod php7.3<br>sudo a2dismod mpm_prefork<br>sudo a2enmod mpm_event<br>systemctl restart apache2<br>systemctl restart php7.3-fpm</pre>



<p class="wp-block-paragraph">De lo primero que me pude percatar, es que los errores de SIGSEGV en PHP bajaron dramáticamente con esto.</p>



<p class="wp-block-paragraph">Aunque pronto descubriría que estos estaban lejos de desaparecer.</p>



<h2 class="wp-block-heading">El error SIGSEGV en PHP da tregua, pero no por mucho</h2>



<p class="wp-block-paragraph">PHP 7.3 funciono de forma normal por algunos días. Pero eventualmente el error volvió a aparecer.</p>



<p class="wp-block-paragraph">En los registros volvía a ver la señal 11 de SIGSEGV en PHP, lo cual me indicó que el problema tenia muchas posibilidades de seguir apareciendo.</p>



<p class="wp-block-paragraph">Aunque era menos común, esto significaba que podía suceder en cualquier momento.</p>



<p class="wp-block-paragraph">Buscando más a fondo, encontré quizá lo más profundo del origen del problema:</p>



<pre class="wp-block-preformatted">segfault at 6c6f4320 ip b4b92b37 sp bfe93df0 error 4 in opcache.so[b4b82000+6d000]</pre>



<p class="wp-block-paragraph">Por fortuna, comencé a notar que no era el único con este problema. Usuarios del panel Plesk también <a rel="noreferrer noopener" aria-label="reportaron este problema (opens in a new tab)" href="https://talk.plesk.com/threads/php-7-3-fpm-dies-without-a-trace.350761/" target="_blank">reportaron este problema</a>. E incluso dicha empresa <a rel="noreferrer noopener" aria-label="no recomendando PHP7.3 por el momento (opens in a new tab)" href="https://support.plesk.com/hc/en-us/articles/360014718313-Domains-on-Plesk-PHP-7-3-are-down-Service-Unavailable" target="_blank">no está recomendando PHP7.3 por el momento</a>.</p>



<p class="wp-block-paragraph">Lo cual, parece indicar que no hay una solución definitiva por ahora.</p>



<h2 class="wp-block-heading">Entonces, ¿Cómo solucionar las caídas de PHP?</h2>



<p class="wp-block-paragraph">Como comenté antes, PHP constantemente arroja un error segfault o SIGSEGV el cual interrumpe la ejecución de cualquier recurso dinámico.</p>



<p class="wp-block-paragraph">Sin embargo, esto se soluciona cuando se reinicia el servicio. Hacerlo manualmente no es una solución aceptable. Y crear un cronjob no me parece una buena idea.</p>



<p class="wp-block-paragraph">Pero hay <a rel="noreferrer noopener" aria-label="otras alternativas (opens in a new tab)" href="https://serverfault.com/questions/575457/constantly-have-to-reload-php-fpm" target="_blank">alternativas</a> que ya ofrece PHP de forma nativa.</p>



<p class="wp-block-paragraph">Por ejemplo, nosotros podemos editar el archivo php-fpm.conf (ya que es el modo FPM el cual fallaba para mi) y configurar lo siguiente:</p>



<pre class="wp-block-preformatted">/etc/php/7.3/fpm/php-fpm.conf :<br>emergency_restart_threshold = 3<br>emergency_restart_interval = 1h<br>process_control_timeout = 10s</pre>



<p class="wp-block-paragraph">Con esto, hacemos que PHP este al pendiente por errores. Y cuando sucedan 3 errores en una hora, se reiniciará automáticamente.</p>



<p class="wp-block-paragraph">De esta forma, el servicio se restablecerá de forma automática sin necesitar nuestra intervención.</p>



<p class="wp-block-paragraph">Estos valores pueden ser fácilmente cambiados de acuerdo a tus propias necesidades. Solamente recuerda reiniciar el servicio de <em>php-fpm</em> una vez hagas cambios.</p>



<h2 class="wp-block-heading">Para concluir</h2>



<p class="wp-block-paragraph">Si bien actualmente PHP7.3 parece tener problemas con su sistema de cache interno, con las correcciones adecuadas es posible usarlo sin problemas.</p>



<p class="wp-block-paragraph">Pero hay algo muy importante que resaltar. Por ahora es mejor el mantenerse en PHP7.2 o tener múltiples versiones instaladas si es posible.</p>



<p class="wp-block-paragraph">Ya que, a diferencia de la versión más nueva, PHP7.2 está mucho más maduro y este tipo de problemas son mucho más raros.</p>



<p class="wp-block-paragraph">En mi caso, todavía sigo buscando que es lo que causa el error de SIGSEGV en PHP 7.3, y aunque sospecho que puede causarlo&#8230; no tengo una solución definitiva.</p>



<p class="wp-block-paragraph">Lo que si, espero que esta pequeña guía le sea de utilidad a alguien. Ya que encontrar una solución, aunque parcial, fue una búsqueda de varios días.</p>



<h2 class="wp-block-heading">Actualización y solución definitiva</h2>



<p class="wp-block-paragraph">Tras haber estado sufriendo el problema de los errores SIGSEGV por mucho tiempo con PHP 7.3, estos finalmente dejaron e suceder.</p>



<p class="wp-block-paragraph">Sin embargo, la solución puede no ser tan trivial.</p>



<p class="wp-block-paragraph">Resulta que con PHP 7.4, los errores simplemente desaparecieron. He estado observando los registros de PHP de forma continua por este error desde la actualización, pero esta no ha vuelto a suceder.</p>



<p class="wp-block-paragraph">Lo cual me hace pensar que <strong>el problema no esta presente en PHP 7.4</strong>.</p>



<p class="wp-block-paragraph">Si esta dentro de tus posibilidades, actualizar hacia la versión 7.4 de PHP es lo mejor. No solo trae más características si no que es hasta más seguro.</p>



<p class="wp-block-paragraph">En caso de que no sepas como actualizar, pregunta con quien lleva tu hospedaje, este debe de poder ayudarte.</p>
<p>The post <a href="https://kadai.com.mx/sigsegv-en-php-7-3-soluciones-al-problema/">Error SIGSEGV en PHP 7.3 [Solución definitiva]</a> appeared first on <a href="https://kadai.com.mx">Endless Manifesto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://kadai.com.mx/sigsegv-en-php-7-3-soluciones-al-problema/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1506</post-id>	</item>
		<item>
		<title>Virtualmin en Digital Ocean: Experiencias</title>
		<link>https://kadai.com.mx/virtualmin-digital-ocean-experiencias/</link>
					<comments>https://kadai.com.mx/virtualmin-digital-ocean-experiencias/#respond</comments>
		
		<dc:creator><![CDATA[Kadai Crosshansen]]></dc:creator>
		<pubDate>Sun, 15 Apr 2018 15:11:28 +0000</pubDate>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[digital ocean]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[vestacp]]></category>
		<category><![CDATA[virtualmin]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://kadai.com.mx/?p=1322</guid>

					<description><![CDATA[<p>Virtualmin es un panel de control que permite administrar un servidor. Tener uno que fuera eficiente era importante, ya que era parte del plan al moverse a Digital Ocean. Así es como me fue en esta odisea. Cambiar de servicio de hospedaje, para mi, era muy importante. Como parte de crecer y de aprendizaje. En [&#8230;]</p>
<p>The post <a href="https://kadai.com.mx/virtualmin-digital-ocean-experiencias/">Virtualmin en Digital Ocean: Experiencias</a> appeared first on <a href="https://kadai.com.mx">Endless Manifesto</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Virtualmin es un panel de control que permite administrar un servidor. Tener uno que fuera eficiente era importante, ya que era parte del plan al moverse a Digital Ocean. Así es como me fue en esta odisea.</p>
<p><span id="more-1322"></span></p>
<p>Cambiar de servicio de hospedaje, para mi, era muy importante. Como parte de crecer y de aprendizaje. En especial por que tenia muy en claro lo que necesitaba. Además de que necesitaba mayor poder de procesamiento.</p>
<p>Es por ello que un VPS (Virtual Private Server) era la solución correcta. Pero es implicaba el ensuciarse las manos un poco. ¿Por qué? Porque en la mayoría de los casos, solo se nos entrega el esqueleto sobre el cual trabajaremos.</p>
<p>El resto de software corre por nuestra cuenta. Igual la seguridad. Es por ello que administrar un Servidor Privado no es para cualquiera. Tienes que saber exactamente lo que estás haciendo.</p>
<h2>¿32bits o 64bits para Virtualmin?</h2>
<p>Antes que nada, quiero decir que primero probé Virtualmin con Ubuntu 16.04 a 64bits en una VPS con 2GB. <em>No lo hagan</em>. En especial si van a instalar la suite completa.</p>
<p>¿Por qué? Bien, un sistema de 64bits solo se necesita si van a tener un servidor con 4GB de ram o más.</p>
<p>Si tienen uno de 3GB o menos, con una distribución de 32bits tienen más que suficiente. En especial en lo que respecta al uso de memoria.</p>
<p>Las aplicaciones de 64bits usan mucha más memoria. En mi caso, llegue a observar que tanto MySQL y Virtualmin competían por los recursos después de algunas horas. Esto causaba que se necesitara reiniciar el servidor cada que sucedía.</p>
<p>Esto a pesar de tratar de reducir la memoria al mínimo. De todas las aplicaciones.</p>
<p>De entrada, en un sistema 64bits, MySQL usa cerca de 1GB de ram (con el caché incluido). Claro, esto con varios programas y sitios instalados. Contra los 508MB con la misma configuración en un sistema 32bits.</p>
<p>Vaya que hay una diferencia notable. Incluso en los procesos de apache y php.</p>
<p>Igualmente, en el <a href="https://www.virtualmin.com/documentation/system/low-memory" target="_blank" rel="noopener nofollow">sitio oficial recomiendan 32bits</a> para cuando hay memoria limitada. Cuando es 3GB o menos. Hay que hacer caso.</p>
<h2>Instalación de Virtualmin y configuración</h2>
<p>El panel lo puedes instalar tan fácilmente como ejecutar esto en la consola de un servidor nuevo:</p>
<p><code># wget http://software.virtualmin.com/gpl/scripts/install.sh</code><br />
<code># sudo /bin/sh install.sh</code></p>
<p>Por supuesto, nosotros podemos seleccionar entre otras opciones como instalar una configuración LEMP (nginx) en vez de <a href="https://kadai.com.mx/2017/05/29/give-xampp-try-using-wordpress/" target="_blank" rel="noopener">LAMP</a> (apache). O un servidor con características mínimas.</p>
<p>Pero el LAMP es mejor, en especial si necesitamos correr aplicaciones como WordPress. Aunque todavía, quizá en un futuro, pueda tener un proxy inverso con nginx y apache.</p>
<p>Pero ya veremos.</p>
<p>Regresando a la instalación. La misma es prácticamente automática. Como lo es la de <a href="https://vestacp.com/" target="_blank" rel="noopener nofollow">VestaCP</a>. Otro panel que pude probar. Pero a diferencia de Vesta, prácticamente todas las funcionalidades funcionaban <em>out-of-the-box</em>. Lo cual ahorra mucho más tiempo.</p>
<p>En cuanto a la configuración, hay poco que hacerle. Pero quizá lo más importante es el cambiar el modo por defecto de la ejecución delos scripts PHP por apache.</p>
<p>Por ejemplo, la configuración por defecto usa FCGId como modo de ejecución para PHP-FPM. Pero si instalas los paquetes necesarios, puedes usar el modo FPM. Aunque después de estar realizando muchas pruebas&#8230; tal parece que el modo por defecto, el FCGId, funciona sin comerse tanta memoria. Lo cual es una buena ventaja en servidores con poca memoria.</p>
<p>Se pueden hacer ajustes finos. Como los que se mencionan en <a href="https://linode.com/docs/web-servers/apache-tips-and-tricks/tuning-your-apache-server/" target="_blank" rel="noopener nofollow">esta página de Linode</a>. Aunque no los he probado, hasta el momento el servidor que he montado ha soportado la carga.</p>
<p>Al menos ya no me muestra la multitud de errores 525, 503 y 520 de antes. Eso ya es ganancia. Junto con la velocidad general adquirida.</p>
<h3>Conclusiones sobre Virtualmin y Digital Ocean</h3>
<p>Si bien apenas llevo poco tiempo usando Virtualmin, este ha sido un panel que es realmente maravilloso para administrar un servidor. Te permite instalar servidor de correo con un cliente. Servidor LAMP, firewall, administrador de archivos, administrador de base de datos, entre otras cosas.</p>
<p>Esta muy completo.</p>
<p>Esto si, la curva de aprendizaje esta muy <em>empinada</em>. Uno puede tardarse mucho tiempo en conocer todo lo que puede hacer el panel.</p>
<p>No es muy amigable con el usuario. Pero eso no quita que sea muy poderosa.</p>
<p>Otra de las desventajas es que no cuenta con todas las opciones posibles en el frontend. Por lo cual muchas veces necesitarás editar los archivos directamente en el servidor desde la consola.</p>
<p>No es una queja, pero cuando te acostumbras&#8230; suele ser más rápido editar las configuraciones directamente en al consola. En vez de estarla buscando entre un mar de opciones.</p>
<p>Pero eso no quita el hecho de que sigo más que satisfecho y recomiendo este panel.</p>
<p>The post <a href="https://kadai.com.mx/virtualmin-digital-ocean-experiencias/">Virtualmin en Digital Ocean: Experiencias</a> appeared first on <a href="https://kadai.com.mx">Endless Manifesto</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://kadai.com.mx/virtualmin-digital-ocean-experiencias/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1322</post-id>	</item>
	</channel>
</rss>
