Estas en: Home > instalación

Entradas etiquetadas con instalación

Integración continua: Automatizando la creación de proyectos WordPress, Drupal, Symfony, etc. (II)

0

En el post anterior hemos actualizado el script que crea los repositorios, para poder añadirle unas cuantas acciones para automatizar la creación del proyecto (creación de directorios, directorios ignorados, etc.). Ahora vamos a desarrollar la segunda parte, que consistirá en la automatización de la instalación del cms o framework elegido.

(más…)

Integración continua: Automatizando la creación de proyectos WordPress, Drupal, Symfony, etc. (I)

0

En el post anterior de esta guía: Integración continua: Automatizando la creación de repositorios con Git y Subversion desarrollamos un script en Bash para poder, como indica el título del post, automatizar la creación de repositorios. A continuación automatizamos la descarga del código fuente del cms, framework, plugins, módulos, temas, etc. que usará nuestro proyecto. Después realizamos una pequeña pausa para crear una máquina virtual por consola usando VirtualBox, y configurar e instalar Selenium para poder realizar test funcionales. Ahora vamos a realizar la creación de los proyectos, automatizando la instalación de los plugins, modulos y temas necesarios usando nuestra máquina virtual y Selenium.

Como es una de las partes que más código requiere, lo dividiré en dos post. En este primer post añadiremos algunas líneas a nuestro script en bash que nos permitirá automatizar la creación de nuestro proyecto usando Drupal, WordPress o Symfony 2.

¿Estás listo? Empezemos.

(más…)

Integración continua: Instalación de Subversion y Git

0

Hoy vamos con algo que supongo ya conoceréis, pero que para esta guía es imprescindible: Los repositorios.

Los repositorios, dicho de una forma sencilla: es un lugar donde guardar y mantener un histórico de los cambios que se realizan en el software o proyecto en el que estás trabajando. De momento solo me centraré en su instalación y en una pequeña configuración que será necesaria para lo que aun queda de esta guía.

 

Instalación de Subversion

Instalar los paquetes necesarios

apt-get install subversion libapache2-svn subversion-tools

Los repositorios los guardaremos en el siguiente directorio:

/var/repos

Se utilizará la url svn.ic.net para obtener los repositorios. Para ello hay que añadir un virtualhost con la siguiente información (etc/apache2/sites-enabled):

ServerName svn.ic.net
DocumentRoot /var/www/svn.ic.net

<Directory />
     Options FollowSymLinks
     AllowOverride None
</Directory>
<Directory /var/repos>
     Options Indexes FollowSymLinks MutiViews
     AllowOverride None
     Order allow,deny
     allow from all
</Directory>

Añadir el dominio al archivo /etc/hosts, si no el sistema devolverá un 200 OK pero no se podrá trabajar con el repositorio.

Todos los repositorios se deberán añadir a este archivo utilizando los tags <Location></Location>, ejemplo:

<Location "/mediawiki">
        DAV svn
        SVNPath /var/repos/mediawiki
</Location>

También se pueden añadir los repositorios en archivos separados en /etc/apache2/repos e incluirlos dentro del virtualhost de svn.ic.net, añadiendo la siguiente línea:

Include /etc/apache2/repos

 

Instalación de Git

Para instalar Git ejecuta el siguiente comando:

apt-get install git

El virtualhost que usaremos será el mismo que el de Subversion, con lo que no tenemos que hacer nada más con git.

Integración continua: phpcpd, detectando el código duplicado

0

PHPCPD es una aplicación que nos permite detectar fragmentos de código duplicado o muy parecido, de tal forma que podamos optimizarlo creando métodos o funciones que eliminen esa duplicidad.

Su instalación es simple:

pear channel−discover pear.phpunit.de
pear channel−discover components.ez.no
pear channel−discover pear.symfony.com
pear channel−discover pear.netpirates.net
pear install phpunit/phpcpd

Para ejecutar usamos:

phpcpd −−log−pmd ruta−donde−se−guardará−el−resultado−del−analisis/cpd.xml directorio−o−archivo−a−analizar

Integración continua: Coding standards para PHP

0

¿Qué son los coding standards?

Los coding standards son estándares de código, dicho de otra manera, son reglas que indican como debe escribirse el código, cuantos espacios debe tener una tabulación, en qué línea debe ubicarse un «else», cómo debe escribir una función, método o clase, etc.

Los coding standards se utilizan principalmente en los CMS como WordPress o Drupal, esto permite que el código sea mucho más legible por diferentes personas.

La aplicación que vamos a instalar es PHPCS que nos permitirá revisar el código y comprobar si estamos siguiendo el standard correctamente.

Instalación

La instalación es sencilla, como prácticamente la mayoría de herramientas que utilizaremos para nuestro servidor de integración.

sudo−DVFMTSC−> apt−DVFMTSC−>−get−DVFMTSC−> install−DVFMTSC−> php−DVFMTSC−>−pear
sudo−DVFMTSC−> pear−DVFMTSC−> install−DVFMTSC−> php_CodeSniffer

En Ubuntu la aplicación se instala en /usr/share/php/PHP.

Una vez instalado, será necesario dar permisos de lectura al usuario www-data:

