<?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>Paraiso Linux &#187; php y mysql</title>
	<atom:link href="http://paraisolinux.com/category/desarrollo/php-y-mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://paraisolinux.com</link>
	<description>Todo el mundo de linux, ubuntu, arch y el mundo de los blogs y el seo</description>
	<lastBuildDate>Fri, 18 May 2012 23:05:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Mostrar numeros de fans en facebook con PHP</title>
		<link>http://paraisolinux.com/mostrar-numeros-de-fans-en-facebook-con-php/</link>
		<comments>http://paraisolinux.com/mostrar-numeros-de-fans-en-facebook-con-php/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 04:36:27 +0000</pubDate>
		<dc:creator>perro</dc:creator>
				<category><![CDATA[php y mysql]]></category>
		<category><![CDATA[cantidad fans php]]></category>
		<category><![CDATA[facebook php]]></category>
		<category><![CDATA[fan page facebook]]></category>
		<category><![CDATA[fans facebook php]]></category>

		<guid isPermaLink="false">http://paraisolinux.com/?p=5874</guid>
		<description><![CDATA[Lo clasico para mostrar el numero de fans en facebook es usar el widget de &#8220;Me gusta&#8221; (como el que esta en el lateral del blog, ya le hiciste click?). Ese mismo widget te servira para que los visitantes con un simple click se sumen a la pagina de facebook que hayas creado. Pero en distintas situaciones uno quiero obtener ese numero sin tener que usar el widget. Por ejemplo cuando queremos mostrar la cantidad de fans con algun estilo css. EL codigo mas [...]]]></description>
			<content:encoded><![CDATA[<p>Lo clasico para <strong>mostrar el numero de fans en facebook</strong> es usar el widget de &#8220;Me gusta&#8221; (como el que esta en el lateral del blog, ya le hiciste click?).</p>
<p>Ese mismo widget te servira para que los visitantes con un simple click se sumen a la pagina de <a href="http://paraisolinux.com/imagenes-para-facebook/">facebook</a> que hayas creado. Pero en distintas situaciones uno quiero obtener ese numero sin tener que usar el widget. Por ejemplo cuando queremos <em>mostrar la cantidad de fans</em> con algun estilo css.</p>
<figure><a rel="nofollow" href="http://www.facebook.com/paraisolinux"><img src="http://paraisolinux.com/wp-content/uploads/2012/01/facebook-fans-600x204.jpg" alt="Mostrar numeros de fans en facebook con PHP" title="facebook-fans" width="600" height="204" class="aligncenter size-ancho maximo wp-image-5875" /></a></figure>
<p>EL codigo mas sencillo que hay para eso es el siguiente:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
	$page_id = &quot;ID-PAGINA&quot;;
	$xml = @simplexml_load_file(&quot;http://api.facebook.com/restserver.php?method=facebook.fql.query&amp;query=SELECT%20fan_count%20FROM%20page%20WHERE%20page_id=&quot;.$page_id.&quot;&quot;) or die (&quot;a lot&quot;);
	$fans = $xml-&gt;page-&gt;fan_count;
	echo $fans;
?&gt;
</pre>
<p>Donde debes reemplazar el ID-PAGINA por el id de la fan page que se obtiene en esta web: http://graph.facebook.com/USERNAME reemplazando USERNAME por el nombre de su pagina en facebook. Por ejemplo para la del blog seria:</p>
<blockquote><p>http://graph.facebook.com/paraisolinux</p></blockquote>
<p>Espero que les sirva <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_smile.gif' alt="Mostrar numeros de fans en facebook con PHP" class='wp-smiley' title="Mostrar numeros de fans en facebook con PHP" /><br />
Visto en <a rel="nofollow" href="http://www.wprecipes.com/display-number-of-facebook-fans-in-full-text-on-your-wordpress-blog" target="_blank">wprecipes</a></p>
]]></content:encoded>
			<wfw:commentRss>http://paraisolinux.com/mostrar-numeros-de-fans-en-facebook-con-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>10 errores MySQL de programadores de PHP</title>
		<link>http://paraisolinux.com/10-errores-mysql-de-programadores-de-php/</link>
		<comments>http://paraisolinux.com/10-errores-mysql-de-programadores-de-php/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 06:51:19 +0000</pubDate>
		<dc:creator>perro</dc:creator>
				<category><![CDATA[php y mysql]]></category>
		<category><![CDATA[error mysql]]></category>
		<category><![CDATA[error php]]></category>
		<category><![CDATA[programadores php]]></category>

		<guid isPermaLink="false">http://paraisolinux.com/?p=4813</guid>
		<description><![CDATA[Linda recopilacion de errores cometidos por desarrolladores de PHP al trabajar con MySQL. Yo no soy un programador experto y por lo tanto me han servido, espero que a ustedes tambien 1. Usar MyISAM en vez de InnoDB MySQL tiene una variedad de motores o database engines; pero, es probable que nos hayamos encontrado casi siempre con MyISAM y/o InnoDB. MyISAM es el motor por defecto; sin embargo, a menos que no estemos creando una base de datos sencilla o de pruebas, usar MyISAM [...]]]></description>
			<content:encoded><![CDATA[<p>Linda recopilacion de errores cometidos por desarrolladores de PHP al trabajar con MySQL. Yo no soy un programador experto y por lo tanto me han servido, espero que a ustedes tambien <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_smile.gif' alt="10 errores MySQL de programadores de PHP " class='wp-smiley' title="10 errores MySQL de programadores de PHP " /> </p>
<p><strong>1. Usar MyISAM en vez de InnoDB</strong><br />
MySQL tiene una variedad de motores o database engines; pero, es probable que nos hayamos encontrado casi siempre con MyISAM y/o InnoDB.</p>
<p>MyISAM es el motor por defecto; sin embargo, a menos que no estemos creando una base de datos sencilla o de pruebas, usar MyISAM como nuestro motor es una opción equivocada. MyISAM no soporta restricciones de claves foráneas o transacciones, esenciales para mantener la integridad referencial de los datos. Además, del hecho de que toda la tabla se bloquea cuando uno inserta o actualiza un registro, lo que provoca un efecto adverso en el rendimiento de la aplicación, cuando esta crece.</p>
<p>La solución: Usar InnoDB&#8230;</p>
<p><strong>2. Usar las funciones MySQL de PHP</strong><br />
<a href="http://paraisolinux.com/"><img class="alignright size-thumbnail wp-image-4814" title="logo_mysql" src="http://paraisolinux.com/wp-content/uploads/2010/12/logo_mysql-150x150.png" alt="10 errores MySQL de programadores de PHP " width="150" height="150" /></a>Desde sus inicios, PHP nos provee de librerías de funciones especiales para el manejo de MySQL. Muchas aplicaciones dependen de las funciones mysql_connect, mysql_query, mysql_fetch_assoc, etc. pero el propio manual de PHP dice:</p>
<p>Si estas usando la versión de MySQL 4.1.3 o superior se recomienda el uso de la extensión mysqli.</p>
<p>mysqli o la extensión mejorada de MySQL, tiene notorias ventajas:</p>
<ul>
<li>Una (opcional) interfaz orientada a objetos</li>
<li>Declaraciones preparadas (que nos ayudan a prevenir inyecciones SQL y a incrementar el rendimiento)</li>
<li>Múltiples declaraciones y soporte de transacciones</li>
</ul>
<p>Alternativamente, debes de considerar usar PDO si deseamos mantener un soporte a múltiples bases de datos.</p>
<p><span id="more-4813"></span></p>
<p><strong>3. No validar el acceso de usuarios</strong><br />
Esta debería de ser probablemente la #1: Nunca confiar en lo que escribe el usuario. Validar cada cadena de texto que es enviada al servidor con PHP, aún cuando usamos JavaScript, debería ser la norma. Las más sencillas inyecciones de SQL dependen de códigos como este:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php $username = $_POST[&quot;name&quot;]; $password = $_POST[&quot;password&quot;]; $sql = &quot;SELECT userid FROM usertable WHERE username='$username' AND password='$password';&quot;; // run query... ?&gt;
</pre>
<p>Esto podría ser crackeado ingresando “admin’ ; –“ en el campo del nombre de usuario. El string del SQL quedaría como sigue:</p>
<pre class="brush: php; title: ; notranslate">SELECT userid FROM usertable WHERE username='admin';</pre>
<p>El cracker podría loggearse como “admin”, sin necesidad de conocer la clave, ya que esta comentada en el SQL.</p>
<p><strong>4. No usar UTF-8</strong><br />
UTF-8 resuelve muchos problemas de internacionalización. Aunque no será soportado adecuadamente en PHP hasta la versión 6.0, hay algunas cosas que podemos hacer al configurar los caracteres de MySQL como UTF-8.</p>
<p><strong>5. Favorecer a PHP sobre SQL</strong><br />
Cuando somos nuevos con MySQL, es común resolver los problemas en el lenguaje que más conocemos. Esto nos puede conducir a un código más lento e innecesario. Por ejemplo, en vez de usar las función nativa de mysql AVG(), usamos un loop PHP para calcular el promedio obteniendo todos los valores de un conjunto de registros.</p>
<p>También hay que tener cuidado de las consultas SQL dentro de los bucles de PHP. Siempre es recomendable realizar una consulta y luego recorrer sus resultados.</p>
<p>En general, hay que utilizar los puntos fuertes de la base de datos para analizar los datos.</p>
<p><strong>6. No optimizar tus consultas</strong><br />
El 99% de los problemas de rendimiento con PHP son causados por la base de datos y una consulta SQL mal realizada podría causar estragos en nuestra aplicación. La declaración EXPLAIN de MySQL, el Query Profiler y muchas otras herramientas, nos ayudarán a encontrar nuestra consulta acertada.</p>
<p>Recomendado: <a href="http://www.baluart.net/articulo/10-tips-para-optimizar-consultas-mysql">10 tips para Optimizar consultas MySQL</a></p>
<p><strong>7. Usar los tipos de datos equivocados</strong><br />
MySQL ofrece una variedad de tipos de datos: numéricos, de cadena y fecha. Si estamos almacenando una fecha, hay que guardarla en un campo DATE o DATETIME. Usar un INTEGER o STRING puede hacer de nuestras consultas SQL más complicadas.</p>
<p>A menudo podríamos tener la tentación de almacenar nuestro propio formato de datos; por ejemplo, almacenar objetos serializados de PHP como string; gestionar la base de datos sería más fácil; pero, MySQL se convertirá en un almacén de datos tontos y que, probablemente, nos lleven a más problemas.</p>
<p><strong>8. Usar * en las consultas SELECT</strong></p>
<p>No es conveniente usar el * para devolver todas las columnas de una tabla, es ocioso. Sólo debemos extraer los datos que necesitamos, incluso si requerimos de todos los campos en un momento, en el futuro, nuestras tablas pueden cambiar.</p>
<p><strong>9. Sub o Sobre Indexación</strong><br />
Como norma general, los índices deben aplicarse a cualquier columna que vaya a ser llamada en la clausula WHERE de una consulta SELECT.</p>
<p>Por ejemplo, supongamos que tenemos una tabla user con un ID numérico (clave primaria) y una dirección de correo electrónico. Durante la sesión de usuario, MySQL debe localizar el ID correcto al buscar un correo electrónico. Con un índice, MySQL podría usar un algoritmo de búsqueda rápida para localizar el e-mail casi instantáneamente. Sin un índice, MySQL debe comprobar todos los registros en orden, hasta encontrar la dirección de correo.</p>
<p>A veces es tentador añadir índices a cada columna; sin embargo, estos se regeneran con cada INSERT o UPDATE en una tabla. Lo que podría tener un gran impacto en el rendimiento, por ello sólo debemos añadir índices a los campos estrictamente necesarios.</p>
<p><strong>10. Olvidarse de hacer backups</strong><br />
Puede sonar raro, pero los discos duros pueden malograrse. Los servidores pueden quemarse&#8230; y la perdida de nuestros datos MySQL serían catastróficos. Por ello, hay que asegurarnos de contar con copias de seguridad automatizadas o réplicas de nuestra base datos.</p>
<p><strong>11. Bonus mistake: No considerar otras bases de datos</strong><br />
MySQL puede ser la base de datos más popular y aceptada por los desarrolladores de PHP; pero, no es la única opción. PostgreSQL y Firebird son sus competidores más cercanos, ambos son open source y no están manejados por una corporación.  Incluso, SQLite puede ser una alternativa viable para aplicaciones pequeñas o embebidas.</p>
<p>Lista recopilacion verdad? La vi en <a href="http://www.baluart.net/articulo/top-10-errores-mysql-cometidos-por-desarrolladores-php">Baluart</a></p>
]]></content:encoded>
			<wfw:commentRss>http://paraisolinux.com/10-errores-mysql-de-programadores-de-php/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Vim como IDE para PHP</title>
		<link>http://paraisolinux.com/vim-como-ide-para-php/</link>
		<comments>http://paraisolinux.com/vim-como-ide-para-php/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 19:43:46 +0000</pubDate>
		<dc:creator>perro</dc:creator>
				<category><![CDATA[php y mysql]]></category>
		<category><![CDATA[Varios]]></category>

		<guid isPermaLink="false">http://paraisolinux.com/?p=4470</guid>
		<description><![CDATA[Estuve 2 dias googleando y buscando opiniones sobre si aprender a usar vim o emacs. Se que son 2 editores de texto muy pero muy potentes. Al final el unico motivo por el que elegi vim es porque prefiero memorizar comandos que tener que enrollar mis dedos para las tareas comunes del editor. Bueno a todo esto me encontre con un buen ebook leyendo un blog de ushuaia :O Les dejo el enlace para que lo descarguen: click aqui. Y les dejo 2 imagenes [...]]]></description>
			<content:encoded><![CDATA[<p>Estuve 2 dias googleando y buscando opiniones sobre si aprender a usar <strong>vim o emacs</strong>. Se que son 2 editores de texto muy pero muy potentes. Al final el unico motivo por el que elegi <strong>vim</strong> es porque prefiero memorizar comandos que tener que enrollar mis dedos para las tareas comunes del editor. Bueno a todo esto me encontre con un buen ebook leyendo un blog de ushuaia :O</p>
<p>Les dejo el enlace para que lo descarguen: <a rel="nofollow" href="https://docs.google.com/viewer?url=http://phpbarcelona.org/files/phpworkshop08/vim/vim_workshop.pdf">click aqui</a>.</p>
<p>Y les dejo 2 imagenes que me encontre dentro del libro que son graciosas y que a la vez son verdad.</p>
<div id="attachment_4471" class="wp-caption aligncenter" style="width: 370px"><a href="http://paraisolinux.com/wp-content/uploads/2010/09/8810_9b04.jpeg"><img class="size-full wp-image-4471 " title="8810_9b04" src="http://paraisolinux.com/wp-content/uploads/2010/09/8810_9b04.jpeg" alt="Vim como IDE para PHP" width="360" height="240" /></a><p class="wp-caption-text">Curva de aprendizaje de algunos editores</p></div>
<div id="attachment_4472" class="wp-caption aligncenter" style="width: 310px"><a href="http://paraisolinux.com/wp-content/uploads/2010/09/tiraecol-3.jpg"><img class="size-medium wp-image-4472" title="tiraecol-3" src="http://paraisolinux.com/wp-content/uploads/2010/09/tiraecol-3-300x105.jpg" alt="Vim como IDE para PHP" width="300" height="105" /></a><p class="wp-caption-text">click para agrandar</p></div>
]]></content:encoded>
			<wfw:commentRss>http://paraisolinux.com/vim-como-ide-para-php/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Como usar FBML en tus aplicaciones para facebook</title>
		<link>http://paraisolinux.com/como-usar-fbml-en-tus-aplicaciones-para-facebook/</link>
		<comments>http://paraisolinux.com/como-usar-fbml-en-tus-aplicaciones-para-facebook/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 12:33:41 +0000</pubDate>
		<dc:creator>perro</dc:creator>
				<category><![CDATA[php y mysql]]></category>
		<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[aplicaciones facebook]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[FBML]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://paraisolinux.com/?p=3406</guid>
		<description><![CDATA[Vimos hace poco como hacer nuestra primera aplicacion para facebook, un &#8220;Hola [tu nombre]&#8220;. Era lo basico y vamos a seguir avanzando de a poco, a medida que vaya aprendiendo yo Hoy quiero mostrarles como usar FBML. FBML es un lenguaje de etiquetas muy similar al HTML. El FBML es lo que nos va a permitir tener acceso a diferentes elementos del perfil y acciones de un usuario. Como es eso? Pues facebook por cuestiones de privacidad no permite que uno pueda acceder a [...]]]></description>
			<content:encoded><![CDATA[<p>Vimos hace poco como hacer nuestra <a href="http://paraisolinux.com/hola-mundo-con-php-y-el-api-de-facebook/">primera aplicacion para facebook</a>, un &#8220;Hola [tu nombre]&#8220;. Era lo basico y vamos a seguir avanzando de a poco, a medida que vaya aprendiendo yo <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_razz.gif' alt="Como usar FBML en tus aplicaciones para facebook" class='wp-smiley' title="Como usar FBML en tus aplicaciones para facebook" /> </p>
<p>Hoy quiero mostrarles <strong>como usar FBM</strong><strong>L</strong>. FBML es un lenguaje de etiquetas muy similar al HTML. El FBML es lo que nos va a permitir tener acceso a diferentes elementos del perfil y acciones de un usuario. Como es eso? Pues facebook por cuestiones de privacidad no permite que uno pueda acceder a datos de los usuarios, uno solo puede acceder a los ID de usuario. Y <strong>mediante ese ID mas FBML uno puede acceder a los otros datos del perfil</strong> (nombre, foto, amigos, etc etc) y solo desde una aplicacion que se ejecute en el mismo facebook. Es todo una cuestion de seguridad y muy buena segun yo.</p>
<p>Tenemos que recordar que nuestras aplicaciones estan alojadas en nuestros propios servidores y que facebook no nos da ningun alojamiento ni nada parecido, por lo tanto las bases de datos tambien las alojamos nosotros. Entonces a la hora de guardar algo deben guardar el ID de un usuario pues no tendran acceso al nombre, foto ni nada mas del usuario.</p>
<p>Ej: vamos a suponer que tenemos el ID de un usuario X que es 111222777 entonces&#8230;si en nuestra aplicacion quisieramos mostrar el nombre de esa persona hariamos asi:</p>
<pre class="brush: php; title: ; notranslate">&lt;fb:name uid=&quot;111222777&quot; /&gt;</pre>
<p>O si por ejemplo quisieramos ver las foto de perfil de ese usuario hariamos asi:</p>
<pre class="brush: php; title: ; notranslate">&lt;fb:profile-pic uid='111222777' /&gt;</pre>
<p>Como veran no es dificil. No son muchas etiquetas. Y reciben parametros con las que podremos aprovecharlas mejor.</p>
<p>Veamos un ejemplo mas completo inspirado en un post de <a href="http://blog.ikhuerta.com/api-de-facebook-mostrar-datos-de-los-usuarios-en-tus-aplicaciones">ikhuerta</a>.</p>
<p><span id="more-3406"></span>Vamos a usar el los mismos pasos que en <a href="http://paraisolinux.com/hola-mundo-con-php-y-el-api-de-facebook/">mi tuto anteior</a>. Solo vamos a cambiar el paso 9, el archivo index.php contendra lo siguiente:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
// Llamar el archivo que contiene los parametros de configuración y obtine el id del usuario
require_once 'includes/facebook_config.php';

// Extraemos a un array los id's de todos sus amigos
$friends_ids = $facebook-&gt;api_client-&gt;friends_get();
?&gt;
&lt;!-- Mostrando foto del usuario logueado --&gt;
&lt;p&gt;Hola! esta es tu foto: &lt;fb:profile-pic uid=&quot;&lt;?php echo $id_usuario; ?&gt;&quot; linked=&quot;true&quot; /&gt;&lt;/p&gt;

&lt;!-- Mostramos las fotos de los amigos y nombres en una tabla--&gt;
&lt;table border=1&gt;
	&lt;tr&gt;
		&lt;td&gt;Foto&lt;/td&gt;
		&lt;td&gt;Nombre&lt;/td&gt;
	&lt;/tr&gt;
	&lt;?php foreach ( $friends_ids as $friend_id ) {?&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;fb:profile-pic uid='&lt;?php echo $friend_id; ?&gt;' linked='true' /&gt;&lt;/td&gt;
		&lt;td&gt;&lt;fb:name uid='&lt;?php echo $friend_id; ?&gt;' /&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;?}?&gt;
&lt;/table&gt;
</pre>
<p>Eso les va a mostrar primero tu foto y luego una tabla con las fotos y nombres de tus amigos. Algo asi:</p>
<figure><a href="http://paraisolinux.com/wp-content/uploads/2010/04/screenshot_004.png"><img class="aligncenter size-full wp-image-3407" title="screenshot_004" src="http://paraisolinux.com/wp-content/uploads/2010/04/screenshot_004.png" alt="Como usar FBML en tus aplicaciones para facebook" width="292" height="363" /></a></figure>
<p>Muy sencillo. Espero sus comentarios y dudas.</p>
]]></content:encoded>
			<wfw:commentRss>http://paraisolinux.com/como-usar-fbml-en-tus-aplicaciones-para-facebook/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Hola Mundo con PHP y el API de Facebook</title>
		<link>http://paraisolinux.com/hola-mundo-con-php-y-el-api-de-facebook/</link>
		<comments>http://paraisolinux.com/hola-mundo-con-php-y-el-api-de-facebook/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 19:44:02 +0000</pubDate>
		<dc:creator>perro</dc:creator>
				<category><![CDATA[php y mysql]]></category>
		<category><![CDATA[api facebook]]></category>
		<category><![CDATA[aplicacion para facebook]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://paraisolinux.com/?p=3392</guid>
		<description><![CDATA[Ultimamente me esta interesando bastante el tema las APIs de Facebook y Twitter. Asi que me decidi a buscar info y como siempre la comparto con todos ustedes. El dia de hoy quiero mostrarles como hacer su primera aplicacion para facebook usando PHP. No es una aplicacion para nada util pues solo muestra un &#8216;Hola mundo&#8217; seguido de tu nombre. Pero antes hay que entender algunas cosas. Facebook logro su popularidad al permitir contener aplicaciones realizadas por terceros y realizar negocios con ello. Eso [...]]]></description>
			<content:encoded><![CDATA[<p>Ultimamente me esta interesando bastante el tema las <strong>APIs de Facebook y Twitter</strong>. Asi que me decidi a buscar info y como siempre la comparto con todos ustedes.</p>
<p>El dia de hoy quiero mostrarles como hacer su <strong>primera aplicacion para facebook usando PHP</strong>. No es una aplicacion para nada util pues solo muestra un &#8216;Hola mundo&#8217; seguido de tu nombre. Pero antes hay que entender algunas cosas.</p>
<p>Facebook logro su popularidad al permitir contener aplicaciones realizadas por terceros y realizar negocios con ello. Eso no quiere decir que facebook te de un espacio en disco ni bases de datos para que tu hagas tus aplicaciones. Todo lo que hagas lo tendras que hacer en tu servidor o hosting. Facebook lo unico que hara se brindarte la conexion entre tu aplicacion y los datos de los perfiles de los millones de usuarios de la su red.</p>
<figure><img class="aligncenter size-medium wp-image-3395" title="facebookdevwallpaperjl1" src="http://paraisolinux.com/wp-content/uploads/2010/04/facebookdevwallpaperjl11-300x187.jpg" alt="Hola Mundo con PHP y el API de Facebook" width="300" height="187" /></figure>
<p>Los recursos disponibles a los desarrolladores se agrupan en 3 categorías:</p>
<ul>
<li><strong>API</strong>: es una interfaz basada en REST que permite el acceso a los datos del perfil, amigos, fotos y eventos del usuario mediante la utilización de mensajes GET o POST.</li>
<li><strong>Consultas (FQL, “Facebook Query Language”)</strong>: es un lenguaje de consultas similar a SQL utilizado para acceder a los mismos datos que la API pero permitiendo consultas más complejas.</li>
<li><strong>Maquetación (FBML, “Faceboook Markup Language”)</strong>: es un lenguaje de markup similar a HTML que permite ser intercalado con el HTML a utilizar para integrar las aplicaciones a la experiencia de usuario Facebook. Utilizando FBML se pueden acceder distintos puntos de la red como ser el perfil, acciones del perfil, canvas y feeds. Este lenguaje también incluye soporte para AJAX y Javascript.</li>
</ul>
<p><span id="more-3392"></span></p>
<p>Una aplicación en Facebook posee una compleja estructura que permite brindar una experiencia de usuario completa:</p>
<ul>
<li><strong>Product Directory:</strong> cuando un usuario navega el directorio de aplicaciones de Facebook, por cada aplicación se muestra una pequeña sección con el nombre, una imagen y una pequeña descripción.</li>
<li><strong>About:</strong> esta página muestra información general de la aplicación. Debe inducir al usuario a instalar la aplicación.</li>
<li><strong>Left Nav:</strong> es el panel de navegación izquierdo. Las aplicaciones pueden tener su ícono y nombre en este panel.</li>
<li><strong>Canvas Page:</strong> es la página principal de la aplicación. <strong>Home:</strong> esta página es accedida utilizando el panel de navegación de la izquierda, en general muestra información de los amigos del usuario. <strong>User Dashboard:</strong> es la página donde el usuario administra sus datos en una aplicación y determina de que forma las aplicaciones acceden a sus datos personales.</li>
<li><strong>Profile:</strong> es la representación online de la identidad del usuario. La API provee múltiples puntos de integración con el perfil del usuario permitiendo actualizar datos del mismo.<strong>Profile Box:</strong> presenta información actualizada sobre las acciones recientes del usuario.<strong>Profile Actions Links:</strong> debajo de la foto del usuario en el perfil, se pueden agregar enlaces para invocar acciones en la aplicación.</li>
<li><strong>Privacy Settings:</strong> se utiliza para definir los niveles de privacidad de los datos del perfil por aplicación.</li>
<li><strong>News Feed:</strong> como su nombre lo indica es un “feed” de noticias, allí las aplicaciones pueden “publicar” información del usuario de la misma.</li>
<li><strong>Alerts:</strong> las aplicaciones pueden enviar notificaciones a los usuarios a través del correo electrónico.</li>
<li><strong>Message Attachments:</strong> las aplicaciones pueden incluir archivos adjuntos que aparecen en la ventana para componer mensajes.</li>
<li><strong>Requests:</strong> las aplicaciones pueden crear peticiones que aparecen en la parte superior izquierda de la página principal. En general son iniciados por amigos que solicitan realizar alguna acción.</li>
</ul>
<p>Todo eso de arriba lo copie de <a href="http://www.maestrosdelweb.com/editorial/primeros-pasos-para-generar-aplicaciones-de-facebook/">maestrosdelweb</a>. La verdad para hacer nuestra primera aplicacion no nos interesa mucho todo eso.</p>
<h3>Manos a la obra</h3>
<p>Pongamos manos a la obra, he de aclarar que para hacer estos 10 pasos me base en otro blog que ya no existe mas <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_razz.gif' alt="Hola Mundo con PHP y el API de Facebook" class='wp-smiley' title="Hola Mundo con PHP y el API de Facebook" /> </p>
<p><strong>Paso 1</strong>: Debes ser usuario de la red social facebook para poder crear las aplicaciones.</p>
<p><strong>Paso 2</strong>: Te vas a la pagina de developers y a la derecha veras un boton o enlace que dice &#8216;Configurar una nueva aplicacion&#8217;</p>
<p><strong>Paso 3</strong>: En la pagina que aparecio poner un nombre para la aplicacion, Ej: &#8216;Saludador&#8217; y acepten los terminos y condiciones.</p>
<p><strong>Paso 4</strong>: En la siguiente ventana les apareceran como pestañas laterales a la izquierda.</p>
<p>En la que dice &#8216;<strong>Basico</strong>&#8216; llenamos los campos mas obvios: nombre de la aplicacion, icono, logotipo, descripcion, idioma. Aunque para nuestra pequeña primera aplicacion bastara con que coloquen solo el nombre. En esa misma pestaña tambien tienen el ID de aplicacion, el Api Key y secret key, copienlos en algun lado porque despues los vamos a usar.</p>
<p>En la pestaña <strong>Autenticacion</strong> marcamos la opcion <strong>Instalacion posible para usuarios</strong>.</p>
<p>Y en la pestaña <strong>Lienzo</strong> o Canvas si esta en ingles colocan en &#8216;Dirección web (URL) de la página de lienzo&#8217; colocan lo que se convertira en su &#8216;direccion facebook&#8217; Ej: http://apps.facebook.com/saludador y en &#8216;Canvas Callback URL&#8217; colocan la direccion donde este almacenada su aplicacion, en este caso sera http://tudominio.com/saludador</p>
<p>Guarden todos los cambios.</p>
<p><strong>Paso 5</strong>: Ahora hay que subir los archivos necesarios y la aplicacion a nuestro servidor. Antes que nada habra que bajar las librerias que nos permiten interactuar con el API de facebook. </p>
<p><strong>Paso 6</strong>: Dentro del comprimido encontraran 2 carpetas (php y footprints) que deberan subir a su hosting.</p>
<p>Paso 7: Crear un archivo llamado facebook_config.php que contendra algunos datos:</p>
<pre class="brush: php; title: ; notranslate">
&lt;!--?php require_once 'php/facebook.php'; // codigo(KEY) que identifica a nuestra aplicación y es utilizadas en cada llamada a Facebook $appapikey = 'colocar aqui su API KEY'; // llave privada para autenticar la aplicación en el servidor de Facebook $appsecret = 'colocar aqui su SECRET'; // Crear una instancia del objeto Facebook $facebook = new Facebook($appapikey, $appsecret); // Obtener el id del usuario que este utilizando la aplicación $id_usuario = $facebook---&gt;require_login();

$appcallbackurl = 'http://tudominio.com/saludador';

//catch the exception that gets thrown if the cookie has an invalid session_key in it
  if (!$facebook-&gt;api_client-&gt;users_isAppUser()) {
    $facebook-&gt;redirect($facebook-&gt;get_add_url());
  }
?&gt;
</pre>
<p>Deberan completar el archivo con sus propios datos de aplicacion.</p>
<p><strong>Paso 8</strong>: Subir facebook_config.php al mismo nivel que las carpetas anteriores.</p>
<p><strong> Paso 9</strong>: Crear un archivo index.php que contendra la aplicacion propiamente dicha que mostrara un mensaje saludando y mostrando el nombre de la persona:</p>
<pre class="brush: php; title: ; notranslate">
&lt;!--?php // Llamar el archivo que contiene los parametros de configuración y obtine el id del usuario require_once 'facebook_config.php'; ?--&gt;

Hola, Buen dia
</pre>
<p>Como veran aqui estamos haciendo uso de FMBL obtenemos el nombre de la persona que esta viendo la aplicacion. Y el parametro useyou=&#8221;false&#8221; se usa para que aunque habras tu mismo la aplicacion muestre tu nombre en vez de decirte &#8216;Tu&#8217; <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_razz.gif' alt="Hola Mundo con PHP y el API de Facebook" class='wp-smiley' title="Hola Mundo con PHP y el API de Facebook" /> </p>
<p><strong> Paso 10</strong>: Suban el archivo al mismo nivel que los otros archivos.</p>
<p>Eso seria todo, ahora si entran a la direccion que elijieron en el paso 4. Ej: http://apps.facebook.com/saludador  veran como su aplicacion los saluda con un pequeño mensaje <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_smile.gif' alt="Hola Mundo con PHP y el API de Facebook" class='wp-smiley' title="Hola Mundo con PHP y el API de Facebook" /> </p>
<p>Fue todo muy sencillo y seguramente si llegaste a leer hasta aqui ya estas pensando en hacer alguna aplicacion <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_biggrin.gif' alt="Hola Mundo con PHP y el API de Facebook" class='wp-smiley' title="Hola Mundo con PHP y el API de Facebook" />  A mi personalmente me parecio sencillo y ademas me parece genial que uno pueda almacenar sus propias aplicaciones porque eso significa que puedo usar mi querido <a href="http://paraisolinux.com/category/desarrollo/kumbiaphp/">KumbiaPHP framework</a> para hacer alguna aplicacion.</p>
<p><strong>Posibles errores que te pueden aparecer:</strong></p>
<ul>
<li>Si solo te muestra el mensaje del saludo pero no tu nombre es porque cuando estas configurando tu aplicacion en la pestaña Lienzo debes elegir FBML en metodo de renderizacion.</li>
<li>Si te da algun error de &#8216;cant open&#8217; o algun error de PHP parecido seguramente sera por los permisos de los archivo o carpetas. Coloca permisos 755 a los archivos y carpetas involucrados.</li>
<li>Y si te dice algo como: <strong>FBML Error (line 7): illegal tag &#8220;noscript&#8221; under &#8220;fb:canvas&#8221;</strong> seguramente es porque tienes tu aplicacion en algun hosting gratuito que esta metiendo al codigo algo que indeseado.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://paraisolinux.com/hola-mundo-con-php-y-el-api-de-facebook/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Crear backups automaticos de MySQL en Ubuntu/Linux</title>
		<link>http://paraisolinux.com/crear-backups-automaticos-de-mysql-en-ubuntulinux/</link>
		<comments>http://paraisolinux.com/crear-backups-automaticos-de-mysql-en-ubuntulinux/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 23:38:39 +0000</pubDate>
		<dc:creator>perro</dc:creator>
				<category><![CDATA[php y mysql]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[backup automatico mysq]]></category>
		<category><![CDATA[backup linux]]></category>
		<category><![CDATA[backup mysql]]></category>

		<guid isPermaLink="false">http://paraisolinux.com/?p=3240</guid>
		<description><![CDATA[Que feo que es no hacer backups y despues perder datos solo por no tomarme 5 minutos para hacer los debidos respaldos. A quien no le ha pasaso? A mi si, y es por eso que me di a la tarea de buscar como hacer backups automaticos en linux y de manera sencilla. Si bien existen muchas maneras la que les voy a explicar es muy sencilla y la encontre en esta web. Vamos a usar la herramienta automysqlbackup que no es mas que [...]]]></description>
			<content:encoded><![CDATA[<p>Que feo que es no hacer <strong>backups</strong> y despues <strong>perder datos</strong> solo por no tomarme 5 minutos para hacer los debidos respaldos. A quien no le ha pasaso? A mi si, y es por eso que me di a la tarea de buscar como hacer backups automaticos en linux y de manera sencilla. Si bien existen muchas maneras la que les voy a explicar es muy sencilla y la encontre en <a rel="nofollow" href="http://www.howtoforge.com/creating-mysql-backups-with-automysqlbackup-on-ubuntu-9.10">esta web</a>.</p>
<p>Vamos a usar la herramienta <a rel="nofollow" href="http://sourceforge.net/projects/automysqlbackup/">automysqlbackup</a> que no es mas que un script que hace uso de mysqldump para realizar los backups.</p>
<p><strong>Paso 1</strong>: Comencemos, primero la instalacion:</p>
<blockquote><p>sudo apt-get install automysqlbackup</p></blockquote>
<p>si no usan <strong>ubuntu o alguna distro basada en debian</strong> pueden de todas maneras ir a la pagina del proyecto y bajar un archivo .sh que es igual de facil de usar.</p>
<p><strong>Paso 2</strong>: Ahora vamos a editar los algunos datos como por ejemplo donde queremos guardar los respaldos, para eso hacemos:</p>
<blockquote><p>sudo gedit /etc/default/automysqlbackup</p></blockquote>
<p><strong>Paso 3</strong>: Busquen la linea que dice</p>
<blockquote><p># Host name (or IP address) of MySQL server e.g localhost<br />
DBHOST=localhost</p></blockquote>
<p>Ahi colocan el la direccion del host de donde estan por hacer los backups, yo en mi caso deje localhost porque es para respaldar las bases de datos de mi propia pc.</p>
<p><strong>Paso 4</strong>: Ahora busquen&#8230;</p>
<blockquote><p>#DBNAMES=&#8221;db_ispconfig web1 web2 web3&#8243;<br />
DBNAMES=`find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d&#8217;/&#8217; -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ `</p></blockquote>
<p>Pueden dejar eso asi tal cual esta y lograran que se haga backup de todas las bases de datos, o pueden modificarlos como indica el ejemplo para solo resguardar algunas bases de datos especificas.</p>
<p><strong>Paso 5</strong>: Tambien busquen&#8230;</p>
<blockquote><p>BACKUPDIR=&#8221;/var/lib/automysqlbackup&#8221;</p></blockquote>
<p>Eso deben cambiarlo por la direccion donde se vayan a hacer los backups, recomiendo alguna particion que no sea la raiz de Linux. Sino cuando decidan cambiar de distro se van a dar con que se olvidaron los backups&#8230;como me paso a mi <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_sad.gif' alt="Crear backups automaticos de MySQL en Ubuntu/Linux" class='wp-smiley' title="Crear backups automaticos de MySQL en Ubuntu/Linux" /> </p>
<p><strong>Paso 6</strong>: Y por ultimo editamos la linea</p>
<blockquote><p>MAILADDR=&#8221;user@domain.com&#8221;</p></blockquote>
<p>Ponemos nuestra direccion de email si queremos que se nos envie un mail con los backups, recomiendo no usarlo, pongan un # delante de la linea sino se vuelve molesto recibir tantos mails con archivos.</p>
<p>Guarden y cierren el archivo.</p>
<p><span id="more-3240"></span></p>
<p>Ahora para hacer el backup solo deben escribir en la consola lo siguiente:</p>
<blockquote><p>automysqlbackup</p></blockquote>
<p>Y veran que la carpeta que elijieron tiene los resguardos.</p>
<p>El problema viene en que esto aun no es automatico, mas bien es semi-automatico, para hacerlo totalmente automatico debemos hacer uso de cron. Lo pueden hacer solo con la consola pero yo prefiero el metodo grafico:</p>
<p><strong>Paso 8</strong>: Instalar schedule Cron</p>
<blockquote><p>﻿﻿sudo apt-get install gnome-schedule</p></blockquote>
<p><strong>Paso 9</strong>: Apretar ALT+F2 y escribir gnome-schedule</p>
<p>Cuando aparezca la ventana para configurar las tareas programadas, pincharemos en “Nuevo” y seleccionaremos la opción “Una tarea que se lanzará repetidamente” para crear una nueva tarea.</p>
<p>En la ventana siguiente indicaremos un nombre para la nueva tarea, por ejemplo, “backups mysql” y, a continuación, escribiremos el comando que a ejecutar:</p>
<blockquote><p>automysqlbackup</p></blockquote>
<p>Ahora, sólo falta establecer el tiempo de intervalo deseado para actualizar la imagen, por ejemplo yo lo deje en por semana. Por último, pulsaremos “Añadir”. Ya hemos terminado de configurar la tarea en el planificador. Asi les tiene que quedar:</p>
<figure><a href="http://paraisolinux.com/wp-content/uploads/2010/03/screenshot_001.png"><img class="aligncenter size-full wp-image-3242" title="screenshot_001" src="http://paraisolinux.com/wp-content/uploads/2010/03/screenshot_001.png" alt="Crear backups automaticos de MySQL en Ubuntu/Linux" width="422" height="539" /></a></figure>
]]></content:encoded>
			<wfw:commentRss>http://paraisolinux.com/crear-backups-automaticos-de-mysql-en-ubuntulinux/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Como instalar Komodo Edit en Linux – Editor para PHP</title>
		<link>http://paraisolinux.com/como-instalar-komodo-edit-en-linux-editor-para-php/</link>
		<comments>http://paraisolinux.com/como-instalar-komodo-edit-en-linux-editor-para-php/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 18:28:45 +0000</pubDate>
		<dc:creator>perro</dc:creator>
				<category><![CDATA[php y mysql]]></category>
		<category><![CDATA[editor php liviano]]></category>
		<category><![CDATA[entorno de desarrollo php]]></category>
		<category><![CDATA[instalar komodo ubuntu]]></category>
		<category><![CDATA[php ide]]></category>

		<guid isPermaLink="false">http://paraisolinux.com/?p=3134</guid>
		<description><![CDATA[Anteriormente estaba usando Netbeans como entorno de desarrollo para programar con KumbiaPHP framework pero ahora se me ha dado por buscar aplicaciones mas livianas y que ocupen menos recursos. En el canal IRC de KumbiaPHP me recomendaron Komodo Edit y realmente satisface mis necesidades es ligero, soporta autocompletado de sintaxis y resaltado tambien. Ademas sirve para programar en Javascript, css, ruby, perl, python, xml y algunos mas. Lamentablemente no cuenta con un .deb para hacer la instalacion mas sencilla pero de igual manera es [...]]]></description>
			<content:encoded><![CDATA[<p>Anteriormente estaba usando Netbeans como entorno de desarrollo para programar con <a href="http://paraisolinux.com/category/desarrollo/kumbiaphp/">KumbiaPHP framework</a> pero ahora se me ha dado por buscar aplicaciones mas livianas y que ocupen menos recursos. En el canal IRC de KumbiaPHP me recomendaron Komodo Edit y realmente satisface mis necesidades es ligero, soporta autocompletado de sintaxis y resaltado tambien. Ademas sirve para programar en Javascript, css, ruby, perl, python, xml y algunos mas.</p>
<p>Lamentablemente no cuenta con un .deb para hacer la instalacion mas sencilla pero de igual manera es muy facil instalarlo, he aqui los pasos:</p>
<p><strong>Paso 1</strong>: Descargar desde <span style="text-decoration: underline;"><a rel="nofollow" href="http://www.activestate.com/komodo_edit/downloads/" target="_blank">esta pagina</a></span>.</p>
<p><strong>Paso 2</strong>: decomprimirlo.</p>
<p><strong>Paso 3</strong>: Con una consola posicionarse en la carpeta donde se descompromio y escribir:</p>
<blockquote><p>sudo sh install.sh</p></blockquote>
<p><strong>Paso 4</strong>: Les pedira una direccion donde instalar el software, elijan la que mas les convenga, yo use /home/sefsinalas/varios/komodo</p>
<p><strong>Paso 5</strong>: Ahora hay que crear un enlace a la aplicacion asi:</p>
<blockquote><p>sudo ln -s /home/sefsinalas/varios/komodo/bin/komodo /usr/local/bin/komodo</p></blockquote>
<p>Y eso es todo, pueden abrir la aplicacion escribiendo <strong>komodo</strong> en una consola o con alt+F2</p>
]]></content:encoded>
			<wfw:commentRss>http://paraisolinux.com/como-instalar-komodo-edit-en-linux-editor-para-php/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Herramienta para modelado de base de datos online</title>
		<link>http://paraisolinux.com/herramienta-para-modelado-de-base-de-datos-online/</link>
		<comments>http://paraisolinux.com/herramienta-para-modelado-de-base-de-datos-online/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 17:05:22 +0000</pubDate>
		<dc:creator>perro</dc:creator>
				<category><![CDATA[php y mysql]]></category>
		<category><![CDATA[diseño de base de datos online]]></category>
		<category><![CDATA[herramienta de modelado]]></category>
		<category><![CDATA[modelado de base de datos]]></category>

		<guid isPermaLink="false">http://paraisolinux.com/?p=2747</guid>
		<description><![CDATA[Estaba buscando una buena herramienta para modelado de base de datos y de pronto me tope con wwwsqldesigner es una herramienta para modelado de base de datos pero que funciona desde el navegador. Entre las caracteristicas que mas me gustan esta su facilidad de instalacion, solo deben bajar el comprimido, descomprimirlo y abrir index.html con el navegador, no es necesario tener instalado apache ni php para que funcione. Ademas permite exportar el trabajo realizado a XML o un script de SQL para crear las [...]]]></description>
			<content:encoded><![CDATA[<p>Estaba buscando una buena herramienta para modelado de base de datos y de pronto me tope con <strong>wwwsqldesigner</strong> es una herramienta para modelado de base de datos pero que funciona desde el navegador.</p>
<figure><a href="http://paraisolinux.com/wp-content/uploads/2010/01/sql.png"><img class="aligncenter size-medium wp-image-2748" title="sql" src="http://paraisolinux.com/wp-content/uploads/2010/01/sql-300x216.png" alt="Herramienta para modelado de base de datos online" width="300" height="216" /></a></figure>
<p>Entre las caracteristicas que mas me gustan esta su facilidad de instalacion, solo deben bajar el comprimido, descomprimirlo y abrir index.html con el navegador, <strong>no es necesario tener instalado apache ni php para que funcione</strong>.</p>
<p>Ademas permite exportar el trabajo realizado a XML o un script de SQL para crear las tablas.</p>
<p>Permite definir claves primarias, foraneas asi como tambien generar relaciones en forma grafica.</p>
<p>Se puede agregar comentarios a cada campo y cada tabla.</p>
<p>Viene en varios idiomas, incluidos el español como veran en el screnshoot.</p>
<p>Pero lo que me hizo decirdirme a usarlo fue que ademas de exportar los modelos tambien <strong>podemos guardarlos en el mismo servidor</strong>, eso si, para esta funcion si necesitan php y algun gestor de base de datos como mysql. Esta caracteristica me parece genial pues podremos trabajar sobre los modelos en cualquier lugar, lo malo es que no trae un sistema de usuario/contraseña pero eso se puede arreglar <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_smile.gif' alt="Herramienta para modelado de base de datos online" class='wp-smiley' title="Herramienta para modelado de base de datos online" />  de todas maneras no deben decirle a nadie la direccion de la pagina y listo.</p>
<p>Enlace: <a rel="nofollow" href="http://code.google.com/p/wwwsqldesigner/">wwwsqldesigner</a></p>
]]></content:encoded>
			<wfw:commentRss>http://paraisolinux.com/herramienta-para-modelado-de-base-de-datos-online/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Crear y quitar VirtualHost en Apache</title>
		<link>http://paraisolinux.com/crear-y-quitar-virtualhost-en-apache/</link>
		<comments>http://paraisolinux.com/crear-y-quitar-virtualhost-en-apache/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 06:25:18 +0000</pubDate>
		<dc:creator>perro</dc:creator>
				<category><![CDATA[php y mysql]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[virtual host]]></category>
		<category><![CDATA[virtualhost]]></category>

		<guid isPermaLink="false">http://paraisolinux.com.ar/?p=2253</guid>
		<description><![CDATA[En primer lugar habria que definir que es un VirtualHost verdad? Pues son son Host Virtuales Eso significa que podremos tener varios dominios apuntados a la misma pc. Por lo general solemos tener varios proyectos webs en nuestras pcs, casi siempre acomodamos esos proyectos dentro de una misma carpeta (/var/www o la que sea). Y aunque no es muy incomodo trabajar asi hay algunos a los que les gustaria poder acceder de manera aun mas rapida y comoda a sus proyectos. Por ejemplo si [...]]]></description>
			<content:encoded><![CDATA[<p>En primer lugar habria que definir que es un <strong>VirtualHost</strong> verdad? Pues son son Host Virtuales <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_razz.gif' alt="Crear y quitar VirtualHost en Apache" class='wp-smiley' title="Crear y quitar VirtualHost en Apache" />  Eso significa que podremos tener varios dominios apuntados a la misma pc. Por lo general solemos tener varios proyectos webs en nuestras pcs, casi siempre acomodamos esos proyectos dentro de una misma carpeta (/var/www o la que sea). Y aunque no es muy incomodo trabajar asi hay algunos a los que les gustaria poder acceder de manera aun mas rapida y comoda a sus proyectos. Por ejemplo si tenemos un proyecto en http://localhost/websocial podriamos querer acceder a el simplemente escribiendo http://websocial</p>
<p>Ahora veamos <strong>como crear esos VirtualHost en Linux</strong>. Les iba a explicar como hacerlo paso a paso pero la verdad existe una manera mas sencilla. Son 2 script que encontre <a href="http://juanbenavides.info/crear-y-quitar-virtual-hosts-en-apache-sobre-ubuntu/2009/08/">aqui</a>.</p>
<p>El primero es para crear host virtuales y paso a copiarlo aqui:</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/bash

if [ -z $1 ]
then
echo &quot;Debe ingresar el nombre del dominio&quot;
exit 1
else
DOMINIO=$1
fi

if [ -z $2 ]
then
RUTA=&quot;/var/www/&quot;
else
RUTA=$2
fi

echo &quot;Configurando dominio &quot;$DOMINIO

#CREAMOS LA ENTRADA EN /ETC/HOSTS
echo &quot;127.0.0.1	&quot;$DOMINIO &gt;&gt; /etc/hosts

#CREAMOS EL ARCHIVO DE VIRTUAL HOST
touch /etc/apache2/sites-available/$DOMINIO

#AGREGAMOS EL VIRTUAL HOST
echo &quot;&lt;VirtualHost *:80&gt;
ServerAdmin god@$DOMINIO
ServerName  *.$DOMINIO
ServerAlias $DOMINIO

DocumentRoot $RUTA$DOMINIO/
&lt;Directory /&gt;
Options FollowSymLinks
AllowOverride All
&lt;/Directory&gt;
&lt;Directory $RUTA$DOMINIO/&gt;
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
&lt;/Directory&gt;
&lt;/VirtualHost&gt;&quot; &gt; /etc/apache2/sites-available/$DOMINIO

#CREAMOS EL DIRECTORIO PARA EL DOMINIO
mkdir $RUTA$DOMINIO
chmod 775 $RUTA$DOMINIO

#CONFIGURAMOS APACHE
a2ensite $DOMINIO

#REINICIAMOS APACHE
/etc/init.d/apache2 reload

echo &quot;Listo!&quot;
</pre>
<p>Su utilizacion es muy sencilla. Primero guardar todo lo anterior en un archivo, por ejemplo crearhost.sh y ahora abrimos una consola y nos movemos a donde esta el archivo y escribimos:</p>
<blockquote><p>sudo sh crearhost.sh midominio /carpeta/proyecto</p></blockquote>
<p><span id="more-2253"></span><br />
Con eso el script configurará el virtual host, así como el dominio local. El segundo parametro es opcional, si no envías un segundo parametro te creará el proyecto en la carpeta default de Apache: &#8220;/var/www/&#8221;.</p>
<p>De la misma manera tenemos el script para quitar un VirtualHost:</p>
<pre class="brush: bash; title: ; notranslate">
#!/bin/bash

if [ -z $1 ]
then
echo &quot;Debe ingresar el nombre del dominio&quot;
exit 1
else
DOMINIO=$1
fi

echo &quot;Desconfigurando dominio &quot;$DOMINIO

#REMOVEMOS DE APACHE
a2dissite $DOMINIO

#BORRAMOS LA CONFIGURACION PARA APACHE
rm /etc/apache2/sites-available/$DOMINIO

#BORRAMOS EL DOMINIO LOCAL
sed  &quot;/$DOMINIO/ d&quot; -i /etc/hosts

#REINICIAMOS APACHE
/etc/init.d/apache2 reload

echo &quot;Listo!&quot;
</pre>
<p>Su uso es igual al anterior, primero guardar en un archivo, por ejemplo: quitarhost.sh y en la consola escribir:</p>
<blockquote><p>
sudo sh quitarhost.sh midominio</p></blockquote>
<p>Espero que les sirva asi como me sirvieron a mi.</p>
]]></content:encoded>
			<wfw:commentRss>http://paraisolinux.com/crear-y-quitar-virtualhost-en-apache/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Decodificar eval gzinflate base64</title>
		<link>http://paraisolinux.com/decodificar-eval-gzinflate-base64/</link>
		<comments>http://paraisolinux.com/decodificar-eval-gzinflate-base64/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 09:48:16 +0000</pubDate>
		<dc:creator>perro</dc:creator>
				<category><![CDATA[php y mysql]]></category>
		<category><![CDATA[decodificar]]></category>
		<category><![CDATA[eval]]></category>

		<guid isPermaLink="false">http://paraisolinux.com.ar/?p=1779</guid>
		<description><![CDATA[Los que tienen blogs hechos con wordpress seguramente se han encontrado con texto codificado en sus themes varias veces. Ese codigo lo ponen los diseñadores de los themes para que uno no los pueda cambiar, por ejemplo en los enlaces al sitio del diseñador que por lo general esta en el pie de pagina (footer.php) Da la casualidad que los mejores themes que uno encuentra siempre tienen ese feo codigo y cuando uno quiere personalizar algo no puede. Pero por suerte existen formas de [...]]]></description>
			<content:encoded><![CDATA[<p>Los que tienen blogs hechos con wordpress seguramente se han encontrado con texto codificado en sus themes varias veces. Ese codigo lo ponen los diseñadores de los themes para que uno no los pueda cambiar, por ejemplo en los enlaces al sitio del diseñador que por lo general esta en el pie de pagina (footer.php)</p>
<p>Da la casualidad que los mejores themes que uno encuentra siempre tienen ese feo codigo <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_sad.gif' alt="Decodificar eval gzinflate base64" class='wp-smiley' title="Decodificar eval gzinflate base64" />  y cuando uno quiere personalizar algo no puede. Pero por suerte existen formas de volver ese codigo a su forma original, entra esas formas esta que les comento ahora es la mas facil que encontre.</p>
<p>Solo deben ir a <a rel="nofollow" href="http://www.tareeinternet.com/scripts/decrypt.php">esta pagina</a> y copiar el texto codificado y con un solo click les devolvera el texto original <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_smile.gif' alt="Decodificar eval gzinflate base64" class='wp-smiley' title="Decodificar eval gzinflate base64" /> </p>
<p>Bueno fue un post cortito pero creo que es bastante util <img src='http://paraisolinux.com/wp-includes/images/smilies/icon_razz.gif' alt="Decodificar eval gzinflate base64" class='wp-smiley' title="Decodificar eval gzinflate base64" /> </p>
]]></content:encoded>
			<wfw:commentRss>http://paraisolinux.com/decodificar-eval-gzinflate-base64/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 13/20 queries in 0.022 seconds using disk: basic

Served from: paraisolinux.com @ 2012-05-22 02:53:08 -->
