Configurar un proyecto con Git
(→Modificaciones para hacer funcionar un proyecto symfony) |
(→Modificaciones para hacer funcionar un proyecto Symfony) |
(No se muestran 15 ediciones intermedias realizadas por un usuario) |
Última revisión de 15:23 23 sep 2014
Contenido |
[editar] Generar clave id_rsa.pub
Para conectarse al servidor Git del MINSAL se realizará por conexión ssh. Lo primero que debe realizarse es la comprobación de la llave id_rsa.pub, como usuario normal ejecutar la siguiente sentencia.
ls .ssh
Pueden resultar dos opciones:
- Que no encuentre la carpeta y genere el siguiente mensaje:
- Que muestre el contenido de la carpeta, lo que indica que no debe de realizar los siguientes pasos.
La llave id_rsa.pub es el identificador de la clave RSA pública que permite conectarse vía shh sin escribir contraseña mientras el equipo que permita la conexión se le halla establecido esta clave pública.
Para poder generar tanto la clave pública y privada se debe de ejecutar en consola como usuario normal
ssh-keygen -t rsa
Lo primero que pregunta es el lugar en donde se quieren crear estas llaves. Por defecto se colocará en el home del usuario que esta generando dichas llaves. Como se muestra en la siguiente figura:
Luego pedirá que se ingrese una contraseña para la conexión; en este caso no le daremos contraseña así que presionamos enter tanto para la petición como para la confirmación.
A continuación se realizará la revisión del archivo id_rsa.pub, para ello ejecutar la siguiente sentencia en la consola:
cat .ssh/id_rsa.pub
Deberá aparecer algo similiar a la imagen que se presenta a continuación:
Y deberá aparecer una secuencia de letras, numeros y simbolos parecidos a los que se muestran en la imagen anterior. Ahora se debe cambiar el nombre de la maquina y del usuario que aparecen en este archivo, que es el que se representa Usuario@Maquina; cabiar dicho nombre por un correo.
Luego de guardar los cambios al archivo, enviar este archivo al administrador de los servidores para que este pueda agregar nuestra llave y nos permita escribir en dicho servidor.
[editar] Instalación de Git
Verificar que se tienen los repositorios y el sistema actualizado. Luego, como usuario root ejecutar la siguiente instrucción.
aptitude install git kdiff3 qgit
[editar] Configuración de Git
Para configurar el usuario git, como usuario normal escribir en consola:
git config --global user.name "Nombre de la persona" git config --global user.email correoElectronico git config --global color.ui true git config --global merge.tool kdiff3 git config --global core.editor vim # Sólo en el caso que se desee que VIM sea el editor predeterminado.
Para estar seguro de lo que se agrego ejecutar:
git config --list
[editar] Clonar proyecto vacío para crear la confirmación inicial
- El administrador del proyecto debe de haber creado previamente un proyecto git vacío sin ningún archivo; ahora se debe clonar dicho proyecto en el directorio en el que se quiere guardar este proyecto. Ejecutar desde consola:
git clone git@git.salud.gob.sv:nombreProyecto.git
- Crear el .gitignore para excluir archivos como la conexión a la base de datos, cache, logs, por mencionar algunos. Si es un proyecto Symfony se puede utilizar el siguiente archivo .gitignore:
# Archivos de respaldo *~ .*.kate-swp #kate .*.swp #VIM # Archivo de configuración de la personalización del comportamiento del directorio para KDE .directory # Bootstrap app/bootstrap* # Directorios de Symfony vendor/* */logs/* */cache/* web/uploads/* web/bundles/* # Archivos de configuración app/config/parameters.ini app/config/parameters.yml #Carpeta de configuración del proyecto de NetBeans nbproject/
- Crear el archivo README para explicar que fue lo que se ignoró y algunas recomendaciones de ciertos archivos que han sido ignorados. Además, este archivo debe tener toda la información del proyecto y pasos necesarios para ejecutar el proyecto correctamente; por tanto, debe comenzar con una descripción sustancial del sistema/proyecto, los paquetes que se deben instalar para su correcto funcionamiento, las configuraciones que se deben realizar, etc.
- Ejecutar el siguiente comando:
git status
Debe mostrar un texto como se muestra a continuación, donde especifica que esta en la rama master y que es la confirmación inicial.
- Copiar todos los archivos relacionados al proyecto que se pretende subir al servidor git.
- Dar seguimiento a todos los archivos copiados dentro de la carpeta; para ello ejecutar
git add --all
- Para la confirmación inicial ejecutar lo siguiente:
git commit -a
Lo cual abrirá el editor configurado, para este caso, vi/vim. Si no se ha configurado un editor para Git, se utilizará el editor predeterminado del sistema. En algunos casos será nano.
En el mensaje de confirmación colocar una breve descripción del sistema, las características que tiene y cualquier otra información adicional que pueda ser útil.
- Para subir los cambios al servidor se necesita saber el remoto autorizado para realizar esta acción; para saber eso, ejecutar:
git remote -v
Al observar las líneas que se encuentran entre el recuadro rojo, se puede observar que el nombre del remoto es origin y nos indica que para modificar el servidor se puede hacer mediante el fetch o el push.
- Para subir los cambios al servidor se hará en la rama master, ejecutando la siguiente sentencia:
git push origin master
- Al revisar el servidor git deberá aparecer el proyecto git con su primera confirmación en la rama master.
[editar] Clonar proyecto Symfony configurado previamente
Para clonar el proyecto capacitacion/symfony.git utilizado en las capacitaciones, colocarse en el directorio en donde se quiere clonar el proyecto.
Nota: Para seguir con el ejemplo de la capacitación colocarse en NetBeansProjects/
Ejecutar la siguiente sentencia:
git clone git@git.salud.gob.sv:capacitaciones/symfony.git
Si es la primera vez que se clona un proyecto desde el servidor Git, aparecerá los siguiente:
En donde pregunta que si se esta seguro de realizar esa conexión via ssh. Responder escribiendo yes, luego de esto descargará el servidor tal y como se encuentra en el momento de la clonación.
[editar] Modificaciones para hacer funcionar un proyecto Symfony
Verificar si se tiene el archivo composer.phar; si no se tiene, se deben realizar los siguientes pasos:
- Como usuario root instalar el paquete curl.
aptitude install curl
- Si se tiene Debian Squeeze, es necesario realizar la siguiente configuración de suhosin. Como usuario root editar el archivo /etc/php5/cli/conf.d/suhosin.ini, cambiando:
;suhosin.executor.include.whitelist =
Por:
suhosin.executor.include.whitelist = phar
- Como usuario normal, se creará una nueva rama y se activará para trabajar en ella. Ejecutar:
git checkout -b nombreRama
- Para asegurarse que se esta en la rama correcta ejecutar:
git branch
Lo que se encuentra en color verde con un * es la rama en la que se está trabajando
- Como usuario normal ejecutar lo siguiente:
curl -s https://getcomposer.org/installer | php
La sentencia anterior lo que hace es descargar el composer.phar, luego de ejecutar la sentencia deberá generar el archivo:
- Ahora se procede a crear el parameters.yml en el directorio app/config; ya que este archivo al haber sido ignorado no es copiado con el clonar el proyecto. La estructura del archivo parameters.yml es la siguiente:
parameters: database_driver: pdo_pgsql database_host: nombreHost database_port: '' database_name: nombreBase database_user: usuarioBase database_password: contraseñaBase mailer_transport: smtp mailer_host: localhost mailer_user: null mailer_password: null locale: en secret: Esta-clave-debe-generarse-como-se-describe-a-continuación database_path: null
- Para generar una cadena de caracteres para usar como secret ejecutar lo siguiente como usuario normal:
mktemp |sha1sum
Aparecerá una cadena como la que se muestra a continuación:
21d0fdeb3ba911c8af21ebef790241c5664347c1 -
Nótese que al final hay un espacio y un guión, esto no se usará como parte del secret. Por tanto, el secret sería 21d0fdeb3ba911c8af21ebef790241c5664347c1
- Actualizar el kernel de Symfony para que finalmente se pueda acceder al sitio. Ejecutar:
php composer.phar install
Al terminar de descargar todos los archivos necesarios, deberá aparecer en la consola algo similar a la imagen que se muestra a continuación:
.- Aplicar las acl al directorio cache y logs:
setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache/ app/logs/ setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache/ app/logs/
(Véase: Configuración de ACL)
- Probar symfony.localhost/app_dev.php
Nota: para realizar la prueba con la URL, tener en cuenta que el virtual host este en la IP 127.0.0.4 sino se debe cambiar dicha dirección en el archivo app_dev.php.
- En caso que se tenga el archivo composer.phar no se debe ejecutar la sentencia:
curl -s https://getcomposer.org/installer | php
[editar] Confirmación inicial en la nueva rama
- Luego de hacer todos los pasos del ítem anterior, se procede a subir los cambios de la nueva rama creada. Para ello se debe estar seguro que se encuentra en la nueva rama así que ejecutar:
git branch
- Dar seguimiento a todos los archivos que se han creado y realizar la confirmación inicial en la rama. Se debe agregar un mensaje descriptivo de la utilidad que tendrá la rama, por ejemplo, si es una rama de desarrollo, la rama de trabajo de un desarrollador, etc. Esto se hace con las sentencias:
git add --all git commit -a
- Asegurarse que el nombre del remoto que se tiene configurado para el proyecto, con la sentencia:
git remote -v
- Subir los archivos al servidor con la siguiente sentencia:
git push origin prueba
[editar] Creando proyecto NetBeans
Al crear el archivo .gitignore de un proyecto Symfony con el IDE de desarrollo NetBeans se deben ignorar los siguientes archivos:
# Archivos de respaldo *~ .*.kate-swp #kate .*.swp #VIM # Archivo de configuración de la personalización del comportamiento del directorio para KDE .directory # Bootstrap app/bootstrap* # Directorios de Symfony vendor/* */logs/* */cache/* web/uploads/* web/bundles/* # Archivos de configuración app/config/parameters.ini app/config/parameters.yml # Carpeta nbproject de NetBeans nbproject/
Como se observa en las líneas anterior se ignora el directorio nbproject/, entonces para que NetBeans reconozca este proyecto como un proyecto NetBeans se procede a crear un nuevo proyecto pero con la opción PHP Aplication with Existing Source .
Luego seleccionar el origen del proyecto presionando el botón Browse..
Al seleccionar el proyecto aparecerá la ruta en la siguiente ventana:
En la siguiente ventana configurar la URL de prueba, en este caso es http://symfony.localhost/app_dev.php
Al presionar Finish, se creará el proyecto.
Como se puede observar, justo abajo del nombre del proyecto aparece un cilindro azul; este cilindro indica que se han hecho modificaciones al proyecto git. Se deben tomar las siguientes consideraciones a la hora de realizar cambios al proyecto:
- Todos los archivos que aparezcan en color VERDE son archivos que han sigo agregados sin haberlos confirmado.
- Todos los archivos que aparezcan en color AZUL son archivos que fueron creados desde el proyecto pero su estructura ha cambiado.