www.keopx.net https://www.keopx.net/rss.xml es Instalar certificados SSL en Debian 9 con certbot (Let's Encrypt - Free SSL/TLS Certificates) https://www.keopx.net/blog/instalar-certificados-ssl-en-debian-9-con-certbot-lets-encrypt-free-ssltls-certificates <span class="field field--name-title field--type-string field--label-hidden">Instalar certificados SSL en Debian 9 con certbot (Let&#039;s Encrypt - Free SSL/TLS Certificates)</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Hace tiempo escribit un articulo sobre <a href="https://www.keopx.net/blog/instalar-certificados-de-lets-encrypt-free-ssltls-certificates-en-debian-ubuntu">Instalar certificados de Let's Encrypt - Free SSL/TLS Certificates en Debian / Ubuntu</a></p> <p>Este post es una revisión de que escribí.</p> <h1>Instalación</h1> <pre> <code class="language-bash"># apt-get install certbot</code></pre><h2>Configurar Apache</h2> <pre> <code class="language-bash"># nano /etc/apache2/sites-available/www.keopx.net-ssl.conf</code></pre><p>Y añadimos el <strong>-ssl</strong> por la existencia de un <strong><a href="https://github.com/certbot/certbot/issues/1042">bug</a></strong> en el <strong>certbot</strong>, que solo es capaz de distinguir un <strong>virtualhost</strong> por fichero <strong>*.conf</strong></p> <pre> <code class="language-bash">&lt;VirtualHost *:443&gt; ServerAdmin keopx@keopx.net ServerName www.keopx.net DocumentRoot /var/www/keopx.net/web &lt;Directory /var/www/keopx.net/web/&gt; Options FollowSymLinks AllowOverride All Require all granted &lt;/Directory&gt; ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On SSLCertificateFile /etc/letsencrypt/live/www.keopx.net/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.keopx.net/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf &lt;/VirtualHost&gt; </code></pre><h2>Creamos el SSL</h2> <pre> <code class="language-bash">certbot --apache -d www.keopx.net</code></pre><h2>Actualizamos los certificados</h2> <pre> <code class="language-bash">certbot renew --dry-run</code></pre><p>Referencias</p> <ul><li><a href="https://certbot.eff.org/docs/using.html#apache">https://certbot.eff.org/docs/using.html#apache</a></li> <li><a href="https://certbot.eff.org/docs/using.html?highlight=renew#renewing-certificates">https://certbot.eff.org/docs/using.html?highlight=renew#renewing-certif…</a></li> <li>Bug: <a href="https://github.com/certbot/certbot/issues/1042">https://github.com/certbot/certbot/issues/1042</a></li> </ul></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 02/09/2017 - 12:34</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/letsencrypt" hreflang="es">letsencrypt</a></div> <div class="field__item"><a href="/categoria/seguridad" hreflang="es">Seguridad</a></div> <div class="field__item"><a href="/categoria/apache2" hreflang="es">Apache2</a></div> <div class="field__item"><a href="/categoria/debian-9" hreflang="es">Debian 9</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/seguridad" hreflang="es">seguridad</a></div> <div class="field__item"><a href="/tag/apache" hreflang="es">apache</a></div> <div class="field__item"><a href="/tag/debian-9" hreflang="es">Debian 9</a></div> <div class="field__item"><a href="/tag/sistemas" hreflang="es">Sistemas</a></div> <div class="field__item"><a href="/tag/certbot" hreflang="es">certbot</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=292&amp;2=field_comments&amp;3=comment" token="e2q1tlu9gNjnsY9-OEPJORmF6R9X08tqdM22YQUr6Hk"></drupal-render-placeholder> </section> Sat, 02 Sep 2017 10:34:20 +0000 keopx 292 at https://www.keopx.net https://www.keopx.net/blog/instalar-certificados-ssl-en-debian-9-con-certbot-lets-encrypt-free-ssltls-certificates#comments Configurar sistema de correo con Exim4 en Debian 9 https://www.keopx.net/blog/configurar-sistema-de-correo-con-exim4-en-debian-9 <span class="field field--name-title field--type-string field--label-hidden">Configurar sistema de correo con Exim4 en Debian 9</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Acabo de migrar a un nuevo servidor con un poco más de capacidad y me he encontrado con que el sistema de correo de estaban llegando a SPAM.</p> <p>Tras verificar que los <a href="https://es.wikipedia.org/wiki/Sender_Policy_Framework">spf1</a> estaba bien he procedido a revisar las otras configuraciones, como es usar exim4.</p> <h2>Configuración de <a href="https://es.wikipedia.org/wiki/Sender_Policy_Framework">spf1</a>:</h2> <ul><li>Tipo: txt</li> <li>Nombre: @</li> <li>Valor: v=spf1 +a +mx include:_spf.google.com ip4:193.70.2.7 ip6:2001:41d0:0401:3100:0000:0000:0000:3bfa ~all</li> <li>TTL: 600</li> </ul><p>Aclarar que el <strong>TTL</strong> siempre va en <strong>segundos</strong> y que tanto la IP4 y la IP6 deberan ser las adecuadas.</p> <h2>Configuración <a href="https://wiki.debian.org/GmailAndExim4">exim4</a> (leer antes de lanzar):</h2> <pre> <code class="language-bash"># dpkg-reconfigure exim4-config</code></pre><ul><li>Mail Server Configuration Type <ul><li>internet site; mail is sent and received directly using SMTP</li> </ul></li> <li>Enter FQDN <ul><li>vps448842.ovh.net</li> </ul></li> <li>SMTP Listener <ul><li>127.0.0.1 ; ::1</li> </ul></li> <li>Mail Destinations <ul><li>vps448842.ovh.net;localhost.localdomain;localhost;</li> </ul></li> <li>Relay Options | Configuración del servidor de correo <ul><li>Lo dejamos en blanco</li> </ul></li> <li>DNS Queries <ul><li>No</li> </ul></li> <li>Delivery Method Configuración del servidor de correo <ul><li>formato mbox en «/var/mail»</li> </ul></li> <li>Configuration File <ul><li>No</li> </ul></li> <li><strong>Postmaster address</strong> <ul><li><strong>root</strong></li> </ul></li> </ul><p><strong>NOTA</strong>: el paso mas importante es el de <strong>Postmaster address.</strong></p> <h2>Añadir email-addresses</h2> <p>Para configurar adecuadamente los email de envio deberemos configurar los mail. En mi caso:</p> <pre> <code class="language-bash"># nano /etc/email-addresses</code></pre><p>Y añadimos email por usuario:</p> <pre> <code class="language-bash">www-data: isarea@isarea.com user: isarea@isarea.com root: isarea@isarea.com</code></pre><h3>En caso de poner mal el Postmaster address</h3> <p>Si deseas cambiar el Postmaster address deberás ir a /etc/aliases y modificar la configuración.</p> <h2>Referencias</h2> <ul><li><a href="https://es.wikipedia.org/wiki/Sender_Policy_Framework">Sender Policy Framework</a></li> <li><a href="https://support.google.com/a/answer/178723?hl=es">Configurar los registros SPF para que funcionen con G Suite</a></li> <li><a href="https://www.digitalocean.com/community/tutorials/how-to-install-the-send-only-mail-server-exim-on-ubuntu-12-04">How To Install the Send-Only Mail Server "Exim" on Ubuntu 12.04</a></li> </ul></div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 02/09/2017 - 12:01</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/correo" hreflang="es">Correo</a></div> <div class="field__item"><a href="/categoria/debian-9" hreflang="es">Debian 9</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/exim" hreflang="es">exim</a></div> <div class="field__item"><a href="/tag/debian-9" hreflang="es">Debian 9</a></div> <div class="field__item"><a href="/tag/correo-0" hreflang="es">Correo</a></div> <div class="field__item"><a href="/tag/email" hreflang="es">email</a></div> <div class="field__item"><a href="/tag/sistemas" hreflang="es">Sistemas</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=291&amp;2=field_comments&amp;3=comment" token="jb6LzkQWRQfll8ffnqr_0OoFHZpgZr5xEecY8--ZvZE"></drupal-render-placeholder> </section> Sat, 02 Sep 2017 10:01:02 +0000 keopx 291 at https://www.keopx.net https://www.keopx.net/blog/configurar-sistema-de-correo-con-exim4-en-debian-9#comments Drupal Template Helper para Drupal 8 https://www.keopx.net/blog/drupal-template-helper-para-drupal-8 <span class="field field--name-title field--type-string field--label-hidden">Drupal Template Helper para Drupal 8</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><strong>Drupal Template Helper</strong> sirve para destacar las plantillas twig sugeridas en cada caso y el preprocess a utilizar.</p> <p>Esta herramienta es muy cómoda y sencilla de utilizar, facilita muchísimo el poder encontrar las plantillas que son necesarias para cada caso y saber ademas que las esta utilizando.</p> <p>Recordad que es necesario limpiar la cache tras añadir una nueva plantilla para que Drupal sea capaz de reconocer dicho fichero.</p> <p>Este post es únicamente un traducción de la documentación oficial: <a href="https://github.com/arshad/drupal-template-helper">https://github.com/arshad/drupal-template-helper</a></p> <h2>Drupal Template Helper</h2> <p>Es una extensión de <em>Chrome DevTools</em> para las plantillas de Drupal 8, Drupal 7 y Backdrop CMS: <a href="https://chrome.google.com/webstore/detail/ppiceaegogijpjodfpiimifhbnaifbnn">https://chrome.google.com/webstore/detail/ppiceaegogijpjodfpiimifhbnaifbnn</a></p> <p><a href="https://cloud.githubusercontent.com/assets/124599/14293486/d561f37e-fb7d-11e5-8ed0-952d520678a4.png" target="_blank"><img alt="drupal-template-helper" src="https://cloud.githubusercontent.com/assets/124599/14293486/d561f37e-fb7d-11e5-8ed0-952d520678a4.png" /></a></p> <h3>Instalación</h3> <h5>PASO 1: InstalAR Y configurAR.</h5> <ol><li>Descargue e instale la extensión <em>Drupal Template Helper</em> para <em>Chrome</em>.</li> <li>Haga clic en el icono de la extensión.</li> <li>Haga clic en <em>Opciones</em> bajo <strong>Drupal Template Helper</strong>.</li> <li>Agregue las URL de los sitios para habilitar la extensión. Ejemplo: <a href="http://drupal.dev">http://drupal.dev</a>, <a href="http://www.drupal.dev">http://www.drupal.dev</a>.</li> <li>Guardar.</li> </ol><h5>PASO 2: HABILITAR LA API EXPERIMENTAL DEL CHROME.</h5> <ol><li>Ve a <em>chrome://flags/#enable-devtools-experiments</em>, busca <strong>Experimental Extension APIs</strong> y <strong>Developer Tools experiments</strong>, hacer click en "<em>Enable</em>" enlaces, y reinicia Chrome.</li> <li>Abrir <em>DevTools</em> y hacer click en <em>Settings</em>.</li> <li>Busca en la pestaña <strong>Experiments</strong> y activa <strong>Allow custom UI themes</strong>. Ver la siguiente captura. No olvides reiniciar nuevamente Chrome.</li> </ol><p><a href="https://cloud.githubusercontent.com/assets/124599/14293054/e6350e72-fb7b-11e5-973a-31794db51e4d.png" target="_blank"><img alt="drupal-template-devtools-theme-ui" src="https://cloud.githubusercontent.com/assets/124599/14293054/e6350e72-fb7b-11e5-973a-31794db51e4d.png" /></a></p> <p>Nota: Si desea ocultar los comentarios de Twig, desactive <strong>Show HTML comments</strong> en <strong>Preferences</strong>.</p> <p><a href="https://cloud.githubusercontent.com/assets/124599/21719927/b5c16cb2-d439-11e6-8cc7-a84192aa822a.png" target="_blank"><img alt="drupal-template-devtools-preferences" src="https://cloud.githubusercontent.com/assets/124599/21719927/b5c16cb2-d439-11e6-8cc7-a84192aa822a.png" /></a></p> <h5>PASO 3: HABILITAR EL TEMA DEBUG</h5> <ul><li>Para Drupal 8, ver el articulo de Phil's article: <a href="https://www.chapterthree.com/blog/drupal-8-theming-setting-theme-debugging">https://www.chapterthree.com/blog/drupal-8-theming-setting-theme-debugging</a></li> <li>Para Drupal 7, ver <a href="https://www.drupal.org/node/223440">https://www.drupal.org/node/223440</a>.</li> </ul><h3>Uso</h3> <p>Inspeccionar un elemento usando <em>DevTools</em> y haciendo click sobre <strong>Templates</strong> en la barra de <em>DevTools</em>.</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Lun, 03/07/2017 - 15:02</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/categoria/drupal-7x" hreflang="es">Drupal 7.x</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/tag/drupal-7x" hreflang="es">Drupal 7.x</a></div> <div class="field__item"><a href="/tag/twig" hreflang="es">Twig</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=272&amp;2=field_comments&amp;3=comment" token="d96fs2f8NKd88q03-l2WzEa5JPGEsqEWuRLD9OvvCsM"></drupal-render-placeholder> </section> Mon, 03 Jul 2017 13:02:10 +0000 keopx 272 at https://www.keopx.net https://www.keopx.net/blog/drupal-template-helper-para-drupal-8#comments Debugging Drush scripts con Xdebug y PhpStorm https://www.keopx.net/blog/debugging-drush-scripts-con-xdebug-y-phpstorm <span class="field field--name-title field--type-string field--label-hidden">Debugging Drush scripts con Xdebug y PhpStorm</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Para configurar correctamente un entornos para depurar con <a href="https://xdebug.org/">Xdebug</a> y <a href="https://www.jetbrains.com/phpstorm/">PhpStorm</a> los comandos <a href="https://github.com/drush-ops/drush">Drush</a> es necesario realizar una serie de configuración especifica.</p> <ul><li>Configurar una <strong><em>PHP Web Application</em> </strong>para depurar por la línea de comandos.</li> <li>Todo el código ejecutado debe estar disponible en el proyecto, incluyendo <strong>drush</strong>. <ul><li>Ej. Instalando drush como dependencia de composer (también, recuerde ejecutar drush desde su proyecto).</li> </ul></li> <li>Habilitar depuración <strong>xdebug</strong> para la línea de comandos.</li> </ul><pre> <code class="language-bash">sudo phpenmod xdebug</code></pre><ul><li>Un enlace simbólico de xdebug.ini de mi directorio<em> /etc/php/7.0/cli/conf.d</em> como estaba usando en <em>/etc/php/7.0/apache/conf.d</em> para la depuración web.</li> <li> <ul></ul><p> Ejemplo de configuración:</p></li> </ul><pre> <code class="language-bash">sudo vi /etc/php/7.0/cli/conf.d/20-xdebug.ini</code></pre><p>Y añadimos:</p> <pre> <code class="language-ini">zend_extension=xdebug.so xdebug.remote_connect_back = 1 xdebug.default_enable = 1 xdebug.remote_autostart = 1 xdebug.remote_enable = 1 xdebug.remote_port = 9000 xdebug.remote_handler = dbgp xdebug.max_nesting_level = 500 xdebug.idekey = PHPSTORM xdebug.profiler_enable_trigger = 1</code></pre><p>Utilice el botón "<strong>Listen for PHP Debug connections</strong>" de <strong>PhpStorm</strong>:</p> <ul><li>Establezca el cliente de depuración remota en la línea de comandos utilizando:</li> <li>Editamos ~/.bashrc y añadimos:</li> </ul><pre> <code class="language-bash"># PHPstorm drush debug export XDEBUG_CONFIG="idekey=PHPSTORM" </code></pre><ul><li>Establezca la configuración del servidor. Asegúrese de que el nombre que utiliza coincide con el nombre del servidor que configuró en PhpStorm: <ul><li>PHP_IDE_CONFIG = PHPSTORM</li> </ul></li> <li>Ejecute drush.</li> </ul><p>Si quereis correr <a href="https://xdebug.org/">Xdebug</a> con <a href="https://www.docker.com/">Docker</a> y/o <a href="https://www.vagrantup.com/">Vagrant</a> os recomiendo este post: <a href="http://blokspeed.net/blog/2016/02/debugging-drush-scripts-with-xdebug-and-phpstorm-on-vagrant-in-2016/">http://blokspeed.net/blog/2016/02/debugging-drush-scripts-with-xdebug-and-phpstorm-on-vagrant-in-2016/</a></p> <p>La verdad es que no recordaba como se configuraba el Xdebug para PhpStorm y Drush y gracias a <a href="https://twitter.com/jansev3n">Juanen</a> (<a href="https://www.drupal.org/u/jansete">jansete en Drupal</a>) me he vuelto a ponermelo bien y que menos que contribuirlo :D</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mar, 20/06/2017 - 19:32</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/categoria/drush" hreflang="es">Drush</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drush" hreflang="es">Drush</a></div> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/tag/drupal-7x" hreflang="es">Drupal 7.x</a></div> <div class="field__item"><a href="/tag/xdebug" hreflang="es">Xdebug</a></div> <div class="field__item"><a href="/tag/debug" hreflang="es">debug</a></div> <div class="field__item"><a href="/tag/phpstorm" hreflang="es">PhpStorm</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=270&amp;2=field_comments&amp;3=comment" token="wgGKbiUh3crzk0RxGFdWGRUMK3JE0HDt8lHarEqlY3Q"></drupal-render-placeholder> </section> Tue, 20 Jun 2017 17:32:56 +0000 keopx 270 at https://www.keopx.net https://www.keopx.net/blog/debugging-drush-scripts-con-xdebug-y-phpstorm#comments Cómo instalar y configurar Redis en Drupal 8 https://www.keopx.net/blog/como-instalar-y-configurar-redis-en-drupal-8 <span class="field field--name-title field--type-string field--label-hidden">Cómo instalar y configurar Redis en Drupal 8</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Voy a explicar cómo <strong>instalar y configurar Redis en Drupal 8.</strong> </p> <p>Redis es una base de datos popular basado en key-value.</p> <p>En el caso de <a href="https://www.drupal.org">Drupal</a> se usa como sistema de cache para la parte (backend) de gestión de contenidos, donde el sistema de cachea "estático" de las paginas no es suficiente.</p> <p>Con Redis notaremos rápidamente la fluidez y rapidez con la que se puede gestionar toda la parte que requiere de usuarios autenticados.</p> <ol><li>Instalar <em>Redis</em>:<br /><pre> <code class="language-bash">sudo apt-get install redis-server</code></pre><p>También puedes ver <a href="https://github.com/keopx/docker-redis/blob/master/3.2/Dockerfile">Dockerfile</a></p> </li> <li>Instalar soporte de <em>Redis</em> para PHP:<br /><pre> <code class="language-bash">sudo apt-get install php7.0-redis sudo a2enmod php7.0-redis</code></pre><p>También puedes ver <a href="https://github.com/keopx/docker-apache-php/blob/master/7.0/Dockerfile">Dockerfile</a></p> </li> <li>Instalar el modulo <em>redis</em> de <em>Drupal</em>:<br /><pre> <code class="language-bash">composer require drupal/redis</code></pre><p>o</p> <pre> <code class="language-bash">drush dl redis</code></pre></li> <li> <p>Configurar <strong>redis</strong> para <strong>Drupal</strong>:</p> </li> </ol><p>En el <strong>settings.php</strong> o mejor en el drush añadir lo siguiente:</p> <pre> <code class="language-php">&lt;?php /** * Set redis configuration. */ /** @see: https://docs.platform.sh/frameworks/drupal8/redis.html */ if (extension_loaded('redis')) { // Set Redis as the default backend for any cache bin not otherwise specified. // $settings['cache']['default'] = 'cache.backend.redis'; $settings['redis.connection']['interface'] = 'PhpRedis'; // Can be "Predis". $settings['redis.connection']['host'] = 'redis'; $settings['redis.connection']['port'] = '6379'; // $settings['redis.connection']['password'] = "mypassword"; // If you are using passwords, otherwise, omit // Apply changes to the container configuration to better leverage Redis. // This includes using Redis for the lock and flood control systems, as well // as the cache tag checksum. Alternatively, copy the contents of that file // to your project-specific services.yml file, modify as appropriate, and // remove this line. $settings['container_yamls'][] = 'modules/contrib/redis/example.services.yml'; // Allow the services to work before the Redis module itself is enabled. $settings['container_yamls'][] = 'modules/contrib/redis/redis.services.yml'; // Manually add the classloader path, this is required for the container cache bin definition below // and allows to use it without the redis module being enabled. $class_loader-&gt;addPsr4('Drupal\\redis\\', 'modules/contrib/redis/src'); // Use redis for container cache. // The container cache is used to load the container definition itself, and // thus any configuration stored in the container itself is not available // yet. These lines force the container cache to use Redis rather than the // default SQL cache. $settings['bootstrap_container_definition'] = [ 'parameters' =&gt; [], 'services' =&gt; [ 'redis.factory' =&gt; [ 'class' =&gt; 'Drupal\redis\ClientFactory', ], 'cache.backend.redis' =&gt; [ 'class' =&gt; 'Drupal\redis\Cache\CacheBackendFactory', 'arguments' =&gt; ['@redis.factory', '@cache_tags_provider.container', '@serialization.phpserialize'], ], 'cache.container' =&gt; [ 'class' =&gt; '\Drupal\redis\Cache\PhpRedis', 'factory' =&gt; ['@cache.backend.redis', 'get'], 'arguments' =&gt; ['container'], ], 'cache_tags_provider.container' =&gt; [ 'class' =&gt; 'Drupal\redis\Cache\RedisCacheTagsChecksum', 'arguments' =&gt; ['@redis.factory'], ], 'serialization.phpserialize' =&gt; [ 'class' =&gt; 'Drupal\Component\Serialization\PhpSerialize', ], ], ]; /** Optional prefix for cache entries */ $settings['cache_prefix'] = 'any-text-you-want'; /** @see: https://pantheon.io/docs/redis/ */ // Always set the fast backend for bootstrap, discover and config, otherwise // this gets lost when redis is enabled. $settings['cache']['bins']['bootstrap'] = 'cache.backend.chainedfast'; $settings['cache']['bins']['discovery'] = 'cache.backend.chainedfast'; $settings['cache']['bins']['config'] = 'cache.backend.chainedfast'; /** @see: https://github.com/md-systems/redis */ // Use for all bins otherwise specified. $settings['cache']['default'] = 'cache.backend.redis'; // Use this to only use it for specific cache bins. $settings['cache']['bins']['render'] = 'cache.backend.redis'; // Use for all queues unless otherwise specified for a specific queue. $settings['queue_default'] = 'queue.redis'; // Or if you want to use reliable queue implementation. $settings['queue_default'] = 'queue.redis_reliable'; // Use this to only use Redis for a specific queue (aggregator_feeds in this case). $settings['queue_service_aggregator_feeds'] = 'queue.redis'; // Or if you want to use reliable queue implementation. $settings['queue_service_aggregator_feeds'] = 'queue.redis_reliable'; } </code></pre><p>Ver <a href="https://gist.github.com/keopx/7d5fe4d7a890c792c43bb79cf56718e0">https://gist.github.com/keopx/7d5fe4d7a890c792c43bb79cf56718e0</a></p> <p>Una ves hecho esto ir a la pagina de estado (<em>/admin/reports/status</em>) para comprobar que todo esta bien.</p> <p><img alt="Drupal Redis Setup" data-entity-type="file" data-entity-uuid="54abaecf-03e5-4c6e-8bfe-f1e23743c011" src="//cdn3.keopx.net/sites/default/files/inline-images/Drupal_redis.png" /></p> <p>NOTA: si veis que cualquier parametrización es mejor, por favor comentadlo. Gracias.</p> <p>Referencias:</p> <ul><li><a href="https://gist.github.com/keopx/7d5fe4d7a890c792c43bb79cf56718e0">https://gist.github.com/keopx/7d5fe4d7a890c792c43bb79cf56718e0</a></li> <li><a href="https://docs.platform.sh/frameworks/drupal8/redis.html">https://docs.platform.sh/frameworks/drupal8/redis.html</a></li> <li><a href="https://pantheon.io/docs/redis/">https://pantheon.io/docs/redis/</a></li> <li><a href="https://github.com/md-systems/redis">https://github.com/md-systems/redis</a></li> <li><a href="https://github.com/keopx/docker-lamp">https://github.com/keopx/docker-lamp</a></li> </ul><p> </p> <p> </p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Dom, 18/06/2017 - 17:25</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/categoria/redis" hreflang="es">Redis</a></div> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/tag/redis" hreflang="es">Redis</a></div> <div class="field__item"><a href="/tag/php" hreflang="es">php</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=269&amp;2=field_comments&amp;3=comment" token="qCV33nxDY_ejWnQ4sUSyDpnaLr7joysNjRbFgsrijWE"></drupal-render-placeholder> </section> Sun, 18 Jun 2017 15:25:35 +0000 keopx 269 at https://www.keopx.net https://www.keopx.net/blog/como-instalar-y-configurar-redis-en-drupal-8#comments Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao] https://www.keopx.net/talk/docker-entorno-de-trabajo-configurado-en-1-minuto-wcbilbao <span class="field field--name-title field--type-string field--label-hidden">Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 13/05/2017 - 16:09</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><a href="https://2017.bilbao.wordcamp.org/programa/">Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]</a></p> <p>Hablaremos de:</p> <ul><li>¿Qué es Docker?</li> <li>Ventajas de trabajar con Docker (vs VM)</li> <li>Instalación de Docker</li> <li>Componentes de Docker</li> <li>Principales comandos de Docker</li> <li>Docker-Compose</li> <li>Introducción a DockerHub</li> <li>DevOps</li> <li>Cómo usarlo en el día a día.</li> <li>Demo time.</li> </ul><p class="text-align-center"> <iframe allowfullscreen="" frameborder="0" height="485" marginheight="0" marginwidth="0" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/key/IhCNZCNJuoRy4m" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" width="595"></iframe></p> <div class="text-align-center" style="margin-bottom:5px"><strong><a href="//www.slideshare.net/keopx/docker-entorno-de-trabajo-configurado-en-1-minuto-wcbilbao" target="_blank" title="Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]">Docker - Entorno de trabajo configurado en 1 minuto [WCBilbao]</a> </strong> de <strong><a href="https://www.slideshare.net/keopx" target="_blank">Keopx </a></strong></div> </div> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/wordpress" hreflang="es">WordPress</a></div> <div class="field__item"><a href="/categoria/wordcamp" hreflang="es">WordCamp</a></div> <div class="field__item"><a href="/categoria/docker" hreflang="es">Docker</a></div> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/wordpress" hreflang="es">WordPress</a></div> <div class="field__item"><a href="/tag/wordcamp" hreflang="es">WordCamp</a></div> <div class="field__item"><a href="/tag/docker" hreflang="es">Docker</a></div> <div class="field__item"><a href="/tag/devops" hreflang="es">DevOps</a></div> <div class="field__item"><a href="/tag/wcbilbao" hreflang="es">WCBilbao</a></div> </div> </div> Sat, 13 May 2017 14:09:25 +0000 keopx 274 at https://www.keopx.net Contribuir a Drupal, de 0 a 100 https://www.keopx.net/talk/contribuir-drupal-de-0-100 <span class="field field--name-title field--type-string field--label-hidden">Contribuir a Drupal, de 0 a 100</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 06/05/2017 - 16:37</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><a href="https://2017.drupalcamp.es/sessions/contribuir-drupal-por-donde-comenzar-de-0-100-regiguren">Contribuir a Drupal, de 0 a 100, por donde empezar</a></p> <p>Suele suceder que cuando queremos contribuir a Drupal, no solemos encontrar los recursos necesarios para comenzar a contribuir. En esta presentación se pretende iniciar a la gente explicando cual es la mejor forma de comenzar y facilitar los recursos para el aprendizaje sin morir en el intento.</p> <p class="text-align-center"> <iframe allowfullscreen="" frameborder="0" height="485" marginheight="0" marginwidth="0" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/key/hLXeOBWMOYluOE" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" width="595"></iframe></p> <div class="text-align-center" style="margin-bottom:5px"><strong><a href="//www.slideshare.net/keopx/drupal-campspain2017-contribuir-a-drupal-de-0-a-100" target="_blank" title="[Drupal campspain2017] Contribuir a Drupal, de 0 a 100">Contribuir a Drupal, de 0 a 100</a> </strong> de <strong><a href="https://www.slideshare.net/keopx" target="_blank">Keopx </a></strong></div> <p class="text-align-center"> <iframe allowfullscreen="" frameborder="0" height="540" mozallowfullscreen="" src="https://player.vimeo.com/video/218626931" webkitallowfullscreen="" width="960"></iframe></p> <p class="text-align-center"><a href="https://vimeo.com/218626931">Contribuir a Drupal de 0 a 100 - Rubén Egiguren #DrupalCampES</a></p> </div> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/contribuir" hreflang="es">Contribuir</a></div> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/drupalcamp" hreflang="es">DrupalCamp</a></div> </div> </div> Sat, 06 May 2017 14:37:07 +0000 keopx 275 at https://www.keopx.net Drupal 8: El poder de webform (antes yamlform) https://www.keopx.net/talk/drupal-8-el-poder-de-webform-antes-yamlform <span class="field field--name-title field--type-string field--label-hidden">Drupal 8: El poder de webform (antes yamlform)</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sáb, 06/05/2017 - 15:25</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Drupal 8: <a href="https://2017.drupalcamp.es/sessions/el-poder-de-webform-antes-yamform-regiguren">El poder de webform (antes yamlform)</a></p> <p>Sesión realizada en la <a href="https://2017.drupalcamp.es">DrupalCamp</a> 2017 en Madrid.</p> <p class="text-align-center"> <iframe allowfullscreen="true" frameborder="0" height="569" mozallowfullscreen="true" src="https://docs.google.com/presentation/d/1ucPeKBqHsU6oZOZtrprBzx-9FWvh-mSjgWZ55Pb1t-I/embed?start=false&amp;loop=false&amp;delayms=3000" webkitallowfullscreen="true" width="960"></iframe></p> <p class="text-align-center"> <iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" src="https://player.vimeo.com/video/218628416" webkitallowfullscreen="" width="640"></iframe></p> <p class="text-align-center"><a href="https://vimeo.com/218628416">El poder de Webform (antes YamlForm) - Ruben Egiguren (keopx) y David Gil</a></p> </div> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> <div class="field__item"><a href="/categoria/talk" hreflang="es">Talk</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drupal-8x" hreflang="es">Drupal 8.x</a></div> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/drupalcamp" hreflang="es">DrupalCamp</a></div> <div class="field__item"><a href="/tag/webform" hreflang="es">Webform</a></div> </div> </div> Sat, 06 May 2017 13:25:22 +0000 keopx 273 at https://www.keopx.net Instalar certificados de Let's Encrypt - Free SSL/TLS Certificates en Debian / Ubuntu https://www.keopx.net/blog/instalar-certificados-de-lets-encrypt-free-ssltls-certificates-en-debian-ubuntu <span class="field field--name-title field--type-string field--label-hidden">Instalar certificados de Let&#039;s Encrypt - Free SSL/TLS Certificates en Debian / Ubuntu</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Activamos ssl para apache:</p> <pre> <code class="language-bash">a2enmod ssl</code></pre><p>Añadimos a nuestro site la configuración correcta:</p> <pre> <code class="language-apache">... &lt;VirtualHost *:443&gt; ServerAdmin keopx@keopx.net ServerName www.keopx.net DocumentRoot /var/www/keopx.net/docroot &lt;Directory /var/www/keopx.net/docroot/&gt; # Options FollowSymLinks Options SymLinksIfOwnerMatch AllowOverride All Require all granted &lt;/Directory&gt; ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On SSLCertificateFile /etc/letsencrypt/live/www.keopx.net/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.keopx.net/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf &lt;/VirtualHost&gt; &lt;VirtualHost *:80&gt; ServerName keopx.net Redirect 301 / http://www.keopx.net/ &lt;/VirtualHost&gt; ....</code></pre><p>Procedemos a instalar <strong>letsencrypt:</strong></p> <pre> <code class="language-bash">cd /opt git clone https://github.com/certbot/certbot.git letsencrypt</code></pre><p>Configuramos <strong>letsencrypt</strong>:</p> <pre> <code class="language-bash">nano /etc/letsencrypt/keopx.ini</code></pre><pre> <code class="language-ini">authenticator = webroot webroot-path = /var/www/keopx.net/docroot renew-by-default agree-dev-preview agree-tos email = keopx@keopx.net</code></pre><p>Procedemos a crear el certificado (duran 3 meses):</p> <pre> <code class="language-bash">/opt/letsencrypt/certbot-auto --config /etc/letsencrypt/keopx.ini --user-agent letsencrypt-ubuntu-webroo -d www.keopx.net certonly</code></pre><p>Ahora es necesario reiniciar apache:</p> <pre> <code class="language-bash">service apache2 reload</code></pre><h2>Automatizar renovaciones automáticas:</h2> <p>crontab -e</p> <pre> <code class="language-bash">6 0 1 * * /opt/letsencrypt/certbot-auto --config /etc/letsencrypt/phpmyadmin.isarea.ini --user-agent letsencrypt-ubuntu-webroot -d phpmyadmin.isarea.com certonly &amp;&amp; service apache2 reload</code></pre><p> </p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Vie, 09/12/2016 - 19:41</span> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/letsencrypt" hreflang="es">letsencrypt</a></div> <div class="field__item"><a href="/categoria/sistemas" hreflang="es">Sistemas</a></div> <div class="field__item"><a href="/categoria/gnu-linux" hreflang="es">GNU Linux</a></div> <div class="field__item"><a href="/categoria/apache2" hreflang="es">Apache2</a></div> <div class="field__item"><a href="/categoria/debian" hreflang="es">Debian</a></div> <div class="field__item"><a href="/categoria/ubuntu" hreflang="es">Ubuntu</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/ssl" hreflang="es">SSL</a></div> <div class="field__item"><a href="/tag/apache" hreflang="es">apache</a></div> <div class="field__item"><a href="/tag/sistemas" hreflang="es">Sistemas</a></div> <div class="field__item"><a href="/tag/gnu-linux" hreflang="es">GNU Linux</a></div> <div class="field__item"><a href="/tag/debian" hreflang="es">Debian</a></div> <div class="field__item"><a href="/tag/ubuntu" hreflang="es">Ubuntu</a></div> </div> </div> <section class="field field--name-field-comments field--type-comment field--label-above comment-wrapper"> <h2 class="title">Comentarios</h2> <a id="comment-2406"></a> <article role="article" data-comment-user-id="0" about="/comment/2406" typeof="schema:Comment" class="comment js-comment by-anonymous clearfix"> <span class="hidden" data-comment-timestamp="1481529425"></span> <footer class="comment__meta"> <article typeof="schema:Person" about="/user/0" class="profile"> </article> <p class="comment__author"><span rel="schema:author"><a rel="nofollow" href="http://front.id" lang="" typeof="schema:Person" property="schema:name" datatype="" class="username">Capy (no verificado)</a></span> </p> <p class="comment__time">Sáb, 10/12/2016 - 15:43 <span property="schema:dateCreated" content="2016-12-10T14:43:06+00:00" class="rdf-meta hidden"></span> </p> <p class="comment__permalink"><a href="/comment/2406#comment-2406" hreflang="es">Enlace permanente</a></p> </footer> <div class="comment__content"> <h3 property="schema:name" datatype=""><a href="/comment/2406#comment-2406" class="permalink" rel="bookmark" hreflang="es">Muy bueno</a></h3> <div property="schema:text" class="clearfix text-formatted field field--name-comment-body field--type-text-long field--label-hidden field__item"><p>Gracias tenía agendado hacer esto en mi web y todavía no lo había buscado. A los favoritos!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=2406&amp;1=default&amp;2=es&amp;3=" token="XKZRmaQE02eOBhDwVf2FSfXRCPk_vEfNYu7q-LsQSy4"></drupal-render-placeholder> </div> </article> <h2 class="title comment-form__title">Añadir nuevo comentario</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=268&amp;2=field_comments&amp;3=comment" token="ViRdZ4E193bGeokwU7Vx3JhRTMv5dcCOesVVnXH3wco"></drupal-render-placeholder> </section> Fri, 09 Dec 2016 18:41:34 +0000 keopx 268 at https://www.keopx.net https://www.keopx.net/blog/instalar-certificados-de-lets-encrypt-free-ssltls-certificates-en-debian-ubuntu#comments Jornada de Contribuir a Drupal en Biko https://www.keopx.net/talk/jornada-de-contribuir-drupal-en-biko <span class="field field--name-title field--type-string field--label-hidden">Jornada de Contribuir a Drupal en Biko</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/users/keopx" typeof="schema:Person" property="schema:name" datatype="">keopx</span></span> <span class="field field--name-created field--type-created field--label-hidden">Vie, 25/11/2016 - 16:50</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>En <a href="http://www.biko2.com/">Biko<sup>2</sup></a><span style="font-size: 11.6667px;"> realizamos una <a href="http://www.biko2.com/bikolabs/jornada-de-contribucion-a-drupal/">jornada de contribución a Drupal</a> para internamente poder aportar a la comunidad parte de lo que nos aporta.</span></p> <p><span style="font-size: 11.6667px;">Tras finalizar la jornada el resultado fue que tuvimos <strong>tres issues fixed</strong> y <strong>dos en RTBC</strong>, de ellas<strong> dos al Core</strong> y <strong>otra a contrib</strong>.</span></p> <p>Podéis darle un vistazo en:</p> <ul><li><a href="https://github.com/keopx/docker-drupal-contrib">https://github.com/keopx/docker-drupal-contrib</a></li> </ul><p>Este entorno contiene unos script para iniciar rápidamente el proyecto:</p> <ul><li><a href="https://github.com/keopx/docker-drupal-contrib#install-drupal">https://github.com/keopx/docker-drupal-contrib#install-drupal</a></li> </ul><p class="text-align-center"> <iframe allowfullscreen="" frameborder="0" height="485" marginheight="0" marginwidth="0" scrolling="no" src="//www.slideshare.net/slideshow/embed_code/key/feQE7zd6BUc5f3" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" width="595"></iframe></p> <div class="text-align-center" style="margin-bottom:5px"><strong><a href="//www.slideshare.net/keopx/contribuir-a-drupal-67829228" target="_blank" title="Contribuir a Drupal">Contribuir a Drupal en Biko</a> </strong>de <strong><a href="https://www.slideshare.net/keopx" target="_blank">Keopx </a></strong></div> <p> </p> </div> <div class="field field--name-field-tax-cat field--type-entity-reference field--label-above"> <div class="field__label">Categoria</div> <div class="field__items"> <div class="field__item"><a href="/categoria/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/categoria/drupal-planeta" hreflang="es">Drupal Planeta</a></div> </div> </div> <div class="field field--name-field-tax-tag field--type-entity-reference field--label-above"> <div class="field__label">Tag</div> <div class="field__items"> <div class="field__item"><a href="/tag/drupal" hreflang="es">Drupal</a></div> <div class="field__item"><a href="/tag/contribuir" hreflang="es">Contribuir</a></div> <div class="field__item"><a href="/tag/biko" hreflang="es">Biko</a></div> </div> </div> Fri, 25 Nov 2016 15:50:36 +0000 keopx 276 at https://www.keopx.net