Vagrant se usa para generar una máquina virtual con un servidor web,
para desarrollar toda nuestra plataforma en un entorno lo más parecido al
servidor final.
La configuración esta en VagrantFile, y se necesita tener instalado Vagrant
y VirtualBox para poder generar la máquina y arrancarla.
Es necesario instalar hostmanager con este comando
vagrant plugin install vagrant-hostmanager
Los comandos básicos son:
- arrancar máquina:
vagrant up - apagar máquina:
vagrant halt - instalar servidor web:
vagrant provision - destruir máquina:
vagrant destroy
El archivo de configuración de vagrant es VagrantFile, y se encuentra
en la raíz del proyecto.
Para instalar todo el programario para hacer el servidor web, se necesita
provisionar vagrant con Ansible.
Ansible se instala localmente dentro de la máquina de vagrant, y todas las
configuraciones del servidor estan dentro de la carpeta ansible, en la
raíz del proyecto.
El archivo principal de ansible es el playbook.yml.
Ansible instala:
- php 5.6
- apache2
- mysql
- phpmyadmin
- composer
- ruby
Dentro del proyecto de Symfony, se pide DeployerPHP para desplegar nuestra
aplicación en los servidores.
Para configurar deployer es necesario que se cree servers.yaml, en la raíz
del proyecto.
# servers.yml
master:
host: 127.0.0.1
user: user
deploy_path: /var/www/yoursymfony
stage: master
branch: master
development:
host: 127.0.0.1
user: user
deploy_path: /var/www/yoursymfony
stage: development
branch: developmentComandos Deployer:
- desplegar:
php vendor/deployer/deployer/bin/dep deploy <stage>
Bundles instalados en el proyecto
- sonata admin
- sonata media bundle
- sonata classification bundle
- sonata user bundle
- fos ckeditor
- KNP DoctrineBehaviors
- a2lix reanslation form
Una vez instalado, puedes ver si el proyecto funciona correctamente mirando la url: http://base-project.test/
Para acceder a phpMyAdmin del proyecto se ha de ir a esta url: http://base-project.test/phpmyadmin/
Si tienes errores para generar los archivos de var/cache o var/logs, symfony lo tiene documentado en su web
Para personalizar el nombre de la máquina virtual para que no existan 2 con el mismo nombre en tu host, hay que modificar el VagrantFile.
- Cambiar en la línia 13 el valor de
--name, substituirbase-project-vmpor el nombre de la máquina que deseemos. - Cambiar en la línia 22
base-project-vmpor el nombre que hayamos escrito antes en la línia 13. - Cambiar en la línia 27 el valor de
node.vm.hostnamepor el dominio que queramos utilizar.
Para personalizar las variables del entorno como el nombre de la base de datos o el dominio para ver el proyecto, se han de modificar las variables que usa Ansible para crear el entorno web en el servidor.
El fichero de variables es /ansible/vars/all.yml
Para modificar el dominio hay que cambiar las variables de apache que es quien nos genera el vhost. Se ha de cambiar la variable apache.servername donde le daremos el valor que haya en la configuración de Vagrant en VagrantFile línia 27.
Hay que modificar las variables:
mysql.database: para cambiar el nombre de la base de datosmysql.user: para modificar el usuario de la base de datosmysql.password: para modificar la contraseña
Para desplegar la aplicación desde deployerPHP es necesario que se rellene la configuración en /servers.yml. Y se ha de crear el fichero /usergit.php con las variables $user y $password. Este fichero usergit.php esta vigilado por el .gitignore asi que nunca se subirá a tu repositorio.