<?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>Thu, 22 Jul 2010 06:31:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=8242</generator>
		<item>
		<title>Impedir el acceso a los &#8216;bots&#8217; 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&amp;utm_medium=rss&amp;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 mantener su información actualizada, sin embargo también es malo para quienes mantienen los sitios si [...]]]></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&#8217;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&amp;utm_medium=rss&amp;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.  Mas información. Su flexibilidad la convierte también en algo un tanto compleja de entender, como [...]]]></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&amp;utm_medium=rss&amp;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 ya que controlo directamente que se está instalando en el servidor. Tasksel es una herramientas [...]]]></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 />
# ...<br />
&lt;Directory /home/www/public/&gt;<br />
# ...</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&amp;utm_medium=rss&amp;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 interesa documentar el pequeño cambio que tuve que hacer para conservar la ruta anterior y [...]]]></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&amp;utm_medium=rss&amp;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 apt-get install mysql-admin mysql-client mysql-navigator mysql-server phpmyadmin PHP. $ sudo apt-get install php5 php5-cli php5-dbg [...]]]></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&amp;utm_medium=rss&amp;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 python_module libexec/apache22/mod_python.so PythonOption mod_python.mutex_directory "/tmp" PythonOption mod_python.mutex_locks 8 &#60;Directory "/home/web"&#62; AddHandler mod_python .py PythonHandler pythontest [...]]]></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 &#8220;<span style="font-family: courier new,courier;">/home/web</span>&#8220;.</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&amp;utm_medium=rss&amp;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 correctamente el enlace con libxml2 y fallaban las reglas que requerían procesamiento de XML. Se [...]]]></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>
		<item>
		<title>Configurando Apache 2.2.x/PHP 5.2.x con FastCGI mod_fcgid en FreeBSD 7.x</title>
		<link>http://blog.jorgeivanmeza.com/2008/05/configurando-apache-22xphp-52x-con-fastcgi-mod_fcgid-en-freebsd-7x/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=configurando-apache-22xphp-52x-con-fastcgi-mod_fcgid-en-freebsd-7x</link>
		<comments>http://blog.jorgeivanmeza.com/2008/05/configurando-apache-22xphp-52x-con-fastcgi-mod_fcgid-en-freebsd-7x/#comments</comments>
		<pubDate>Mon, 26 May 2008 22:10:00 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=346</guid>
		<description><![CDATA[Descargar compilar e instalar el paquete mod_fcgid y sus posibles dependencias. # cd /usr/ports/www/mod_fcgid # make install clean Verificar que la instalación de PHP cuente con el soporte de FastCGI. # /usr/local/bin/php-cgi -v Configurar a Apache para que utilice el nuevo módulo de FCGI. # vi /usr/local/etc/apache22/httpd.conf Agregar al final del archivo httpd.conf. LoadModule fcgid_module [...]]]></description>
			<content:encoded><![CDATA[<p>Descargar compilar e instalar el paquete <strong>mod_fcgid</strong> y sus posibles dependencias.</p>
<pre># cd /usr/ports/www/mod_fcgid</pre>
<pre># make install clean</pre>
<p>Verificar que la instalación de PHP cuente con el soporte de <a href="http://en.wikipedia.org/wiki/FastCGI" target="_blank">FastCGI</a>.</p>
<pre># /usr/local/bin/php-cgi -v</pre>
<p style="text-align: center;"><a href="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/php-cgi-v.png"><img class="alignnone size-full wp-image-347 aligncenter" title="php-cgi-v" src="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/php-cgi-v.png" alt="" width="500" height="34" /></a></p>
<p>Configurar a <strong>Apache </strong>para que utilice el nuevo módulo de FCGI.</p>
<pre># vi /usr/local/etc/apache22/httpd.conf</pre>
<p>Agregar al final del archivo <strong>httpd.conf</strong>.</p>
<pre>LoadModule fcgid_module libexec/apache22/mod_fcgid.so
&lt;IfModule mod_fcgid.c&gt;
    AddHandler fcgid-script .fcgi
    FCGIWrapper /usr/local/bin/php-cgi .php
&lt;/IfModule&gt;</pre>
<p>Ubicar la sección del directorio del <strong>DOCUMENT_ROOT</strong> y complementarla con la nueva opción.</p>
<pre>&lt;Directory "/home/web"&gt;
    # ...
    Options ExecCGI
&lt;/Directory&gt;</pre>
<p>Reiniciar el servicio de <strong>Apache</strong> para que se tengan en cuenta los cambios realizados.</p>
<pre># /usr/local/etc/rc.d/apache22 restart</pre>
<p>Consultar la salida de <strong>phpinfo()</strong> para verificar su correcto funcionamiento.</p>
<p><a href="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/fcgid-phpinfo.png"><img class="aligncenter size-full wp-image-348" title="fcgid-phpinfo" src="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/fcgid-phpinfo.png" alt="" width="500" height="146" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/configurando-apache-22xphp-52x-con-fastcgi-mod_fcgid-en-freebsd-7x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalación de PHP 5.x CGI en FreeBSD 7</title>
		<link>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-php-5x-cgi-en-freebsd-7/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=instalacion-de-php-5x-cgi-en-freebsd-7</link>
		<comments>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-php-5x-cgi-en-freebsd-7/#comments</comments>
		<pubDate>Wed, 21 May 2008 04:37:26 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=329</guid>
		<description><![CDATA[Descargar, compilar e instalar la última versión de la distribución de PHP5. Remover los archivos binarios resultantes de la compilación después de instalar. # cd /usr/ports/lang/php5 # make config CLI CGI SUHOSIN MULTIBYTE IPV6 FASTCGI PATHINFO # make install clean Compilar e instalar las extensiones de PHP que se consideren necesarias. El sistema de ports [...]]]></description>
			<content:encoded><![CDATA[<p>Descargar, compilar e instalar la última versión de la distribución de PHP5.  Remover los archivos binarios resultantes de la compilación después de instalar.</p>
<pre># cd /usr/ports/lang/php5
# make config</pre>
<pre style="padding-left: 30px;">CLI
CGI
SUHOSIN
MULTIBYTE
IPV6
FASTCGI
PATHINFO</pre>
<pre># make install clean</pre>
<p>Compilar e instalar las extensiones de PHP que se consideren necesarias.  El sistema de <em>ports</em> descargará e instalará cualquier paquete adicional que se requiera como dependencia de las extensiones elegidas.</p>
<pre># cd /usr/ports/lang/php5-extensions</pre>
<pre># make config</pre>
<pre style="padding-left: 30px;">BCMATH
BZ2
CALENDAR
CTYPE
CURL
DOM
EXIF
FILTER
FTP
GD
GETTEXT
HASH
ICONV
IMAP
JSON
LDAP
MBSTRING
MCRYPT
MHASH
MING
MSSQL
MYSQL
MYSQLI
NCURSES
ODBC
OPENSSL
PCRE
PDF
PDO
PDO_SQLITE
PGSQL
POSIX
READLINE
SESSION
SIMPLE_XML
SOAP
SOCKETS
SPL
SQLITE
TIDY
TOKENIZER
WDDX
XML
XMLREADER
XMLRPC
XMLWRITER
XSL
ZIP
ZLIB</pre>
<pre># make install clean</pre>
<p>Modificar el archivo de configuración de Apache (<span style="font-family: courier new,courier;">httpd.conf</span>) para especificar como manejar los archivos con la extensión <em>.php</em>.</p>
<pre># vi /usr/local/etc/apache22/httpd.conf</pre>
<pre>&lt;IfModule dir_module&gt;
    DirectoryIndex index.php index.html index.htm
&lt;/IfModule&gt;</pre>
<p>Agregar al final de <span style="font-family: courier new,courier;">httpd.conf</span>.</p>
<pre>ScriptAlias /php-cgi "/usr/local/bin/php-cgi"
AddHandler php-handler .php
Action php-handler /php-cgi
&lt;Location "/php-cgi"&gt;
    Options None
    Order allow,deny
    Allow from all
&lt;/Location&gt;</pre>
<p>Crear un archivo de configuración de PHP (<span style="font-family: courier new,courier;">php.ini</span>) a partir de los archivos base incluídos en la distribución (<span style="font-family: courier new,courier;"><strong>dist</strong> </span>para <strong>desarrolladores</strong><span style="font-family: courier new,courier;"> </span>o <strong><span style="font-family: courier new,courier;">recommended</span></strong> para <strong>ambientes en producción</strong>).</p>
<pre># cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
# vi /usr/local/etc/php.ini</pre>
<p>(Quitar el comentario)</p>
<pre>session.save_path = "/tmp"</pre>
<p>Crear un archivo de prueba para verificar el funcionamiento del CGI de PHP recién instalado.</p>
<pre># vi /home/web/test.php</pre>
<pre>    &lt;?php echo phpinfo (); ?&gt;</pre>
<p>Consultar la dirección del servidor (<span style="font-family: courier new,courier;">http://webserver.mydomain.com/<strong>test.php</strong></span>) con un navegador web.  Si la instalación fue exitosa se deberá visualizar una página similar a la mostrada a continuación.</p>
<p style="text-align: center;"><a href="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/phpinfo.png"><img class="alignnone size-medium wp-image-336 aligncenter" title="phpinfo" src="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/phpinfo-247x300.png" alt="" width="247" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-php-5x-cgi-en-freebsd-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuración del módulo SSL en Apache 2.2.x en FreeBSD 7</title>
		<link>http://blog.jorgeivanmeza.com/2008/05/configuracion-del-modulo-ssl-en-apache-22x-en-freebsd-7/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=configuracion-del-modulo-ssl-en-apache-22x-en-freebsd-7</link>
		<comments>http://blog.jorgeivanmeza.com/2008/05/configuracion-del-modulo-ssl-en-apache-22x-en-freebsd-7/#comments</comments>
		<pubDate>Wed, 14 May 2008 02:10:38 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=328</guid>
		<description><![CDATA[Se configura el inicio automático de Apache para que incluya el módulo de SSL. # vi /etc/rc.conf apache2_flags="-DSSL" Se establecen las ubicaciones donde se creará el certificado SSL. # cd /usr/local/etc/apache22 # mkdir ssl.key # mkdir ssl.crt # chmod 0700 ssl.key # chmod 0700 ssl.crt Se crea el certificado SSL del servidor. Se deberán tener [...]]]></description>
			<content:encoded><![CDATA[<p>Se configura el inicio automático de Apache para que incluya el módulo de SSL.</p>
<pre># vi /etc/rc.conf</pre>
<pre>apache2_flags="-DSSL"</pre>
<p>Se establecen las ubicaciones donde se creará el certificado SSL.</p>
<pre># cd /usr/local/etc/apache22</pre>
<pre># mkdir ssl.key</pre>
<pre># mkdir ssl.crt</pre>
<pre># chmod 0700 ssl.key</pre>
<pre># chmod 0700 ssl.crt</pre>
<p>Se crea el certificado SSL del servidor.  Se deberán tener en cuenta las recomendaciones mencionadas en el artículo de <a href="http://www.jorgeivanmeza.com/blog/2008/05/13/soporte-ssl-para-las-conexiones-de-postgresql-en-freebsd/" target="_blank">soporte SSL para PGSQL</a>.  En particular, se deberá reemplazar la contraseña (<span style="font-family: courier new,courier;">MyPassPhrase</span>) por una propia y privada.</p>
<pre># openssl genrsa -des3 -out server.key 1024</pre>
<pre>Enter pass phrase for server.key: MyPassPhrase</pre>
<p>Solicitud de firma del certificado: Certificate Signing Request (CSR).</p>
<pre># openssl req -new -key server.key -out server.csr</pre>
<pre>Enter pass phrase for server.key: MyPassPhrase
Verifying - Enter PEM pass phrase: MyPassPhrase
Country Name (2 letter code) [AU]: CO
State or Province Name (full name) [Some-State]: Caldas
Locality Name (eg, city) []: Manizales
Organization Name (eg, company) [Internet Widgits Pty Ltd]:  Personal Development
Organizational Unit Name (eg, section) []: Educacion
Common Name (eg, YOUR name) []: webserver.mydomain.com
Email Address []:jimezam@gmail.com
A challenge password []: Certificado&amp;2008k
An optional company name []: Smiley World</pre>
<p>Realización de la autofirma del certificado.</p>
<pre># openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Enter pass phrase for server.key: MyPassPhrase</pre>
<p>Ubicación de los certificados en sus ubicaciones finales.</p>
<pre># rm server.csr</pre>
<pre># mv server.key ssl.key
# mv server.crt ssl.crt</pre>
<pre># chmod 0400 ssl.key/server.key
# chmod 0400 ssl.crt/server.crt</pre>
<p>Configuración de Apache para activar el módulo de SSL.</p>
<pre># vi /usr/local/etc/apache22/extra/httpd-ssl.conf</pre>
<pre>&lt;VirtualHost _default_:443&gt;
    DocumentRoot "/home/web"
    ServerName webserver.mydomain.com:443
    ServerAdmin jimezam@gmail.com
    ErrorLog /var/log/ssl-error.log
    TransferLog /var/log/ssl-access.log
    SSLCertificateFile "/usr/local/etc/apache22/ssl.crt/server.crt"
    SSLCertificateKeyFile "/usr/local/etc/apache22/ssl.key/server.key"
&lt;/VirtualHost&gt;</pre>
<pre># vi /usr/local/etc/apache22/httpd.conf</pre>
<pre>Include etc/apache22/extra/httpd-ssl.conf</pre>
<p>Reiniciar el servicio de Apache.</p>
<pre># /usr/local/etc/rc.d/apache22 restart</pre>
<pre>Enter pass phrase: MyPassPhrase</pre>
<p>Realizar la verificación de su funcionamiento consultando las siguientes direcciones web.</p>
<ul>
<li>http://webserver.mydomain.com</li>
<li>https://webserver.mydomain.com</li>
</ul>
<p>Cada vez que se inicie el servicio, como en el paso anterior, se solicitará la clave asignada.  Esta característica fue diseñada por razones de seguridad, es necesaria ya que la llave RSA privada del archivo <span style="font-family: courier new,courier;">server.key</span> se encuentra encriptada con ella, sin embargo es posible removerla bajo consideración del administrador.  Para remover esta capa de seguridad se deben ejecutar los pasos siguientes.</p>
<pre># cd /usr/local/etc/apache22/ssl.key</pre>
<pre># cp server.key server.key.orig</pre>
<pre># openssl rsa -in server.key.org -out server.key</pre>
<pre>Enter pass phrase for server.key.orig: MyPassPhrase</pre>
<pre># /usr/local/etc/rc.d/apache22 restart</pre>
<p>Enlaces:</p>
<ul>
<li><a href="http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#aboutcerts" target="_blank">SSL/TLS Strong Encryption: FAQ</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/configuracion-del-modulo-ssl-en-apache-22x-en-freebsd-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
