<?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>El blog de Neurotic &#187; Drupal</title>
	<atom:link href="http://www.neuroticweb.com/blog/category/drupal/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.neuroticweb.com/blog</link>
	<description>Nuestro día a día Neurotic</description>
	<lastBuildDate>Tue, 22 Apr 2008 09:15:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Obtener una fila aleatoria en una consulta de MySQL con RAND()</title>
		<link>http://www.neuroticweb.com/blog/211/obtener-una-fila-aleatoria-en-una-consulta-de-mysql/</link>
		<comments>http://www.neuroticweb.com/blog/211/obtener-una-fila-aleatoria-en-una-consulta-de-mysql/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 09:16:53 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.neuroticweb.com/blog/211/obtener-una-fila-aleatoria-en-una-consulta-de-mysql/</guid>
		<description><![CDATA[Para obtener un resultado aleatorio de una tabla en MySQL podemos utilizar la función RAND(), SELECT * FROM nombre_tabla WHERE condicion ORDER BY RAND() LIMIT 1; La función RAND() genera una serie de números aleatorios que irá comprobando contra los &#8230; <a href="http://www.neuroticweb.com/blog/211/obtener-una-fila-aleatoria-en-una-consulta-de-mysql/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Para obtener un resultado aleatorio de una tabla en <strong>MySQL</strong> podemos utilizar la función RAND(),</p>
<p><code>SELECT *<br />
FROM nombre_tabla<br />
WHERE condicion<br />
ORDER BY RAND()<br />
LIMIT 1; </code></p>
<p>La función RAND() genera una serie de números aleatorios que irá comprobando contra los registros de nuestra tabla hasta que encuentra uno y lo devuelve (el número de registros devueltos se fija mediante la cláusula LIMIT)</p>
<p>La versión para <strong>Drupal</strong>:</p>
<p><code>$sql = "SELECT *<br />
FROM {nombre_tabla}<br />
WHERE condicion<br />
ORDER BY RAND()";<br />
$result = db_query_range($sql,1);<br />
$data = db_fetch_object($result);</code></p>
<blockquote><p>Nota: También se puede utilizar RAND(NOW()) o RAND(UNIX_TIMESTAMP())</p></blockquote>
<p>Esta es una solución ideal para tablas pequeñas, si tenemos problemas de rendimiento, deberemos ser un poco más <em>creativos</em><br />
<span id="more-211"></span><br />
Si queremos obtener una fila aleatoria de una tabla mediana-grande, 100.000 registros o más, este método dista de ser óptimo, como explica <a href="http://www.titov.net/2005/09/21/do-not-use-order-by-rand-or-how-to-get-random-rows-from-table/">Anton Titov</a>, para tablas de mayor tamaño es mucho más eficiente generar un número aleatorio limitado y después seleccionar esa fila, por ejemplo:</p>
<p>Para obtener el máximo:<br />
<code>SELECT count(*)<br />
FROM nombre_tabla</code></p>
<p>Obtenemos (en PHP) un número aleatorio entre 0 y el máximo recuperado antes<br />
$numero = rand(0, $count);</p>
<p>Y seleccionamos la fila a través de ese número:<br />
<code>SELECT count(*)<br />
FROM nombre_tabla<br />
WHERE id = {$numero}</code></p>
<p>Esto es un supuesto muy concreto porque es imprescindible que el identificador correspondiente al número aleatorio sea parte de la clave primaria de la tabla, de lo contrario, será una solución, por lo menos, igual de lenta que el <strong>RAND</strong>().<br />
Esta solución tiene un inconveniente muy claro, ya que no limita, si necesitamos filtrar la consulta mediante un <strong>WHERE</strong>, podemos llegar a la situación de tener que generar varios lotes de números aleatorios hasta que encontremos uno que cumpla con nuestra restricción.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuroticweb.com/blog/211/obtener-una-fila-aleatoria-en-una-consulta-de-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Portal Nissan se une a nuestros proyectos</title>
		<link>http://www.neuroticweb.com/blog/200/portal-nissan-se-une-a-nuestros-proyectos/</link>
		<comments>http://www.neuroticweb.com/blog/200/portal-nissan-se-une-a-nuestros-proyectos/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 10:11:56 +0000</pubDate>
		<dc:creator>Carlos</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Emprendiendo]]></category>
		<category><![CDATA[Neurotic]]></category>

		<guid isPermaLink="false">http://www.neuroticweb.com/blog/200/portal-nissan-se-une-a-nuestros-proyectos/</guid>
		<description><![CDATA[Desde hace varias semanas que el portal líder en información específica de nissan (portalnissan.com) es parte de nuestra red de proyectos gracias a un acuerdo amistoso (sin dinero de por medio) con Chema, su anterior propietario. Los dos socios de &#8230; <a href="http://www.neuroticweb.com/blog/200/portal-nissan-se-une-a-nuestros-proyectos/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="/blog/wp-content/images/webs/Portal-Nissan.png"><img src="/blog/wp-content/images/webs/_Portal-Nissan.png" width="450" height="284" alt="Pantallazo de portal nissan" title="Pantallazo de portal nissan"  /></a></p>
<div clas="clearboth"></div>
<p>Desde hace varias semanas que el portal líder en información específica de <a href="http://www.portalnissan.com">nissan</a> (<a href="http://www.portalnissan.com">portalnissan.com</a>) es parte de nuestra red de proyectos gracias a un acuerdo amistoso (sin dinero de por medio) con Chema, su anterior propietario. </p>
<p>Los dos socios de Neurotic tenemos coches nissan (un <a href="http://www.km77.com/00/nissan/qashqai/t01.asp">Qashqai</a> y un <a href="http://www.km77.com/marcas/nissan/almera_03/0primera/texto.asp">Almera</a>), nos gustan las webs de motor (también tenemos <a href="http://www.buscatuning.com">buscatuning.com</a> y <a href="http://www.drifting.es">drifting.es</a>) y Jordi era asiduo de Portalnissan por lo que pudo ser de los primeros en ofrecerse a llevar el portal cuando Chema decidió desvincularse del proyecto.</p>
<p>En portalnissan.com se usa <a href="http://www.mkportal.it/">mkportal</a>, un sistema de integración de otros scripts, entre ellos el <a href="http://www.simplemachines.org/">foro SMF</a> y la <a href="http://coppermine-gallery.net/">galería de fotos coppermine</a>. También tiene blogs personales, gestor de noticias, gestor de bloques, etc. No está mal pero tiene algunas carencias, principalmente las urls no son amigables y existe una gran separación entre lo que son noticias y el foro.</p>
<p>Nuestra idea es dejarlo de momento tal como está y más adelante usar nuestra base de comunidad online con <a href="http://drupal.org">Drupal</a> la cual es mucho más potente que el mkportal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuroticweb.com/blog/200/portal-nissan-se-une-a-nuestros-proyectos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Acquia, la empresa del creador de Drupal recibe 7 millones de dolares</title>
		<link>http://www.neuroticweb.com/blog/189/acquia-la-empresa-del-creador-de-drupal-recibe-7-millones-de-dolares/</link>
		<comments>http://www.neuroticweb.com/blog/189/acquia-la-empresa-del-creador-de-drupal-recibe-7-millones-de-dolares/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 16:30:01 +0000</pubDate>
		<dc:creator>Jordi</dc:creator>
				<category><![CDATA[Drupal]]></category>

		<guid isPermaLink="false">http://www.neuroticweb.com/blog/189/la-empresa-del-creador-de-drupal-recibe-7-millones-de-dolares/</guid>
		<description><![CDATA[Acquia, la empresa de Dries Buytaert, creador de Drupal, ha recibido 7 millones de euros en su primera fase de financiación. Este hecho seguramente que no repercutirá directamente al resto de empresas que usamos este framework / gestor de contenidos &#8230; <a href="http://www.neuroticweb.com/blog/189/acquia-la-empresa-del-creador-de-drupal-recibe-7-millones-de-dolares/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="/blog/wp-content/images/drupal/acquia.png" width="203" height="59" alt="acquia" title="acquia" /></p>
<p><a href="http://acquia.com">Acquia</a>, la empresa de <a href="http://buytaert.net/">Dries Buytaert</a>, creador de <a href="http://www.drupal.org">Drupal</a>, ha recibido <a href="http://drupal.org/node/202337">7 millones de euros</a> en su primera fase de financiación. </p>
<p>Este hecho seguramente que no repercutirá directamente al resto de empresas que usamos este framework / gestor de contenidos pero me alegra ver como grandes inversores apuestan en una empresa que seguro que usará <strong>Drupal</strong> como base tecnológica. Además, estoy seguro que <a href="http://acquia.com">Acquia</a> contribuirá activamente a su mejora y desarollo tal y como hacen otras grandes empresas.</p>
<p>Nuestras felicitaciones para <strong>Dries</strong>, ya tenemos nuestra dosis de envidia (sana, obviamente) para el fin de semana xD</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuroticweb.com/blog/189/acquia-la-empresa-del-creador-de-drupal-recibe-7-millones-de-dolares/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to: Instalar y configurar un Sandbox para Drupal con Eclipse y CVS</title>
		<link>http://www.neuroticweb.com/blog/166/how-to-instalar-y-configurar-un-sandbox-para-drupal-con-eclipse-y-cvs-2/</link>
		<comments>http://www.neuroticweb.com/blog/166/how-to-instalar-y-configurar-un-sandbox-para-drupal-con-eclipse-y-cvs-2/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 08:30:17 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.neuroticweb.com/blog/166/how-to-instalar-y-configurar-un-sandbox-para-drupal-con-eclipse-y-cvs-2/</guid>
		<description><![CDATA[En estas entradas, voy a intentar resumir cómo hemos instalado nuestro sandbox para tener las versiones de los proyectos, principalmente de Drupal, controladas mediante CVS. Nuestro entorno de desarrollo consiste en un servidor con Debian 4 y los clientes con &#8230; <a href="http://www.neuroticweb.com/blog/166/how-to-instalar-y-configurar-un-sandbox-para-drupal-con-eclipse-y-cvs-2/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En estas entradas, voy a intentar resumir cómo hemos instalado nuestro sandbox para tener las versiones de los proyectos, principalmente de Drupal, controladas mediante CVS. Nuestro entorno de desarrollo consiste en un servidor con <a href="http://www.debian.org/">Debian</a> 4 y los clientes con <a href="http://www.ubuntu.com/">Ubuntu</a> 7.10.</p>
<p><strong>Pasos a realizar en el servidor:</strong></p>
<ul>
<li><a href="http://www.neuroticweb.com/blog/143/instalacion-de-un-servidor-dns-bind9-en-debian/">Instalación de  un servidor DNS (en este caso Bind9)</a>.</li>
<li><a href="http://www.neuroticweb.com/blog/144/configuracion-del-servidor-apache-para-trabajar-con-virtual-hosts/">Configuración del Servidor Apache para trabajar con Virtual Hosts.</a></li>
<li><a href="http://www.neuroticweb.com/blog/146/instalacion-de-un-servidor-cvs/">Instalación de un servidor CVS</a>.</li>
<li><a href="http://www.neuroticweb.com/blog/147/configuracion-de-apache-para-utilizar-drupal-en-multisite/">Configuración de Apache para utilizar Drupal en multisite</a>.</li>
</ul>
<p><strong>Pasos a realizar en los clientes:</strong></p>
<ul>
<li><a href="http://www.neuroticweb.com/blog/148/instalacion-de-eclipse-33-con-pdt-php-ide-y-zend-debugger/">Instalación de Eclipse 3.3 con PDT (PHP IDE) y  Zend Debugger.</a></li>
<li><title></title><a href="http://www.neuroticweb.com/blog/149/configuracion-de-cvs-en-eclipse/">Configuración de CVS en Eclipse</a></li>
<li><a href="http://www.neuroticweb.com/blog/164/configuracion-local-de-drupal-en-multisite/">Configuración local de Drupal en multisite (Servidor de DNS, Apache y configuración de Eclipse para links simbólicos)</a></li>
</ul>
<p>El Servidor DNS y la configuración de Apache los necesitaremos para poder acceder a nuestras webs en LAN mediante http://nombredelaweb.nombredeldominio.extension y así nos evitaremos problemas con las rutas que sí tendríamos con http://localhost/nombredelaweb</p>
<p>Partimos de una instalación de Mysql, Apache2 y PHP. Podéis encontrar tutoriales de como instalar estos componentes (LAMP) aquí: <a href="https://help.ubuntu.com/community/ApacheMySQLPHP">https://help.ubuntu.com/community/ApacheMySQLPHP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuroticweb.com/blog/166/how-to-instalar-y-configurar-un-sandbox-para-drupal-con-eclipse-y-cvs-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Configuración local de Drupal en multisite.</title>
		<link>http://www.neuroticweb.com/blog/164/configuracion-local-de-drupal-en-multisite/</link>
		<comments>http://www.neuroticweb.com/blog/164/configuracion-local-de-drupal-en-multisite/#comments</comments>
		<pubDate>Fri, 23 Nov 2007 08:25:05 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.neuroticweb.com/blog/164/configuracion-local-de-drupal-en-multisite/</guid>
		<description><![CDATA[La configuración de Drupal multisite en local es muy similar a la configuración de Apache para utilizar Drupal en multisite. Uno de los pasos previos sería instalar un servidor de DNS en nuestros clientes, en este caso Ubuntu, los pasos &#8230; <a href="http://www.neuroticweb.com/blog/164/configuracion-local-de-drupal-en-multisite/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>La configuración de Drupal multisite en local es muy similar a la <a href="http://www.neuroticweb.com/blog/147/configuracion-de-apache-para-utilizar-drupal-en-multisite/">configuración de Apache para utilizar Drupal en multisite</a>.</p>
<p>Uno de los pasos previos sería instalar un servidor de DNS en nuestros clientes, en este caso Ubuntu, los pasos son análogos a la <a href="http://www.neuroticweb.com/blog/143/instalacion-de-un-servidor-dns-bind9-en-debian/">instalación en Debian</a>.</p>
<p>Para instalar Bind9 en nuestro cliente Ubuntu:</p>
<p><em>    # sudo apt-get install bind9</em></p>
<p>Después se crea la zona y se especifica el fichero de configuracion /etc/bind/named.conf.local<br />
<code>zone "local.pc" {<br />
type master;<br />
file "/etc/bind/zones/db.local.pc";<br />
allow-query { any; };<br />
};<br />
zone "local.neurotic" {<br />
type slave;<br />
masters { 192.168.1.2; };<br />
};<br />
</code></p>
<p><strong>Nota:</strong> La zona de tipo &#8220;slave&#8221; sirve para resolver los dominios de tipo *.local.neurotic.<br />
<span id="more-164"></span></p>
<p>El fichero <em>/etc/bind/zones/db.local.pc</em> debe contener:<br />
<code>$TTL  604800<br />
@ IN SOA <strong>local.pc. hostmaster.local.pc</strong>. (<br />
1         ; Serial<br />
604800         ; Refresh<br />
86400         ; Retry<br />
2419200         ; Expire<br />
604800 )       ; Negative Cache TTL<br />
;<br />
<strong> local.pc.    IN      NS      ns1.local.pc.<br />
</strong>localhost       IN      A       127.0.0.1<br />
<strong> local.neurotic.     IN      NS      192.168.1.2.<br />
</strong><br />
@ IN TXT  "Servidor"<br />
@ IN HINFO "Servidor privado" "lan interno"<br />
;<br />
<strong> @ IN A 192.168.1.3<br />
* IN A 192.168.1.3</strong></code></p>
<p>Donde hostmaster.local.pc es el mail del usuario pero con . en lugar de @ y 192.168.1.3 es la dirección IP del cliente que se configura.</p>
<p>En este fichero: <em>/etc/bind/named.conf.options</em><br />
<code>forwarders {<br />
<strong>192.168.1.2;<br />
80.58.61.250;<br />
80.58.61.254;</strong><br />
};</code></p>
<p>Y al final del fichero:</p>
<p><strong><code>dnssec-enable yes;</code></strong></p>
<p>La primera dirección IP corresponde al servidor principal de DNS de nuestra LAN y las otras dos a las DNS proporcionadas por el ISP, en este caso las de Telefónica.</p>
<p>Este fichero, <em>/etc/resolv.conf</em> debe contener los servidores dns en orden</p>
<p><code><strong>search<br />
nameserver 127.0.0.1<br />
nameserver 192.168.1.2</strong><br />
</code><br />
Finalmente, la primera línea del fichero <em>/etc/hosts </em>debe poner<br />
<code><em>127.0.0.1 localhost.localdomain localhost</em></code><br />
Solo queda reiniciar el bind</p>
<p><em>    # sudo /etc/init.d/bind9 restart</em></p>
<p>Los pasos previos son descargar Drupal e instalarlo para nuevas webs o descargarte la web y la base de datos si tienes una ya existente.</p>
<p>Una vez hecho esto, todos los módulos y ficheros de theme personalizados deben ir en el directorio <em>sites/nombredeldominio.extension </em>y se debe configurar el fichero de Vhosts para que nuestro dominio en local, pongamos <em><strong>nombredenuestraweb.local.pc</strong></em> apunte a ese directorio.</p>
<p>Primero se añade en el fichero <em>/etc/apache2/httpd.conf</em> esta línea:<br />
<code><em>Include /etc/apache2/conf.d/Vhosts.conf</em></code><br />
Y a este (<em>/etc/apache2/conf.d/Vhosts.conf</em>) fichero del include se le añaden las entradas de nuestras webs en local</p>
<p><code>NameVirtualHost *:80<br />
&lt;VirtualHost *:80&gt;<br />
ServerName nombredenuestraweb.local.pc<br />
DocumentRoot /ruta_de_drupal<br />
&lt;Directory "/ruta_de_drupal"&gt;<br />
AllowOverride All<br />
Options -Indexes +FollowSymLinks MultiViews<br />
Order allow,deny<br />
Allow from all<br />
&lt;/Directory&gt;<br />
&lt;/VirtualHost&gt;<br />
</code></p>
<p><strong>Nota: </strong>Esta configuración no se lleva muy bien con el sites-enabled, así que, en el fichero <em>/etc/apache2/apache2.conf </em>se debería comentar la línea final que hace referencia a sites-enabled.</p>
<p>Cada vez que se añade una entrada de Virtual Host para una web es necesario recargar la configuración de Apache:</p>
<p><em># sudo /etc/init.d/apache2 reload</em></p>
<p><strong>Ojo:</strong> Aunque nuestra web esté en <em>/ruta_de_drupal/sites/nombredeldominio.extension</em>, Drupal ya detecta automáticamente a través del nombre del directorio de <em>sites,</em> el dominio al que queremos acceder.</p>
<p>Es por esto que necesitamos un link simbólico que apunte de <em>sites/nombredeldominio.extension</em> a <em>sites/nombredenuestraweb.local.com . </em>En la configuración del servidor, se configuró un link simbólico directamente, pero si queremos trabajar con Eclipse y CVS esto nos va a ocasionar problemas, así que, antes de crear el link simbólico, deberemos crear un nuevo directorio en sites desde Eclipse, así que, situados en sites de nuestro proyecto web, en el menú secundario, <em>New </em><em>»</em> Folder , y en <em>Folder Name </em>ponemos el nombre que hemos configurado para apache, en este caso <em>nombredenuestraweb.local.pc </em>y en las opciones <em>Advanced</em> marcamos la casilla <em>Link to Folder in the File System</em> y seleccionamos el directorio del dominio original, <em>nombredeldominio.extension.</em></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/eclipse_new_folder.png" title="eclipse_new_folder.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/eclipse_new_folder.miniatura.png" alt="eclipse_new_folder.png" /></a></p>
<p>De esta forma, Eclipse ya tendrá registrado que ese directorio es un link y no se hará un lío al gestionarlo a través de CVS.</p>
<p>El paso final es crear el link simbólico en el Sistema Operativo, para que Drupal funcione cuando accedamos a n<em>ombredenuestraweb.local.pc</em> . Para ello, desde <em>sites,</em> en un terminal ejecutamos lo siguiente:</p>
<p><em>    # ln -s </em><em>nombredeldominio.extension n</em><em>ombredenuestraweb.local.pc </em></p>
<p>Con todos estos pasos, ya tenemos creado un entorno de desarrollo de Drupal con Eclipse como herramienta de desarrollo, CVS para el control de versiones, Apache como web server, y Bind9 como servidor de DNS.</p>
<p>Espero que haya sido útil!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuroticweb.com/blog/164/configuracion-local-de-drupal-en-multisite/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Configuración de CVS en Eclipse.</title>
		<link>http://www.neuroticweb.com/blog/149/configuracion-de-cvs-en-eclipse/</link>
		<comments>http://www.neuroticweb.com/blog/149/configuracion-de-cvs-en-eclipse/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 13:58:41 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.neuroticweb.com/blog/149/configuracion-de-cvs-en-eclipse/</guid>
		<description><![CDATA[Eclipse viene con el plugin CVS incorporado, por lo que no deberemos instalar nada para comenzar a trabajar con CVS. Este post pretende ser una guía introductoria de cómo trabajar con Eclipse y CVS, cómo hacer checkout, subir ficheros al &#8230; <a href="http://www.neuroticweb.com/blog/149/configuracion-de-cvs-en-eclipse/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Eclipse viene con el plugin CVS incorporado, por lo que no deberemos instalar nada para comenzar a trabajar con CVS.  Este post pretende ser una guía introductoria de cómo trabajar con Eclipse y CVS, cómo hacer checkout, subir ficheros al repositorio y actualizarlos.</p>
<p>Antes de esto, dos parámetros muy necesarios de configuración:</p>
<p>Para que se muestre la consola siempre que se ejecute un comando CVS, para poder comprobar si ha habido errores o no en la última operación:</p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_console.png" title="cvs_console.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_console.miniatura.png" alt="cvs_console.png" /></a></p>
<p>Para que, cuando se realice un checkout, los ficheros se bajen en Read-Only, deberemos seleccionar la opción <em>Configure projects to use Watch / Edit on Checkout</em> como muestra la imagen.</p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_edit.png" title="cvs_edit.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_edit.miniatura.png" alt="cvs_edit.png" /></a></p>
<p><strong>Muy importante</strong> para trabajo en grupo, configurando esta opción, Eclipse se encarga de realizar el edit los ficheros cuando los modificas. Además, el resto de los desarrolladores sabrán si el fichero está siendo o no modificado mediante la opción <em>Team » Show Editors</em>. Si el notify está activado, también se recibirán notificaciones vía mail.</p>
<p><span id="more-149"></span><br />
<strong>Checkout</strong></p>
<p>Primero necesitamos  seleccionar la vista <em>CVS Repository Exploring </em></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_repository_exploring.png" title="cvs_repository_exploring.png"></a></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_repository_exploring.png" title="cvs_repository_exploring.png"></a></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_repository_exploring.png" title="cvs_repository_exploring.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_repository_exploring.miniatura.png" alt="cvs_repository_exploring.png" /></a></p>
<p>En la perspectiva CVS Repositories, con el botón derecho, <em>New  » </em><em>Repository Location</em></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_new_repository_location.png" title="cvs_new_repository_location.png"></a></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_new_repository_location.png" title="cvs_new_repository_location.png"></a></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_new_repository_location.png" title="cvs_new_repository_location.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_new_repository_location.miniatura.png" alt="cvs_new_repository_location.png" /></a></p>
<p>Para añadir el nuevo 	repositorio es necesario rellenar los siguientes campos:</p>
<blockquote><p><em><strong> Host (o dirección ip)</strong>: 		Nombre del servidor</em><br />
<em><strong> Repository path</strong>: Ruta del 		repositorio en el servidor</em><br />
<em> <strong>User:</strong> nombre de usuario</em><br />
<em><strong> Password:</strong> contraseña</em><br />
<em><strong> Connection Type:</strong> Protocolo de 		conexión, en este caso pserver</em></p></blockquote>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_add_repository.png" title="cvs_add_repository.png"></a></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_add_repository.png" title="cvs_add_repository.png"></a></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_add_repository.png" title="cvs_add_repository.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_add_repository.miniatura.png" alt="cvs_add_repository.png" /></a></p>
<p>Ahora ya podremos acceder a nuestro repositorio de CVS en el servidor y examinar los ficheros que hay en él:</p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_repository_browsing.png" title="cvs_repository_browsing.png"></a></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_repository_browsing.png" title="cvs_repository_browsing.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_repository_browsing.miniatura.png" alt="cvs_repository_browsing.png" /></a><br />
Es posible realizar el checkout de los ficheros / proyectos de muchas maneras, una de ellas es a través del explorador del repositorio de CVS, seleccionando la carpeta a bajar y con el botón derecho, <em>Checkout As&#8230;</em></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_checkout_as.png" title="cvs_checkout_as.png"></a></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_checkout_as.png" title="cvs_checkout_as.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_checkout_as.miniatura.png" alt="cvs_checkout_as.png" /></a></p>
<blockquote><p><strong>Nota:</strong> Otra forma de realizar Checkout es a través de la perspectiva PHP realizando un <em>Import  » Projects from CVS</em></p></blockquote>
<p>Para realizar el checkout, necesitaremos un proyecto en Eclipse, bien uno ya existente, darle el nombre del directorio / proyecto de CVS al proyecto de Eclipse o ejecutar el <em>New Project Wizard </em>que nos permite modificar todo el proceso:</p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_new_project_wizard.png" title="cvs_new_project_wizard.png"></a></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_new_project_wizard.png" title="cvs_new_project_wizard.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_new_project_wizard.miniatura.png" alt="cvs_new_project_wizard.png" /></a></p>
<p><strong>Ojo:</strong> Es conveniente utilizar el asistente, para tener un control total sobre dónde se bajan los ficheros y el nombre del proyecto, además nos permite vincular otros proyectos al actual.</p>
<p>Cualquiera que sea la opción elegida para realizar el checkout, deberemos elegir la rama de la que queremos bajar el fichero. Si estamos trabajando en proyectos pequeños / medianos o en entornos con relativamente pocos desarrolladores, lo más cómodo será utilizar directamente el <strong>HEAD</strong> (rama principal), ya que la gestión de las ramas requiere un conocimiento y control mucho más avanzado con CVS. Podéis encontrar una guía completísima en la <a href="http://help.eclipse.org/help32/topic/org.eclipse.platform.doc.user/tasks/tasks-1h.htm">ayuda online de Eclipse </a></p>
<p>Una vez ya descargado el proyecto / carpeta / ficheros con los que vamos a trabajar dentro de un proyecto de Eclipse, deberemos utilizar la perspectiva PHP, con la vista <em>PHP Explorer</em> o <em>Navigator</em> (hay pequeñas diferencias entre ambas, como que el PHP Explorer no muestra los ficheros ocultos y el Navigator sí lo hace)</p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_php_explorer.png" title="cvs_php_explorer.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_php_explorer.miniatura.png" alt="cvs_php_explorer.png" /></a></p>
<p><strong>Añadir proyectos completos al repositorio</strong></p>
<p>Si estuvieramos trabajando con un proyecto desde 0 y quisieramos añadirlo completo al repositorio de CVS, deberemos, desde la perspectiva PHP Explorer o Navigator, seleccionar el proyecto y con el botón derecho, <em>Team  » Share Project </em>y seleccionaremos el repositorio en el que queremos dar de alta el proyecto, también podríamos dar de alta un nuevo repositorio desde aquí, o crear una conexión un usuario diferente.</p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_share_project.png" title="cvs_share_project.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_share_project.miniatura.png" alt="cvs_share_project.png" /></a></p>
<p>Después le asignamos el nombre al proyecto:</p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_share_project_name.png" title="cvs_share_project_name.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_share_project_name.miniatura.png" alt="cvs_share_project_name.png" /></a></p>
<p>Y por último seleccionamos los ficheros que queremos que se suban, nos es posible discriminar ficheros desde aquí, añadiéndolos al .cvsignore utilizando diferentes criterios.</p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_cvsignore.png" title="cvs_cvsignore.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_cvsignore.miniatura.png" alt="cvs_cvsignore.png" /></a></p>
<p><strong>Ojo: </strong>Al añadir ficheros al .cvsignore, este fichero se crea en local y es muy conveniente que se añada también al repositorio, de esta forma si tenemos ficheros de caché, o el mismo metadato que utiliza Eclipse, cuando bajemos de nuevo el proyecto, no tendremos que quitarlos de nuevo, sino que ya se ignorarán por defecto.</p>
<p><strong>Añadir nuevos ficheros a un proyecto </strong></p>
<p>Si ya estamos trabajando con un proyecto en Eclipse vinculado a CVS, puede que sea necesario añadir ficheros o carpetas, para ello, los seleccionamos y después los agregamos al repositorio a través del menú <em>Team » Add to Version Control</em></p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_add_to_version_control.png" title="cvs_add_to_version_control.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_add_to_version_control.miniatura.png" alt="cvs_add_to_version_control.png" /></a></p>
<p>En la consola de CVS de Eclipse saldrá un mensaje parecido a este:</p>
<blockquote><p><em>    ***<br />
cvs add -kkv &#8220;/PruebaCVS/directorio/ficherodepruebas.php&#8221;<br />
cvs add: scheduling file `directorio/ficherodepruebas.php&#8217; for addition<br />
<strong> cvs add: use `cvs commit&#8217; to add this file permanently</strong><br />
ok (took 0:00.091)<br />
***</em></p></blockquote>
<p>Si modificamos un fichero, se indicará como &gt; (modificado) y el paso final para subirlo al repositorio será igual que para añadirlo, tendremos que seleccionarlo y utilizar la opción  <em>Team » Commit </em>donde deberemos escribir el mensaje que se guardará en el repositorio a modo de comentario de la modificación:</p>
<p><a href="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_commit.png" title="cvs_commit.png"><img src="http://www.neuroticweb.com/blog/wp-content/uploads/2007/11/cvs_commit.miniatura.png" alt="cvs_commit.png" /></a></p>
<p>Como apuntes finales, unas &#8220;recomendaciones&#8221; para trabajo en grupo:</p>
<p>Es conveniente saber quien está tocando cada fichero, por lo que el uso de <em>Team » Edit </em>(o dejar que Eclipse lo haga por tí con la configuración del principio del post)y activar las notificaciones a través del fichero notify del servidor CVS se hace bastante útil.</p>
<p>Los mensajes de commit muchas veces son la única información con la que se cuenta para tracear un proyecto sin investigar más profundamente, deben ser lo mas explicativos posible.</p>
<p>Es posible que sean necesarios otros programas con <a href="http://cervisia.kde.org/">Cervisia</a> o <a href="http://www.viewvc.org/">ViewVC</a> para gestionar el repositorio de CVS, si no estais cómodos con el GUI que estáis usando, siempre podéis utilizar cvs desde la línea de comandos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuroticweb.com/blog/149/configuracion-de-cvs-en-eclipse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Instalación de Eclipse 3.3 con PDT (PHP IDE) y Zend Debugger.</title>
		<link>http://www.neuroticweb.com/blog/148/instalacion-de-eclipse-33-con-pdt-php-ide-y-zend-debugger/</link>
		<comments>http://www.neuroticweb.com/blog/148/instalacion-de-eclipse-33-con-pdt-php-ide-y-zend-debugger/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 11:32:39 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.neuroticweb.com/blog/148/instalacion-de-eclipse-33-con-pdt-php-ide-y-zend-debugger/</guid>
		<description><![CDATA[Una vez configurado nuestro servidor, con servidor de DNS, Apache y CVS, pasaremos a la configuración de los clientes. El editor de PHP elegido es Eclipse, con el plugin PDT de Zend. Hay otras opciones, como Quanta + , que, &#8230; <a href="http://www.neuroticweb.com/blog/148/instalacion-de-eclipse-33-con-pdt-php-ide-y-zend-debugger/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Una vez configurado nuestro servidor, con servidor de DNS, Apache y CVS, pasaremos a la configuración de los clientes. El editor de PHP elegido es Eclipse, con el plugin PDT de Zend. Hay otras opciones, como <a href="http://quanta.kdewebdev.org/">Quanta +</a> , que, de momento tiene integración son SubVersion, pero para utilizarlo con CVS, es necesario un programa externo, como <a href="http://cervisia.kde.org/">Cervisia</a> o <a href="http://www.twobarleycorns.net/tkcvs.html">tkcvs</a>. La integración de Eclipse con CVS sumado al plugin de PHP (PDT) y al Debugger (Zend PHP Debugger) lo hace un buen candidato.</p>
<p>Para poder utilizar la última versión de <a href="http://www.eclipse.org/pdt/">PDT</a> , necesitaremos Eclipse 3.3, que todavía no está en los repositorios de Ubuntu, por lo que lo hará ligeramente más complicado de instalar.</p>
<p>El primer paso será descargarlo de la <a href="http://www.eclipse.org/downloads/">página oficial</a> , la versión Classic ya es bastante adecuada para el desarrollo con PHP.</p>
<p>Necesitaremos tener una instalación limpia, así que, si tenemos una versión anterior de Eclipse, deberemos desinstalarla.</p>
<p><em>    # apt-get remove eclipse</em></p>
<p>También necesitaremos la versión 1.6 (o posterior) de Java.</p>
<p><title></title> 	 	 	 	<!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } 	--></p>
<p><em>    # sudo apt-get install sun-java6-jdk sun-java6-bin sun-java6-jre</em></p>
<p>Una vez instalado, cuando comprobemos la versión debe salir correctamente:</p>
<p><em>    # java -version </em></p>
<blockquote><p><em>java version &#8220;1.6.0&#8243; </em><br />
<em>Java(TM) SE Runtime Environment (build 1.6.0-b105) </em><br />
<em>Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)  </em></p></blockquote>
<p><span id="more-148"></span><br />
Si nos mostrara una versión anterior, deberemos desinstalar completamente Java (con cuidado) y repetir el paso anterior de instalación para la versión 1.6.</p>
<p>Una vez que tengamos la versión de Java instalada y el Eclipse descargado, ya podemos ejecutarlo. Copiaremos los binarios de Eclipse donde más nos convenga, y pasaremos a configurar el plugin PDT, en el menú <strong>Help »  Software Updates  »  Find and Install </strong>.<strong> </strong>Seleccionamos <em>&#8220;Search for new features to install&#8221;</em></p>
<p><img src="http://www.neuroticweb.com/blog/wp-content/images/varios/Find_and_Install.jpg" /></p>
<p>Y luego <em>&#8220;New Remote Site&#8221;</em></p>
<p><img src="http://www.neuroticweb.com/blog/wp-content/images/varios/New_Remote_Site_PDT.png" align="middle" height="156" width="350" /></p>
<p>En Name ponemos PDT y en URL <a href="http://downloads.zend.com/pdt">http://downloads.zend.com/pdt</a></p>
<p>Finalmente, seleccionamos la última versión de PDT (y de <em>Zend Debugger</em>), hacemos click en <strong>Select Required</strong> y Finish.</p>
<p><title></title> Para completar la instalación del Zend Debugger que nos permitirá debugar  las páginas PHP desde Eclipse,  nos descargamos la versión que nos corresponda desde  <a href="http://downloads.zend.com/pdt/server-debugger/">http://downloads.zend.com/pdt/server-debugger/</a>  (en nuestro caso, esta ZendDebugger-5.2.10-linux-glibc21-i386.tar.gz ). Descomprimimos el fichero y lo copiamos en la ruta que nos venga bien, y añadimos estas líneas en nuestro fichero <em>php.ini</em><br />
<code>zend_extension=<strong>/ruta</strong>/5_2_x_comp/ZendDebugger.so<br />
zend_debugger.allow_hosts=127.0.0.1<br />
zend_debugger.expose_remotely=always</code><br />
Para comprobar si se ha instalado correctamente el debugger, deberemos reiniciar el servidor Apache y echar un vistazo al phpinfo, creando una web info.php que contenga lo siguiente<br />
<code><em>&lt;?php phpinfo() ?&gt;</em></code><br />
En la web de información resultante, debe salirnos un bloque similar a este, que indique el Debugger que estamos utilizando.</p>
<p><img src="http://www.neuroticweb.com/blog/wp-content/images/varios/ZendDebugger.jpg" /></p>
<p>Esta es una estupenda guía que cubre muchos más aspectos de la instalación de PDT y Zend Debugger en Eclipse: <a href="http://www.thierryb.net/pdtwiki/index.php?title=Main_Page">http://www.thierryb.net/pdtwiki/index.php?title=Main_Page</a></p>
<p>Con esta configuración, ya deberíamos estar listos para utilizar eclipse con PHP, una de las mayores utilidades que tiene este programa es su integración con CVS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuroticweb.com/blog/148/instalacion-de-eclipse-33-con-pdt-php-ide-y-zend-debugger/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Configuración de Apache para utilizar Drupal en multisite.</title>
		<link>http://www.neuroticweb.com/blog/147/configuracion-de-apache-para-utilizar-drupal-en-multisite/</link>
		<comments>http://www.neuroticweb.com/blog/147/configuracion-de-apache-para-utilizar-drupal-en-multisite/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 09:09:09 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.neuroticweb.com/blog/147/configuracion-de-apache-para-utilizar-drupal-en-multisite/</guid>
		<description><![CDATA[Para utilizar Drupal en modo multisite, es decir, utilizar una sola instalación del motor de Drupal para varias webs, a partir de la versión 5, se puede configurar a través del directorio sites/ y la configuración de Virtual Host de &#8230; <a href="http://www.neuroticweb.com/blog/147/configuracion-de-apache-para-utilizar-drupal-en-multisite/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Para utilizar <a href="http://www.drupal.org">Drupal</a> en modo multisite, es decir, utilizar una sola instalación del motor de Drupal para varias webs, a partir de la versión 5, se puede configurar a través del directorio sites/ y la<a href="http://www.neuroticweb.com/blog/144/configuracion-del-servidor-apache-para-trabajar-con-virtual-hosts/"> configuración de Virtual Host de Apache</a></p>
<p>Si la web ya está funcionando en Drupal, se pueden saltar los siguientes pasos referentes a la descarga e instalación de Drupal y realizar la configuración de Apache, si no, podemos conseguir Drupal bien descargándonoslo a través de la página o directamente a través de CVS, mediante la sentencia:</p>
<p><em># cvs -z6 -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal checkout<strong> -r DRUPAL-5-3 drupal</strong> </em></p>
<p>Tres pinceladas sobre esta sentencia, la cláusula <em>-z6</em> es para que realice la descarga en modo comprimido y de esta forma consuma menos ancho de banda, <em>-r DRUPAL-5-3 </em>indica la rama que queremos descargar, debemos ser cuidadosos, ya que si no podemos nada, o usamos la rama principal <em>HEAD</em>, descargará la última versión, a día de hoy, la beta de Drupal 6. Se puede echar un vistazo al repositorio CVS de Drupal a través de <a href="http://cvs.drupal.org/viewvc.py/drupal">http://cvs.drupal.org/viewvc.py/drupal</a> , también es posible descargar modulos accediendo al repositorio de los mismos (<em>cvs.drupal.org:/cvs/drupal-contrib</em>). Por último, esta sentencia nos descargará la versión indicada de CVS en un subdirectorio drupal del directorio actual, si queremos que se descargue en otro directorio, deberemos incluir la cláusula <em>-d ruta </em>utilizando siempre rutas relativas.</p>
<p>Para instalar Drupal, necesitamos crear una base de datos y un usuario con privilegios para ejecutar las sentencias, ejemplos en MySql de la creación de la base de datos y del usuario:<br />
<code><em>    CREATE DATABASE <strong>nombre_bbdd;</strong></em></code></p>
<p><code><em>    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP,INDEX,<br />
ALTER,CREATE TEMPORARY TABLES, LOCK TABLES ON <strong>nombre_bbdd</strong>.*<br />
TO '<strong>usuario_bbdd</strong>'@'localhost'<br />
IDENTIFIED BY <strong>'password'</strong></em><strong>;</strong></code></p>
<p><span id="more-147"></span></p>
<p>Una vez creado, deberemos configurar nuestro servidor Apache y Drupal para funcionar en multisite, para ello, creamos una carpeta dentro de <em>sites/</em> con el nombre del primer dominio que vamos a incluir en nuestro multisite, por ejemplo <em>sites/midominio.com</em> (para ser originales). En este directorio es donde van a ir las carpetas modules y themes con los modulos y templates personalizados para el sitio web, además del directorio files (para los archivos que pueda subir el usuario, imágenes &#8230;) y el <em>settings.php.</em></p>
<p>El siguiente paso es copiar el fichero <em>settings.php</em> de <em>sites/default</em> a <em>sites/midominio.com</em> y modificar esta línea para incluir nuestros parámetros de conexión a la base de datos:<br />
<code><em>$db_url = 'mysql://<strong>username:password</strong>@localhost/<strong>databasename</strong>';</em></code><br />
Para poder acceder a nuestra web, tenemos que modificar el fichero Vhosts.conf que tenemos creado para trabajar con Virtual Hosts en Apache, le añadimos una entrada más.<br />
<code>&lt;VirtualHost *:80&gt;<br />
ServerName nombredenuestraweb.local.pc<br />
DocumentRoot /ruta_de_drupal<br />
&lt;Directory "/ruta_de_drupal"&gt;<br />
AllowOverride All<br />
Options -Indexes +FollowSymLinks MultiViews<br />
Order allow,deny<br />
Allow from all<br />
&lt;/Directory&gt;<br />
&lt;/VirtualHost&gt;</code></p>
<p><strong>Ojo:</strong> El dominio o zona local.pc deberá ser el que tenemos definido en nuestro servidor de DNS!</p>
<p>Viendo esta configuración, saltan a la vista dos cosas, la primera es la ruta de Drupal, tenemos que poner el directorio que contiene la instalación completa de Drupal y <strong>no</strong> la ruta <em>sites/midominio.com.</em></p>
<p>La otra cosa que puede llamar la atención es que nuestro dominio no se llama  <em>nombredenuestraweb.local.pc,</em> sino <em>midominio.com</em> y es así como se llama la carpeta para Drupal, tenemos dos opciones, o cambiamos el nombre de la carpeta de Drupal a <em>nombredenuestraweb.local.pc </em>y luego lo tenemos en cuenta cada vez que subamos al servidor de internet, o tomamos una decisión mucho más cómoda y creamos un <a href="http://en.wikipedia.org/wiki/Symbolic_link">link simbólico</a> que haga que todas las llamadas a <em>nombredenuestraweb.local.pc</em> referencien a <em>midominio.com.</em></p>
<p># <em>ln -s midominio.com nombredenuestraweb.local.pc</em></p>
<p>De esta forma, Drupal ya detectará correctamente las llamadas cuando se referencie a nuestra web por el dominio local, y cuando la subamos al servidor, no tendremos que modificar nada. Este link simbólico nos va a causar un problema si trabajamos con Eclipse, pero veremos como resolverlo más adelante, en los pasos de configuración de los equipos clientes.</p>
<p>La forma de instalar Drupal será la habitual a partir de ahora.</p>
<p>Si es una web que ya tenemos en Drupal, el siguiente paso sería exportar e importar la web para empezar a trabajar en local, esto lo podéis realizar mediante <em>mysqldump / mysql</em> , si tenéis acceso a la línea de comandos en el servidor, o si no con PHPMyAdmin.</p>
<p><strong>Ojo:</strong> Si tenéis problemas con la codificación de caracteres al exportar-importar (maldito latin1), echadle un vistazo a <a href="http://www.orthogonalthought.com/blog/index.php/2007/05/mysql-database-migration-and-special-characters/">esta página</a>.</p>
<p>Si la web es nueva, la instalación de drupal se realizará desde <em>nombredenuestraweb.local.pc/install.php </em>, si están configurados correctamente los parámetros de conexión a base de datos y los Virtual Hosts de Apache, Drupal ya estará operativo en multisite. Para añadir más sitios web en la misma instalación, simplemente incluiremos las nuevas web en sites/ y repetiremos los pasos de configuración de Apache, base de datos y link simbólicos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuroticweb.com/blog/147/configuracion-de-apache-para-utilizar-drupal-en-multisite/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Instalación de un servidor CVS.</title>
		<link>http://www.neuroticweb.com/blog/146/instalacion-de-un-servidor-cvs/</link>
		<comments>http://www.neuroticweb.com/blog/146/instalacion-de-un-servidor-cvs/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 14:14:47 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.neuroticweb.com/blog/146/instalacion-de-un-servidor-cvs/</guid>
		<description><![CDATA[Una vez configurado el Apache, vamos con la instalación de CVS. Antes de instalar el motor de CVS (incluye servidor y cliente), deberemos comprobar si ya está presente en nuestro sistema, si tenemos Ubuntu, es muy probable que ya lo &#8230; <a href="http://www.neuroticweb.com/blog/146/instalacion-de-un-servidor-cvs/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Una vez configurado el <a href="http://www.neuroticweb.com/blog/144/configuracion-del-servidor-apache-para-trabajar-con-virtual-hosts/">Apache</a>, vamos con la instalación de <a href="http://ximbiot.com/cvs/wiki/">CVS.</a></p>
<p>Antes de instalar el motor de CVS (incluye servidor y cliente), deberemos comprobar si ya está presente en nuestro sistema, si tenemos Ubuntu, es muy probable que ya lo tengamos instalados, simplemente debemos escribir en la linea de comandos:</p>
<blockquote><p><em>cvs </em></p></blockquote>
<p>Si nos devuelve algo como esto, es que ya lo tenemos instalado:</p>
<blockquote></blockquote>
<blockquote><p><em>Usage: cvs [cvs-options] command [command-options-and-arguments]<br />
where cvs-options are -q, -n, etc.<br />
(specify &#8211;help-options for a list of options)<br />
where command is add, admin, etc.<br />
(specify &#8211;help-commands for a list of commands<br />
or &#8211;help-synonyms for a list of command synonyms)<br />
where command-options-and-arguments depend on the specific command<br />
(specify -H followed by a command name for command-specific help)<br />
Specify &#8211;help to receive this message</em></p>
<p><em>The Concurrent Versions System (CVS) is a tool for version control.<br />
For CVS updates and additional information, see<br />
the CVS home page at http://www.nongnu.org/cvs/ or<br />
the CVSNT home page at http://www.cvsnt.org/</em></p></blockquote>
<p>Si no, deberemos instalarlo, mediante esta sentencia:</p>
<blockquote><p><em>        apt-get install cvs</em></p></blockquote>
<p>El siguiente paso será elegir la ruta donde vamos a situar nuestro repositorio de cvs y crearlo, se hace con un simple comando:</p>
<blockquote><p><em>        cvs -d /ruta_del_repositorio init </em></p></blockquote>
<p><span id="more-146"></span><br />
También deberemos añadir a nuestras variables de entorno lo siguiente:</p>
<p><em>    export CVSROOT=/ruta_del_repositorio</em></p>
<p>Para importar ficheros en el servidor, es necesario situarse en el directorio donde están dichos ficheros y ejecutar el siguiente comando</p>
<blockquote><p><em>        cvs import -m &#8220;Codigo importado&#8221; Origen/directorio vendor_tag release_tag</em></p></blockquote>
<p>Donde, -m &#8220;Codigo importado&#8221; es el mensaje que le asignamos a los módulos importados a CVS, Origen/directorio es <strong>la ruta relativa </strong>(cvs no admite rutas absolutas, por motivos de seguridad)<strong> </strong>de los ficheros que queremos importar, y finalmente, vendor_tag corresponde a la marca del autor del software (normalmente se utiliza más adelante para gestionar el código de terceros) y release_tag es la marca inicial del software.</p>
<p>Para una mejor gestión del repositorio, lo ideal es crear un grupo cvs que le asignaremos a los usuarios:</p>
<blockquote><p><em>    groupadd cvs</em></p></blockquote>
<p>También es necesario configurar los permisos <strong>dentro del repositorio</strong> que hemos creado:</p>
<blockquote><p><em>    chgrp -R cvs .<br />
chmod ug+rwx . CVSROOT</em></p></blockquote>
<p>El siguiente paso es imprescindible para aceptar conexiones desde los clientes al servidor, es la configuración del <em>inet.d</em> o del <em>xinet.d</em>, depende de lo que estemos utilizando para aceptar conexiones externas, la configuración para <em>inet.d</em> es mas simple,  en el fichero <em>/etc/inet.d</em> hay que añadir esta entrada<br />
<code>cvspserver stream tcp nowait root /usr/local/bin/cvs cvs<br />
--allow-root=/ruta_del_repositorio pserver </code><br />
Si es <em>xinet.d</em>, deberemos crear un fichero <em>cvspserver</em> en la carpeta <em>/etc/xinetd.d/ </em>con este contenido:<br />
<code>service cvspserver<br />
{<br />
port        = 2401<br />
socket_type = stream<br />
protocol    = tcp<br />
wait        = no<br />
user        = root<br />
passenv     = PATH<br />
server      = /usr/bin/cvs<br />
server_args = -f --allow-root=/ruta_del_repositorio pserver<br />
} </code><br />
<strong>Ojo: </strong>Es necesario realizar un reload del servicio, no es suficiente con reiniciarlo, para <em>xinet.d</em>:</p>
<blockquote><p>/etc/init.d/xinetd reload</p></blockquote>
<p>Ahora que ya tenemos el servidor de CVS iniciado y con ficheros cargos, es necesario crear los usuarios que van a acceder al repositorio. Es imprescindible que el usuario que vaya a acceder esté creado en el servidor a nivel de Sistema Operativo, así que, si el usuario no existe, ejecutamos el siguiente comando:</p>
<blockquote><p>useradd -g cvs -d /home_del_usuario -m -s /bin/bash usuario</p></blockquote>
<p>Y le asignamos una contraseña</p>
<blockquote><p>passwd usuario</p></blockquote>
<p>Si el usuario ya existe en cvs, le podemos asignar el grupo:</p>
<blockquote><p>adduser usuario cvs/blockquote&gt;<br />
Al servidor de CVS se puede acceder a través de varios protocolos, el más recomendable si está publicado al exterior es ssh, no es nuestro caso, ya que el servidor está publicado solamente en nuestra LAN, así que usaremos la mas simple, que es pserver o identificación mediante contraseña.</p>
<p>Para ello creamos un fichero llamado <em>passwd</em> en el directorio <em>CVSROOT</em> de nuestro repositorio (este directorio se genera automáticamente al crear el repositorio, dentro de la ruta que le hayamos especificado), que es el directorio que contiene todos los archivos de control y metadato de CVS.</p></blockquote>
<blockquote><p>touch /ruta_del_repositorio/CVSROOT/passwd</p></blockquote>
<p>El formato de este fichero es <em>usuario:contraseñaencriptada</em>.</p>
<p>Para obtener este pass encriptado, podemos utilizar el de /etc/passwd, o usar un script de generación de passwords:<br />
<code>#!/usr/bin/perl<br />
srand (time());<br />
my $randletter = "(int (rand (26)) +<br />
(int (rand (1) + .5) % 2 ? 65 : 97))";<br />
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);<br />
my $plaintext = <strong>[aqui la contraseña]</strong>;<br />
my $crypttext = crypt ($plaintext, $salt);<br />
print "${crypttext}\n";</code><br />
Para que los desarrolladores reciban notificaciones cuando otro ha modificado un fichero que ellos necesitan o están editando, hace falta configurar el fichero <em>notify</em> del directorio de <em>CVSROOT</em> se debe añadir la siguiente línea:<br />
<code>ALL mail %s -s "CVS notification"</code><br />
Y además, añadir un fichero llamado <em>users</em> en el mismo directorio que contenga información de los usuarios y sus correos electrónicos:<br />
<code>usuario1:direccion1@mail.com<br />
usuario2:direccion2@mail.com<br />
...</code><br />
Sobre CVS podéis encontrar más información en la página oficial del proyecto, y estas dos páginas tienen bastante información, <a href="http://www.ucolick.org/~de/CVSbeginner.html">http://www.ucolick.org/~de/CVSbeginner.html</a> y <a href="http://www.linuxfromscratch.org/blfs/view/cvs/server/cvsserver.html">http://www.linuxfromscratch.org/blfs/view/cvs/server/cvsserver.html</a></p>
<p><a href="http://www.linuxfromscratch.org/blfs/view/cvs/server/cvsserver.html"></a><br />
Lo siguiente a realizar es <a href="http://www.neuroticweb.com/blog/147/configuracion-de-apache-para-utilizar-drupal-en-multisite/">configurar el servidor Apache para utilizar Drupal con multisite</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuroticweb.com/blog/146/instalacion-de-un-servidor-cvs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuración del Servidor Apache para trabajar con Virtual Hosts.</title>
		<link>http://www.neuroticweb.com/blog/144/configuracion-del-servidor-apache-para-trabajar-con-virtual-hosts/</link>
		<comments>http://www.neuroticweb.com/blog/144/configuracion-del-servidor-apache-para-trabajar-con-virtual-hosts/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 11:13:57 +0000</pubDate>
		<dc:creator>Pedro</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.neuroticweb.com/blog/144/configuracion-del-servidor-apache-para-trabajar-con-virtual-hosts/</guid>
		<description><![CDATA[Una vez configurado el servidor DNS para la LAN, ya podemos configurar el servidor Apache (estamos usando apache versión 2 en este caso) para que acceda a subdominios del tipo nombresite.local.neurotic (nuestro nombre de dominio en local). Si no tienes &#8230; <a href="http://www.neuroticweb.com/blog/144/configuracion-del-servidor-apache-para-trabajar-con-virtual-hosts/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Una vez configurado el <a href="http://www.neuroticweb.com/blog/143/instalacion-de-un-servidor-dns-bind9-en-debian/">servidor DNS para la LAN</a>, ya podemos configurar el servidor Apache (estamos usando apache versión 2 en este caso) para que acceda a subdominios del tipo <em>nombresite.local.neurotic </em>(nuestro nombre de dominio en local).</p>
<p>Si no tienes Apache 2 instalado, en Debian o Ubuntu, puedes instalarlo mediante esta sentencia:</p>
<p><em>        apt-get install  apache2</em></p>
<p>La ruta de instalación por defecto es <em>/etc/apache2</em></p>
<p>En el fichero <em>httpd.conf </em>se debe incluir la siguiente línea:<br />
<code><em>include /ruta_del_fichero/Vhosts.conf</em></code><br />
<strong>Nota:</strong>  la ruta del fichero <em>Vhosts.conf</em> puede estar en el mismo <em>/etc/apache2/conf.d/</em> o en cualquier directorio accesible.</p>
<p>Y el fichero <em>Vhosts.conf</em> deberá tener el siguiente formato:</p>
<p><code> namevirtualhost *:80<br />
&lt;VirtualHost *:80&gt;<br />
ServerName web1.local.neurotic<br />
DocumentRoot /ruta_de_la_web_1<br />
&lt;/VirtualHost&gt;<br />
&lt;VirtualHost *:80&gt;<br />
ServerName web2.local.neurotic<br />
DocumentRoot  /ruta_de_la_web_2<br />
&lt;/VirtualHost&gt;</code><br />
<span id="more-144"></span><br />
Para activar los cambios, solo será necesario recargar la configuración del servidor apache:<em>    </em></p>
<p><em>        /etc/init.d/apache2 reload</em></p>
<p>En las etiquetas de Virtual Hosts se pueden incluir multitud de opciones, para Drupal, a mi me va bien esta:<br />
<code>&lt;VirtualHost *:80&gt;<br />
ServerName web1.local.neurotic<br />
DocumentRoot /ruta_de_la_web_1<br />
&lt;Directory "/ruta_de_la_web_1"&gt;<br />
AllowOverride All<br />
Options -Indexes +FollowSymLinks MultiViews<br />
Order allow,deny<br />
Allow from all<br />
&lt;/Directory&gt;<br />
&lt;/VirtualHost&gt;</code></p>
<p><strong>Nota:</strong> La configuración *:80 es para resolver todas las peticiones realizadas por el puerto 80.</p>
<p><strong> Ojo:</strong> Esta configuración parece no llevarse bien con la configuración de <em>sites-avaliable / sites-enabled</em>, y puede que no sea adecuado tener ambas configuradas simultaneamente. Para corregir este aviso</p>
<p><code>VirtualHost *:80 -- mixing * ports and non-* ports with a<br />
NameVirtualHost address is not supported, proceeding with<br />
undefined results</code></p>
<p>Comentamos esta línea del fichero <em>/etc/apache2/apache2.conf </em></p>
<p><code>#Include /etc/apache2/sites-enabled/</code></p>
<p>Más sobre Virtual Host:<br />
<a href="http://www.openbsderos.org/wiki/index.php?title=Virtualhost">http://www.openbsderos.org/wiki/index.php?title=Virtualhost</a></p>
<p>El siguiente paso para configurar nuestro sandbox es <a href="http://www.neuroticweb.com/blog/146/instalacion-de-un-servidor-cvs/">instalar el servidor CVS</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.neuroticweb.com/blog/144/configuracion-del-servidor-apache-para-trabajar-con-virtual-hosts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

