<?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>Jorge Iván Meza Martínez &#187; Apache</title> <atom:link href="http://blog.jorgeivanmeza.com/tag/apache/feed/" rel="self" type="application/rss+xml" /><link>http://blog.jorgeivanmeza.com</link> <description>The Fire Within Me: &#34;knowledge will set you free&#34;</description> <lastBuildDate>Tue, 31 Jan 2012 18:18:13 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Permisos de archivos/directorios incorrectos para el servidor de páginas en GNU/Linux</title><link>http://blog.jorgeivanmeza.com/2012/01/permisos-de-archivosdirectorios-incorrectos-para-el-servidor-de-paginas-en-gnulinux/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=permisos-de-archivosdirectorios-incorrectos-para-el-servidor-de-paginas-en-gnulinux</link> <comments>http://blog.jorgeivanmeza.com/2012/01/permisos-de-archivosdirectorios-incorrectos-para-el-servidor-de-paginas-en-gnulinux/#comments</comments> <pubDate>Mon, 30 Jan 2012 03:15:46 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[Hipergalaxia]]></category> <category><![CDATA[permisos]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=49950</guid> <description><![CDATA[Introducción El problema mas común que impide que se pueda acceder correctamente a un sitio o aplicación web que se está instalando o desarrollando es que los archivos y directorios no cuenten con los permisos de acceso apropiados para que &#8230; <a
href="http://blog.jorgeivanmeza.com/2012/01/permisos-de-archivosdirectorios-incorrectos-para-el-servidor-de-paginas-en-gnulinux/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Introducción</h2><p>El problema mas común que impide que se pueda acceder correctamente a un sitio o aplicación web que se está instalando o desarrollando es que los archivos y directorios no cuenten con los permisos de acceso apropiados para que el servidor de páginas (Apache por ejemplo) pueda accederlos correctamente.  En estos casos se obtiene un mensaje de error similar al  mostrado a continuación.</p><p
style="padding-left: 30px;"><em>failed to open stream: Permission denied in /ruta/al/proyecto/index.php on line xx</em></p><h2>La solución</h2><p>En términos generales, los directorios deben contar con permisos 755 (<span
style="font-family: courier new,courier;">drwxr-xr-x</span>) y los archivos -como .php- 644 (<span
style="font-family: courier new,courier;">-rw-r&#8211;r&#8211;</span>).  Esta modificación puede realizarse de manera recursiva aprovechando la flexibilidad del comando <span
style="font-family: courier new,courier;">find</span> de la siguiente manera.</p><pre>$ find /ruta/al/proyecto -type d -exec chmod 755 {} \;
$ find /ruta/al/proyecto -type f -exec chmod 644 {} \;</pre><p>Inclusive es posible establecer filtros a los nombres de los recursos actualizados para mayor precisión en el cambio.</p><pre>$ find /ruta/al/proyecto -type f -name '*.php' -exec chmod 644 {} \;</pre>]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2012/01/permisos-de-archivosdirectorios-incorrectos-para-el-servidor-de-paginas-en-gnulinux/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Invalid command &#039;RewriteEngine&#039; con Apache2</title><link>http://blog.jorgeivanmeza.com/2012/01/invalid-command-rewriteengine-con-apache2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=invalid-command-rewriteengine-con-apache2</link> <comments>http://blog.jorgeivanmeza.com/2012/01/invalid-command-rewriteengine-con-apache2/#comments</comments> <pubDate>Mon, 30 Jan 2012 02:58:08 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[Hipergalaxia]]></category> <category><![CDATA[rewrite]]></category> <category><![CDATA[RewriteEngine]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=49948</guid> <description><![CDATA[Introducción Intentando utilizar un software web que incluía un .htaccess y este se aprovechaba de la funcionalidad del RewriteEngine de Apache2, obtenía siempre el siguiente mensaje de error. Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included &#8230; <a
href="http://blog.jorgeivanmeza.com/2012/01/invalid-command-rewriteengine-con-apache2/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Introducción</h2><p>Intentando utilizar un software web que incluía un <span
style="font-family: courier new,courier;">.htaccess</span> y este se aprovechaba de la funcionalidad del <span
style="font-family: courier new,courier;">RewriteEngine</span> de Apache2, obtenía siempre el siguiente mensaje de error.</p><p
style="padding-left: 30px;"><em>Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration</em></p><h2>Solución</h2><p>Activar el módulo del <span
style="font-family: courier new,courier;">RewriteEngine</span> de Apache2.</p><p><span
style="font-family: courier new,courier;">$ sudo a2enmod rewrite</span></p><p>Reiniciar Apache2 para que tenga en cuenta al módulo recién activado.</p><p><span
style="font-family: courier new,courier;">$ sudo service apache2 restart</span></p> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2012/01/invalid-command-rewriteengine-con-apache2/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Mostrar en pantalla los errores producidos en PHP con Apache bajo Ubuntu</title><link>http://blog.jorgeivanmeza.com/2011/12/mostrar-en-pantalla-los-errores-producidos-en-php-con-apache-bajo-ubuntu/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mostrar-en-pantalla-los-errores-producidos-en-php-con-apache-bajo-ubuntu</link> <comments>http://blog.jorgeivanmeza.com/2011/12/mostrar-en-pantalla-los-errores-producidos-en-php-con-apache-bajo-ubuntu/#comments</comments> <pubDate>Wed, 28 Dec 2011 05:44:49 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[GNU/Linux]]></category> <category><![CDATA[Hipergalaxia]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[php.ini]]></category> <category><![CDATA[Ubuntu]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=49833</guid> <description><![CDATA[Introducción Mientras que en producción mostrar al usuario final la información relacionada con el error producido es un riesgo de seguridad demasiado alto, durante el desarrollo del software es una condición necesaria para entender que está pasando con el código &#8230; <a
href="http://blog.jorgeivanmeza.com/2011/12/mostrar-en-pantalla-los-errores-producidos-en-php-con-apache-bajo-ubuntu/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Introducción</h2><p>Mientras que en producción mostrar al usuario final la información relacionada con el error producido es un riesgo de seguridad demasiado alto, durante el desarrollo del software es una condición necesaria para entender que está pasando con el código que se está probando.</p><p>En la mayoría de despliegues de Apache/PHP vienen ahora con esta opción desactivada, redireccionando por defecto los mensajes de error al archivo de registro habitualmente ubicado en <span
style="font-family: courier new,courier;">/var/log/apache2/error.log</span>.</p><h2>Procedimiento</h2><p>Es posible activar la opción de mostrar los errores de PHP en pantalla a tres diferentes niveles de acuerdo con el alcance que se le desee dar a este comportamiento.</p><p>A <strong>nivel global</strong>, esta modificación aplica a todo el servidor o sitios web publicados bajo esa configuración.</p><p><span
style="font-family: courier new,courier;">$ sudo vi /etc/php5/apache2/php.ini</span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">error_reporting = E_ALL </span><br
/><span
style="font-family: courier new,courier;">display_errors = On</span></p><p>A <strong>nivel de un directorio o una aplicación</strong>, esta modificación afecta a los <em>scripts</em> ubicados bajo un directorio específico.</p><p><span
style="font-family: courier new,courier;">$ vi /var/html/un/directorio/especifico/.htaccess</span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">&lt;IfModule mod_php5.c&gt;<br
/>    php_value error_reporting E_ALL </span><br
/><span
style="font-family: courier new,courier;">    php_value display_errors on</span><br
/><span
style="font-family: courier new,courier;">&lt;/IfModule&gt;</span></p><p>A <strong>nivel de una sección de código específico</strong>, esta modificación afecta sólo una parte de un <em>script</em>.</p><p><span
style="font-family: courier new,courier;">$ vi /var/html/un/script.php</span></p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">error_reporting(E_ALL);</span><br
/><span
style="font-family: courier new,courier;">ini_set('display_errors','On');</span></p><h2>Aclaración adicional</h2><p>Para que los ajustes de configuración de los últimos dos niveles sean tenidos en cuenta, el directorio donde del sitio web publicado deberá tener por lo menos activa la siguiente opción.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">AllowOverride Options</span></p><p>Esta se deberá modificar bajo <span
style="font-family: courier new,courier;">/etc/apache2/mods-enabled/userdir.conf</span> para los sitios personales de los usuarios (<span
style="font-family: courier new,courier;">public_html</span>) o <span
style="font-family: courier new,courier;">/etc/apache2/sites-enabled/*</span> para los <em>virtualhosts</em> existentes.</p> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2011/12/mostrar-en-pantalla-los-errores-producidos-en-php-con-apache-bajo-ubuntu/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Impedir el acceso a los &#039;bots&#039; a un sitio web</title><link>http://blog.jorgeivanmeza.com/2009/10/impedir-el-acceso-a-los-bots-a-un-sitio-web/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=impedir-el-acceso-a-los-bots-a-un-sitio-web</link> <comments>http://blog.jorgeivanmeza.com/2009/10/impedir-el-acceso-a-los-bots-a-un-sitio-web/#comments</comments> <pubDate>Wed, 14 Oct 2009 18:26:07 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[.htaccess]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Hipergalaxia]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=2057</guid> <description><![CDATA[Introducción. Los bots de los motores de búsqueda son las aplicaciones que contínuamente están revisando los sitios web y sus enlaces para indexar sus páginas.  Esto es bueno porque es precisamente lo que permite funcionar a los buscadores web y &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/10/impedir-el-acceso-a-los-bots-a-un-sitio-web/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Introducción.</h2><p>Los <em>bots</em> de los motores de búsqueda son las aplicaciones que contínuamente están revisando los sitios web y sus enlaces para indexar sus páginas.  Esto es bueno porque es precisamente lo que permite funcionar a los buscadores web y mantener su información actualizada, sin embargo también es malo para quienes mantienen los sitios si estos acceden con demasiada frecuencia y utilizan demasiados recursos del servidor, además también es posible que se desee mantener información oculta a los ojos de estos motores de búsqueda.</p><p>Para hacer esto se les indica o se les niega el acceso a nuestro sitio a estas aplicaciones.</p><h2>Procedimiento.</h2><h3>Utilizando el archivo <span
style="font-family: courier new,courier;">robots.txt</span>.</h3><ul><li>Este archivo se debe ubicar en la raíz del sitio web.</li><li>Es una indicación <em>amable</em> a los <em>bots</em> para que cumplan lo que allí se especifica.</li><li>Es posible que <em>bots</em> malintencionados hagan caso omiso de estas indicaciones.</li></ul><p>Impedir el acceso a <span
style="text-decoration: underline;">todo</span> el sitio a <span
style="text-decoration: underline;">todos</span> los <em>bots</em>.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;"># Go away<br
/> User-agent: *<br
/> Disallow: /</span></p><p>Impedir el acceso a la carpeta /blog del sitio al <em>bot</em> de Google.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;"># Don't index my blog<br
/> User-Agent: Googlebot<br
/> Disallow: /blog/</span></p><h3>Desde el archivo .htaccess.</h3><ul><li>Las modificaciones se realizan en el archivo .htaccess del sitio web.</li><li>Estas políticas son mas restrictivas y no pueden ser obviadas por los <em>bots</em>.</li><li>Debe concerse con precisión la red de la cual proviene el <em>bot</em> ya que se impedirá su acceso por parte del servidor de páginas.</li><li>Es posible que existan otros clientes válidos que intenten acceder desde las ubicaciones especificadas, por ello la dirección especificada deberá ser lo mas precisa posible.</li></ul><p>Impedir el acceso al <em>bot</em> de Google.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">Limit GET HEAD POST<br
/> order allow,deny<br
/> deny from 66.249<br
/> allow from all</span></p> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/10/impedir-el-acceso-a-los-bots-a-un-sitio-web/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Problemas con mod_security</title><link>http://blog.jorgeivanmeza.com/2009/06/problemas-con-mod_security/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=problemas-con-mod_security</link> <comments>http://blog.jorgeivanmeza.com/2009/06/problemas-con-mod_security/#comments</comments> <pubDate>Tue, 09 Jun 2009 17:46:50 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[mod_security]]></category> <category><![CDATA[Piwik]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1755</guid> <description><![CDATA[Introducción. Mod_security es una herramienta extremadamente útil que actúa como un firewall para los sitios web permitiendo filtrar de manera muy flexible la forma como los usuarios acceden a las aplicaciones web, evitando por ejemplo vulnerabilidades conocidas o accesos inválidos.  &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/06/problemas-con-mod_security/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>Introducción.</h2><p><strong><a
href="http://www.modsecurity.org/" target="_blank">Mod_security</a></strong> es una herramienta extremadamente útil que actúa como un <em>firewall</em> para los sitios web permitiendo filtrar de manera muy flexible la forma como los usuarios acceden a las aplicaciones web, evitando por ejemplo vulnerabilidades conocidas o accesos inválidos.  <a
href="http://www.modsecurity.org/documentation/ModSecurity_The_Open_Source_Web_Application_Firewall_Nov2007.pdf" target="_blank">Mas información</a>.</p><p>Su flexibilidad la convierte también en algo un tanto compleja de entender, como todo en la vida tendré que sacar un tiempo para estudiarla y entender en serio como se implementan sus reglas.</p><h2>Descripción del problema.</h2><p>En la vida práctica algunas veces las restricciones por defecto que por seguridad el módulo impone interfieren con el correcto funcionamiento de la aplicación web y es cuando suceden mis problemas.  Me sucedió alguna vez con un sitio basado en <a
href="http://codeigniter.com/" target="_blank">CodeIgniter</a> y ahora con una instalación de <a
href="http://piwik.org/" target="_blank">Piwik</a>.</p><p>El acceso al <em>script</em> de generación de estadísticas funcionaba correctamente cuando este era accedido directamente.</p><p
style="padding-left: 30px;">http://www.server.com/piwik/piwik.php</p><p>Sin embargo fallaba por <em>extrañas</em> razones cuando era accedido con parámetros GET tal y como se debe hacer cuando se instala en un sitio web para que lleve las estadísticas de acceso a sus páginas.</p><p
style="padding-left: 30px;">http://www.server.com/piwik/piwik.php?url=http%3A%2F%2Fwww.server.com%2Fsite%2F&amp;action_name=Main&amp;idsite=1&amp;res=1280&#215;1024&amp;h=10&amp;m=55&amp;s=25&amp;fla=1&amp;dir=0&amp;realp=0&amp;pdf=1&amp;wma=1&amp;java=0&amp;cookie=1&amp;title=Main%20|%20My%20Site&amp;urlref=</p><p>Si se invocaba directamente se producía un error 503 (<em>Service Temporarily Unavailable</em>) y en las aplicaciones que lo tuvieran instalado para el control de sus estadísticas aparecía como una imagen al final de su contenido (en lugar de un cuadrado transparente).</p><p>El problema era que <strong>mod_security</strong> estaba impidiendo el acceso normal al sitio debido a alguna de sus reglas.</p><h2>Descripción de la solución.</h2><p>Sin tener profundos conocimientos en la creación y manipulación de las reglas de <strong>mod_security</strong> la idea no era modificarlas sino evitar que se aplicara el filtro sobre la aplicación web afectada.</p><p>Una primera solución fue desactivar por completo a <strong>mod_security</strong> para esa aplicación específica.  Para hacer esto es necesario crear un archivo <span
style="font-family: courier new,courier;">.htaccess</span> en el directorio raíz de la aplicación con el siguiente contenido.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">SecFilterEngine Off<br
/> SecFilterScanPOST Off</span></p><p>Esto soluciona el problema sin embargo también elimina las ventajas de seguridad que trae consigo el módulo.  Una segunda opción sería entonces evitar que el filtro se aplique al archivo específico que está teniendo el problema con el filtro.  Para hacer esto el contenido del archivo <span
style="font-family: courier new,courier;">.htaccess</span> debe ser el siguiente.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">SetEnvIfNoCase Request_URI ^<span
style="color: #333399;"><strong>/piwik/piwik\.php</strong></span>$ MODSEC_ENABLE=Off</span></p><p>Donde se especifica la ubicación exacta (relativa o absoluta) del archivo con problemas.</p><h2>Enlaces.</h2><ul><li>mod_security: Opensource Web Application Firewall.<br
/> <a
href="http://www.modsecurity.org/" target="_blank">http://www.modsecurity.org/</a></li><li>Apache Module mod_setenvif.<br
/> <a
href="http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html" target="_blank">http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html</a></li><li>mod_security en Dreamhost Wiki.<br
/> <a
href="http://wiki.dreamhost.com/Mod_security" target="_blank">http://wiki.dreamhost.com/Mod_security</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/06/problemas-con-mod_security/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Instalación de Apache, PHP y MySQL en Linux Debian 5</title><link>http://blog.jorgeivanmeza.com/2009/04/instalacion-de-apache-php-y-mysql-en-linux-debian-5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=instalacion-de-apache-php-y-mysql-en-linux-debian-5</link> <comments>http://blog.jorgeivanmeza.com/2009/04/instalacion-de-apache-php-y-mysql-en-linux-debian-5/#comments</comments> <pubDate>Mon, 20 Apr 2009 14:07:59 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[Debian]]></category> <category><![CDATA[Hipergalaxia]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1658</guid> <description><![CDATA[El método rápido. La instalación de estos paquetes se puede realizar de dos maneras.  Utilizando Tasksel, que yo he llamado el método rápido, o instalando -casi- individualmente los paquetes que se deseen.  En mi opinión personal prefiero el segundo método &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/04/instalacion-de-apache-php-y-mysql-en-linux-debian-5/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<h2>El método rápido.</h2><p>La instalación de estos paquetes se puede realizar de dos maneras.  Utilizando <a
href="https://help.ubuntu.com/community/Tasksel" target="_blank">Tasksel</a>, que yo he llamado el método rápido, o instalando -casi- individualmente los paquetes que se deseen.  En mi opinión personal prefiero el segundo método ya que controlo directamente que se está instalando en el servidor.</p><p><a
href="https://help.ubuntu.com/community/Tasksel" target="_blank">Tasksel</a> es una herramientas de Debian que se incluye en la mayoría de las distribuciones hijas (como Ubuntu) y permite instalar en bloque muchos paquetes según agrupaciones predefinidas, entre ellas la instalacion de un <em>LAMP Server</em>.</p><h2>Instalación de Apache.</h2><h3>Instalación del servidor HTTP.</h3><p><span
style="font-family: courier new,courier;"># apt-get install apache2</span></p><p><span
style="font-family: courier new,courier;"># apt-get install wwwconfig-common</span></p><h3>Modificar la ubicación del <span
style="font-family: courier new,courier;">DOCUMENT_ROOT</span>.</h3><p>Por defecto el árbol de directorios que se publica a través del servidor web se ubica en <span
style="font-family: courier new,courier;">/var/www</span>, si se desea modificar esta ubicación es necesario realizar los siguientes pasos.</p><p>Crear el directorio donde se almacenarán los documentos web.</p><p><span
style="font-family: courier new,courier;"># mkdir -p /home/www/public</span></p><p>Modificar la configuración de Apache para incluír a este nuevo directorio.</p><p><span
style="font-family: courier new,courier;"># vi /etc/apache2/sites-enabled/000-default</span></p><p>Reemplazar las ocurrencias de <span
style="font-family: courier new,courier;">/var/www</span> por la ruta deseada, es decir, los valores de <span
style="font-family: courier new,courier;">DocumentRoot</span> y su correspondiente <span
style="font-family: courier new,courier;">Directory</span>.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;"> DocumentRoot /home/www/public/<br
/> # &#8230;<br
/> &lt;Directory /home/www/public/&gt;<br
/> # &#8230;</span></p><p>Reiniciar el servicio para tener en cuenta los cambios recién realizados.</p><p><span
style="font-family: courier new,courier;"># /etc/init.d/apache2 restart</span></p><h2>Instalación de PHP.</h2><p>Instalación de lenguaje de programación y varios de sus módulos.</p><p><span
style="font-family: courier new,courier;"># apt-get install php5 php5-cli php5-gd php5-mcrypt php5-curl php5-imagick php5-mhash php5-sqlite php5-xsl</span></p><p>Instalación del módulo dinámico (DSO) de Apache.</p><p><span
style="font-family: courier new,courier;"># apt-get install libapache2-mod-php5</span></p><h2>Instalación de MySQL.</h2><p>Instalación del motor de base de datos.</p><p><span
style="font-family: courier new,courier;"># apt-get install mysql-server</span></p><p>Instalación del modulo de PHP asociado a este motor de base de datos.</p><p><span
style="font-family: courier new,courier;"># apt-get install php5-mysql</span></p><p>Instalación de PHPMyAdmin para la administración de la base de datos a través de web.</p><p><span
style="font-family: courier new,courier;"># apt-get install phpmyadmin</span></p><p>El acceso se realiza a través de la URL <span
style="font-family: courier new,courier;">http://localhost/phpmyadmin/</span>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/04/instalacion-de-apache-php-y-mysql-en-linux-debian-5/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Moviendo a mi blog de subdominio</title><link>http://blog.jorgeivanmeza.com/2009/03/moviendo-a-mi-blog-de-subdominio/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=moviendo-a-mi-blog-de-subdominio</link> <comments>http://blog.jorgeivanmeza.com/2009/03/moviendo-a-mi-blog-de-subdominio/#comments</comments> <pubDate>Mon, 30 Mar 2009 21:31:59 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Software]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[DreamHost]]></category> <guid
isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1604</guid> <description><![CDATA[Por ninguna razón aparente, hoy cambié mi blog de dominio.  Hasta esta mañana era http://jorgeivanmeza.com/blog/, ahora es http://blog.jorgeivanmeza.com/. El procedimiento no fue interesante, simplemente creé el nuevo subdominio y copié los archivos con un cp -rf, sin embargo si me &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/03/moviendo-a-mi-blog-de-subdominio/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Por ninguna razón aparente, hoy cambié mi blog de dominio.  Hasta esta mañana era <a
href="http://jorgeivanmeza.com/blog" target="_blank">http://jorgeivanmeza.com/blog/</a>, ahora es <a
href="http://blog.jorgeivanmeza.com/" target="_blank">http://blog.jorgeivanmeza.com/</a>.</p><p>El procedimiento no fue interesante, simplemente creé el nuevo subdominio y copié los archivos con un <span
style="font-family: courier new,courier;">cp -rf</span>, sin embargo si me interesa documentar el pequeño cambio que tuve que hacer para conservar la ruta anterior y no romper enlaces antiguos al sitio, especialmente el del RSS.</p><p>Es necesario indicarle a Apache que la <em>ubicación antigua</em> ha sido movida a la <em>nueva ubicación</em>.  Para esto agregué la siguiente instrucción al archivo <span
style="font-family: courier new,courier;">.htaccess</span> ubicado en el directorio raíz correspondiente con el URL <a
href="http://jorgeivanmeza.com/" target="_blank">http://jorgeivanmeza.com/</a>.</p><p
style="padding-left: 30px;"><span
style="font-family: courier new,courier;">redirect 301 /blog/ http://blog.jorgeivanmeza.com/</span></p><p>El formato de la instrucción <span
style="font-family: courier new,courier;">redirect</span> es el siguiente.</p><ul><li>Movido permanentemente: <strong><span
style="font-family: courier new,courier;">301</span></strong>.</li><li>Ubicación antigua: <strong><span
style="font-family: courier new,courier;">/blog/</span></strong>.</li><li>Nueva ubicación: <strong><span
style="font-family: courier new,courier;">http://blog.jorgeivanmeza.com/</span></strong>.</li></ul><p>Gracias a esto mis <em>feeds</em> se pueden consultar tanto desde el nuevo sitio: <a
href="http://blog.jorgeivanmeza.com/feed/" target="_blank">http://blog.jorgeivanmeza.com/feed/</a> como desde el anterior: <a
href="http://jorgeivanmeza.com/blog/feed/" target="_blank">http://jorgeivanmeza.com/blog/feed/</a>.</p><h2>Enlaces.</h2><ul><li>htaccess 301 redirect tutorial.<br
/> <a
href="http://www.tamingthebeast.net/articles3/spiders-301-redirect.htm" target="_blank">http://www.tamingthebeast.net/articles3/spiders-301-redirect.htm</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/03/moviendo-a-mi-blog-de-subdominio/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Instalación de Apache, MySQL y PHP en Linux Ubuntu</title><link>http://blog.jorgeivanmeza.com/2009/02/instalacion-de-apache-mysql-y-php-en-linux-ubuntu/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=instalacion-de-apache-mysql-y-php-en-linux-ubuntu</link> <comments>http://blog.jorgeivanmeza.com/2009/02/instalacion-de-apache-mysql-y-php-en-linux-ubuntu/#comments</comments> <pubDate>Sun, 15 Feb 2009 23:08:56 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Desarrollo de software]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[PHP]]></category> <guid
isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=1358</guid> <description><![CDATA[Estos son los pasos que se siguieron para instalar los paquetes de [L]AMP: Apache, MySQL y PHP en mi equipo de desarrollo ahora que estoy estrenando Ubuntu Intrepid (8.10) -nuevamente-. Apache. $ sudo apt-get install apache2 libapache-mod-suphp MySQL. $ sudo &#8230; <a
href="http://blog.jorgeivanmeza.com/2009/02/instalacion-de-apache-mysql-y-php-en-linux-ubuntu/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Estos son los pasos que se siguieron para instalar los paquetes de [L]AMP: Apache, MySQL y PHP en mi equipo de desarrollo ahora que estoy estrenando Ubuntu Intrepid (8.10) -nuevamente-.</p><h3>Apache.</h3><p><span
style="font-family: courier new,courier;">$ sudo apt-get install apache2 libapache-mod-suphp</span></p><h3>MySQL.</h3><p><span
style="font-family: courier new,courier;">$ sudo apt-get install mysql-admin mysql-client mysql-navigator mysql-server phpmyadmin<br
/> </span></p><h3>PHP.</h3><p><span
style="font-family: courier new,courier;">$ sudo apt-get install php5 php5-cli php5-dbg php5-gd php5-interbase php5-mcrypt php5-mysql php5-sqlite php5-suhosin php5-xdebug php-soap</span></p> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2009/02/instalacion-de-apache-mysql-y-php-en-linux-ubuntu/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Instalación de Python 2.5.x y mod_python 3.x en FreeBSD 7.x</title><link>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-python-25x-y-mod_python-3x-en-freebsd-7x/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=instalacion-de-python-25x-y-mod_python-3x-en-freebsd-7x</link> <comments>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-python-25x-y-mod_python-3x-en-freebsd-7x/#comments</comments> <pubDate>Tue, 27 May 2008 19:27:41 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[FreeBSD]]></category> <category><![CDATA[mod_python]]></category> <category><![CDATA[Python]]></category> <guid
isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=351</guid> <description><![CDATA[Instalación del intérprete de Python. # cd /usr/ports/lang/python # make install clean THREADS UCS4 PYMALLOC IPV6 # python -V Python 2.5.2 Instalación de mod_python. # cd /usr/ports/lang/mod_python3 # make install clean Configuración de Apache con mod_python. # vi /usr/local/etc/apache22/httpd.conf LoadModule &#8230; <a
href="http://blog.jorgeivanmeza.com/2008/05/instalacion-de-python-25x-y-mod_python-3x-en-freebsd-7x/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Instalación del intérprete de <a
href="http://www.python.org/" target="_blank">Python</a>.</p><pre># cd /usr/ports/lang/python
# make install clean</pre><pre>    THREADS
    UCS4
    PYMALLOC
    IPV6</pre><pre># python -V</pre><pre>    Python 2.5.2</pre><p>Instalación de <a
href="http://www.modpython.org/" target="_blank">mod_python</a>.</p><pre># cd /usr/ports/lang/mod_python3</pre><pre># make install clean</pre><p>Configuración de <strong>Apache </strong>con <strong>mod_python</strong>.</p><pre># vi /usr/local/etc/apache22/httpd.conf</pre><pre>    LoadModule python_module libexec/apache22/mod_python.so
    PythonOption mod_python.mutex_directory "/tmp"
    PythonOption mod_python.mutex_locks 8</pre><pre>    &lt;Directory "/home/web"&gt;
        AddHandler mod_python .py
        PythonHandler pythontest
        PythonDebug On
    &lt;/Directory&gt;</pre><p>Recuérdese que el <strong>DOCUMENT_ROOT </strong>del servidor es "<span
style="font-family: courier new,courier;">/home/web</span>".</p><p>A continuación se creará el siguiente archivo ubicado en <span
style="font-family: courier new,courier;">/home/web/pythontest.py</span> para verificar el funcionamiento del módulo.</p><pre># vi /home/web/pythontest.py</pre><pre>from mod_python import apache
import datetime
def handler(req):
    today = datetime.date.today()
    req.content_type = "text/plain"
    req.write("Hello, today is " + str(today.day) + "/" + str(today.month) + "/" + str(today.year) + ".")
    return apache.OK</pre><p>Si se consulta el sitio <span
style="font-family: courier new,courier;">http://webserver.mydomain.com/pythontest.py</span> deberá obtenerse una respuesta similar a la mostrada a continuación.</p><pre>    Hello, today is 27/5/2008.</pre><p>Si se intenta ejecutar cualquier otro programa <span
style="font-family: courier new,courier;">.py</span> ubicado en el mismo directorio (<span
style="font-family: courier new,courier;">/home/web</span>) se obtendrá siempre la misma respuesta ya que en la configuración de Apache se especificó que ese archivo (<span
style="font-family: courier new,courier;">pythontest.py</span>) sería quien manipulase los archivos Python en ese directorio.  Para permitir el acceso de otros programas desde la misma ubicación se deberán utilizar manipuladores (<em>handlers</em>) especiales como <a
href="http://www.modpython.org/live/current/doc-html/hand-pub.html" target="_blank">mod_python.Publisher</a>, <a
href="http://www.astro.umass.edu/~dpopowich/python/mpservlets/" target="_blank">mpservlets</a> o <a
href="http://www.dscpl.com.au/projects/vampire/" target="_blank">Vampire</a>.</p><p>Enalces.</p><ul><li><a
href="http://www.python.org/" target="_blank">Lenguaje de programación Python</a>.</li><li><a
href="http://www.modpython.org/" target="_blank">mod_python</a>.</li><li><a
href="http://www.modpython.org/live/current/doc-html/inst-installing.html" target="_blank">Instalación de mod_python</a> (<a
href="http://www.modpython.org/live/current/doc-html/" target="_blank">documentación en general</a>).</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-python-25x-y-mod_python-3x-en-freebsd-7x/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Instalación de mod_security 2.1.7_1  en FreeBSD 7.x</title><link>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-mod_security-modsecurity-217_1-en-freebsd-7x/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=instalacion-de-mod_security-modsecurity-217_1-en-freebsd-7x</link> <comments>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-mod_security-modsecurity-217_1-en-freebsd-7x/#comments</comments> <pubDate>Tue, 27 May 2008 03:51:10 +0000</pubDate> <dc:creator>jimezam</dc:creator> <category><![CDATA[Internet]]></category> <category><![CDATA[Linux/Solaris/BSD]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[FreeBSD]]></category> <category><![CDATA[mod_security]]></category> <guid
isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=350</guid> <description><![CDATA[# cd /usr/ports/www/mod_security2 # make install clean # vi /usr/local/etc/apache22/httpd.conf LoadFile /usr/local/lib/libxml2.so LoadModule mod_security2 libexec/apache22/mod_security2.so &#60;IfModule security2_module&#62; SecRuleEngine On &#60;/IfModule&#62; # /usr/local/etc/rc.d/apache22 restart Nota: la instalación con la versión 2.1.3 no se pudo realizar ya que el Makefile no realizaba &#8230; <a
href="http://blog.jorgeivanmeza.com/2008/05/instalacion-de-mod_security-modsecurity-217_1-en-freebsd-7x/">Continue reading <span
class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<pre># cd /usr/ports/www/mod_security2</pre><pre># make install clean</pre><pre># vi /usr/local/etc/apache22/httpd.conf</pre><pre style="padding-left: 30px;">LoadFile /usr/local/lib/libxml2.so
LoadModule mod_security2    libexec/apache22/mod_security2.so
&lt;IfModule security2_module&gt;
    SecRuleEngine On
&lt;/IfModule&gt;</pre><pre># /usr/local/etc/rc.d/apache22 restart</pre><p><strong>Nota</strong>: la instalación con la versión 2.1.3 no se pudo realizar ya que el Makefile no realizaba correctamente el enlace con libxml2 y fallaban las reglas que requerían procesamiento de XML.  Se recomienda <a
href="http://www.freshports.org/www/mod_security2" target="_blank">actualizar a una versión superior</a>.</p><p>El siguiente paso consiste en configurar las <a
href="http://www.modsecurity.org/projects/rules/index.html" target="_blank">reglas de seguridad</a> que apliquen a su negocio.  Para esto edite apropiadamente los siguientes archivos bajo la ruta <span
style="font-family: courier new,courier;">/usr/local/etc/apache22/Includes</span>.</p><ul><li><span
style="font-family: courier new,courier;">mod_security2.conf</span></li><li><span
style="font-family: courier new,courier;">no-accf.conf</span></li><li><span
style="font-family: courier new,courier;">mod_security2/   (directorio de reglas)</span></li></ul><p>Enlaces</p><ul><li><a
href="http://www.modsecurity.org/documentation/modsecurity-apache/2.5.4/html-multipage/" target="_blank">Manual de referencia</a> (<a
href="http://www.modsecurity.org/documentation/index.html" target="_blank">documentación</a>).</li><li><a
href="http://www.gotroot.com/tiki-index.php?page=mod_security+rules" target="_blank">Reglas de GotRoot</a>.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-mod_security-modsecurity-217_1-en-freebsd-7x/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