cd−DVFMTSC−> /usr/share/php/PHP
sudo−DVFMTSC−> chown−DVFMTSC−> −DVFMTSC−>−R−DVFMTSC−> www−DVFMTSC−>−data:www−DVFMTSC−>−data−DVFMTSC−> CodeSniffer
sudo−DVFMTSC−> chown−DVFMTSC−> www−DVFMTSC−>−data:www−DVFMTSC−>−data−DVFMTSC−> CodeSniffer.php
sudo−DVFMTSC−> chmod−DVFMTSC−> −DVFMTSC−>−R−DVFMTSC−> 775−DVFMTSC−> CodeSniffer
sudo−DVFMTSC−> chmod−DVFMTSC−> −DVFMTSC−>−R−DVFMTSC−> 775−DVFMTSC−> CodeSniffer.php

Con esto ya lo tenemos instalado.

En futuros post, instalaremos algunos Coding Standards y veremos el funcionamiento de esta herramienta.

Integración continua: Instalando y configurando Redmine

0

¿Qué es Redmine?

Redmine es una herramienta de gestión de proyectos, nos permite mantener un control de las tareas y errores a solucionar en ellos. Esta herramienta nos permite organizar los proyectos por versiones, o por springs si utilizas alguna metodología ágil. Dispone de gráficos Grantt, wiki, acceso al repositorio del proyecto, etc.; muchísimas características que nos facilitan el día a día en el desarrollo de proyectos.

Instalando Redmine

La instalación de Redmine es bastante sencilla, utiliza el siguiente comando:

apt−get install redmine redmine−mysql libapache2−mod−passenger

Una vez instalado y configurado creamos una carpeta en /var/www llamada redmine:

mkdir /var/www/redmine

A continuación, creamos un enlace simbólico con el contenido que se mostrará en el navegador:

ln −s /usr/share/redmine/public /var/www/redmine

Accediendo a Redmine desde un subdominio

Ahora configuraremos un subdominio para poder acceder a Redmine.

Comprueba que tienes activado el módulo passenger en apache2:

a2enmod passenger

Instala «bundle», una gema de Ruby:

gem install bundle

Da permisos al usuario www-data:

usermod −aG root www−data
chmod 775 −R /usr/share/redmine

Modifica el archivo /etc/apache2/mods-available/passenger.conf añadiendo la siguiente línea:

PassengerDefaultUser www−data

Crea el VirtualHost en /etc/apache2/sites-available, con el siguiente contenido:

 *:80>
        ServerName redmine.ic.net

        DocumentRoot /var/www/redmine
         /var/www/redmine>
                AllowOverride all
                Options −MultiViews
                PassengerResolveSymlinksInDocumentRoot on
        

Reinicia apache:

/etc/init.d/apache2 restart

Al igual que hicimos con Jenkins, será necesario que modifiques tu archivos hosts y añadas la siguiente línea:

192.168.1.40 redmine.ic.net

Sustituye la IP por la tuya.

Ahora, si escribes la dirección de Redmine en tu navegador podrás acceder a tu gestor de proyectos. El usuario para el administrador es «admin» y su contraseña «admin».

A partir de aquí, es cosa tuya. Crea algunos proyectos, añade algunas versiones, tareas, errores, etc.

Integración continua: Introducción

0

Supongo que os preguntaréis qué es eso de la integración continua, pues bien, os explico: se considera Integración Continua al conjunto de metodologías y procesos que se ejecutan durante el desarrollo de un proyecto de programación, con la diferencia de que estos procesos están centralizados y automatizados, lo que permite ejecutarlos cada pocas horas.

Dentro de los procesos automatizados se encuentran la descarga de los repositorios, la comprobación de los estándares de codificación, la ejecución de los test unitarios, la actualización de la base de datos, el despliegue al servidor de producción, etc. Cualquier proceso que se ejecute durante el desarrollo de un proyecto se puede integrar en este sistema.

Esta forma de trabajar nos permite a los desarrolladores detectar, antes de poner en producción el proyecto, posibles errores o ineficiencias, pudiendo solucionarlos y mejorando con ello la calidad del software que generamos.

Sirva este pequeño artículo como introducción a esta nueva sección del blog, ya que durante las próximas semanas iré publicando nuevos artículos para que podáis montar vuestro propio servidor de integración continua, me centraré en la automatización de procesos en proyectos PHP, ya sean basados en Frameworks (Symfony, Zend, etc.), CMS (WordPress, PrestaShop, etc.) o creados desde cero, aunque es muy posible que muchas cosas de las que os explique podáis utilizarlas para otros lenguajes de programación. Os explicaré tanto la instalación del software necesario como su configuración, además de como unir todo el software para que se ejecute de forma automática.

De momento os dejo con varios links para que le vayáis echando un ojo a eso de la Integración Continua:

– http://es.wikipedia.org/wiki/Integraci%C3%B3n_continua

Desarrollo PHP avanzado

Instalar Symfony + WAMP

26

Una de las cosas más entretenidas de un programador (al menos para mí), es la de reciclarse cada poco tiempo para no quedarse estancado. Yo estoy en este proceso y después de varios días intentando instalar Symfony junto con WAMP al fin lo he conseguido (Sí, me ha costado un huevo, ¡que pasa! xD); para que otros desarrolladores no tengan que dedicarse a buscar información sobre como instalar Symfony junto a WAMP voy a explicar como realizarlo, los fallos que me ha dado, como solucionarlos, etc. Vamos allá.

(más…)

Ir arriba