deployer php. presentación para #phpsevilla
TRANSCRIPT
![Page 1: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/1.jpg)
Despliegue de aplicaciones Symfony
con DeployerPHP
![Page 2: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/2.jpg)
Patrocinadores
![Page 3: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/3.jpg)
SOY ÁLEX MARTÍNHago deploys y otras #mandangas todos los días en @innnPuedes contactar conmigo en @alexdw
![Page 4: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/4.jpg)
¿QUÉ ES UN DEPLOY?
![Page 5: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/5.jpg)
Software deployment is all of the activities that make a software system available for use.
https://en.wikipedia.org/wiki/Software_deployment
![Page 6: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/6.jpg)
DEPLOY === COÑAZO
![Page 7: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/7.jpg)
Es una tarea repetitiva… y aburrida
➔ Subir ficheros
➔ Setear configuración
➔ Bajar dependencias
➔ Realizar migraciones de datos
➔ Construir assets
➔ Limpiar caché
➔ Reiniciar servidores
➔ ...
![Page 8: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/8.jpg)
Traducido a Symfony…
➔ git pull
➔ upload parameters.yml
➔ composer install
➔ doctrine:migrations
➔ assets:install && assetic:dump
➔ cache:clear
➔ apache2 reload // nginx reload
➔ ...
![Page 9: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/9.jpg)
¿CÓMO PODEMOS AUTOMATIZARLO?
![Page 10: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/10.jpg)
HERRAMIENTAS
Capistrano Magallanes
DeployerPHP
![Page 11: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/11.jpg)
HERRAMIENTAS
Capistrano Magallanes
DeployerPHP
![Page 12: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/12.jpg)
DeployerPHP
![Page 13: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/13.jpg)
Principales características
Rápido Modular Rollbacks Atómico
![Page 14: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/14.jpg)
Principales características
![Page 15: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/15.jpg)
Instalación global
wget http://deployer.org/deployer.phar
mv deployer.phar /usr/local/bin/dep
chmod +x /usr/local/bin/dep
![Page 16: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/16.jpg)
Instalación en vendors
php composer.phar require deployer/deployer:~3.0
![Page 17: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/17.jpg)
Configuración básica
// deploy.php
<?php
require 'recipe/symfony.php';
server('prod', 'host', 22)
->user('name')
->forwardAgent()
->stage('production')
->env('deploy_path', '/your/project/path');
set('repository', '[email protected]:org/app.git');
![Page 18: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/18.jpg)
dep deploy prod
![Page 19: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/19.jpg)
|-- current → /home/www/releases/20140812131123
|-- releases
| `-- 20140812131123
| `-- 20140809150234
| `-- 20140801145678
`-- shared
Resultado
![Page 20: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/20.jpg)
dep rollback prod
¿Algún error?
![Page 21: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/21.jpg)
ENTREMOS EN DETALLE …
![Page 22: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/22.jpg)
Configuraciónservidoresserver('prod_1', 'domain.com')
->user('user')
->password('pass')
->env('deploy_path', '/home/www')
->stage('production');
server('prod_2', 'domain.com')
->user('user')
->password('pass')
->env('deploy_path', '/home/www')
->stage('production');
![Page 23: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/23.jpg)
Configuraciónservidores (tipos de conexión)
➔ Usuario y contraseña
server(...)
->user('user')
->password('pass')
![Page 24: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/24.jpg)
Configuraciónservidores (tipos de conexión)
➔ Usuario y contraseña
server(...)
->user('user')
->password('pass')
➔ Usuario y solicitud de contraseña
server(...)
->user('user')
->password(null)
![Page 25: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/25.jpg)
Configuraciónservidores (tipos de conexión)
➔ Usuario y contraseña
server(...)
->user('user')
->password('pass')
➔ Usuario y solicitud de contraseña
server(...)
->user('user')
->password(null)
➔ Con clave privada
server(...)
->user('name')
->identityFile();
![Page 26: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/26.jpg)
Configuraciónservidores (tipos de conexión)
➔ Con PEM file
server('ec2', 'host.aws.amazon.com')
->user('ec2-user')
->pemFile('~/.ssh/keys.pem');
![Page 27: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/27.jpg)
Configuraciónservidores (tipos de conexión)
➔ Con PEM file
server('ec2', 'host.aws.amazon.com')
->user('ec2-user')
->pemFile('~/.ssh/keys.pem');
➔ Con SSH config file
server(...)
->user('name')
->configFile('/path/to/file');
![Page 28: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/28.jpg)
Configuraciónservidores (con YAML)
➔ serverList('servers.yml');
![Page 29: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/29.jpg)
Configuraciónservidores (con YAML)
➔ serverList('servers.yml');
➔ prod:
host: domain.com
user: www
identity_file: ~
stage: production
deploy_path: /home/www/
beta:
host: beta.domain.com
user: www
password: pass
stage: beta
deploy_path: /home/www/
![Page 30: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/30.jpg)
TareasDeployerPHP
➔ Sistema basado en tareas
![Page 31: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/31.jpg)
TareasDeployerPHP
➔ Sistema basado en tareas
➔ Estas tareas pueden anidarse
![Page 32: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/32.jpg)
TareasDeployerPHP
➔ Sistema basado en tareas
➔ Estas tareas pueden anidarse:
task('deploy', [
'deploy:prepare',
'deploy:update_code',
'deploy:vendors',
'deploy:symlink',
'cleanup'
]);
![Page 33: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/33.jpg)
Creación de tareas
➔ task('my_test_task', function () {
//
})->desc('Doing my stuff')->onlyOn('test');
![Page 34: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/34.jpg)
Creación de tareas
➔ task('my_test_task', function () {
//
})->desc('Doing my stuff')->onlyOn('test');
➔ dep my_test_task
![Page 35: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/35.jpg)
Creación de tareas
➔ task('my_test_task', function () {
//
})->desc('Doing my stuff')->onlyOn('test');
➔ dep my_test_task
➔ dep list
![Page 36: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/36.jpg)
Creación de Tareas (variables)
➔ Variables entorno
task('my_test_task', function () {
env('key');
env('key', 'value');
env('array.key');
});
![Page 37: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/37.jpg)
Creación de Tareas (variables)
➔ Variables entorno
task('my_test_task', function () {
env('key');
env('key', 'value');
env('array.key');
});
➔ Variables globales
set('key', 'value');
get('key');
has('key');
![Page 38: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/38.jpg)
Creación de Tareas (variables predefinidas)
➔ Definir repositorio
set('repository', '[email protected]:user/project.git');
![Page 39: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/39.jpg)
Creación de Tareas (variables predefinidas)
➔ Definir repositorio
set('repository', '[email protected]:user/project.git');
➔ Rama repositorio
set('branch','master');
![Page 40: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/40.jpg)
Creación de Tareas (variables predefinidas)
➔ Definir repositorio
set('repository', '[email protected]:user/project.git');
➔ Rama repositorio
set('branch','master');
➔ Definir compartidos
set('shared_dirs', ['app/logs']);
set('shared_files', ['app/config/parameters.yml']);
![Page 41: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/41.jpg)
Creación de Tareas (variables predefinidas)
➔ Definir repositorio
set('repository', '[email protected]:user/project.git');
➔ Rama repositorio
set('branch','master');
➔ Definir compartidos
set('shared_dirs', ['app/logs']);
set('shared_files', ['app/config/parameters.yml']);
➔ Permisos de escritura
set('writable_dirs', ['app/cache', 'app/logs']);
set('http_user', 'user');
![Page 42: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/42.jpg)
Creación de Tareas (variables predefinidas)
➔ Copiar directorios
set('copy_dirs', ['vendor']);
before('deploy:vendors', 'deploy:copy_dirs');
![Page 43: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/43.jpg)
Creación de Tareas (variables predefinidas)
➔ Copiar directorios
set('copy_dirs', ['vendor']);
before('deploy:vendors', 'deploy:copy_dirs');
➔ Versiones a mantener
set('keep_releases', 5);
![Page 44: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/44.jpg)
Creación de Tareas (variables predefinidas)
➔ Copiar directorios
set('copy_dirs', ['vendor']);
before('deploy:vendors', 'deploy:copy_dirs');
➔ Versiones a mantener
set('keep_releases', 5);
➔ Definir ruta composer
set('composer_command', '/bin/composer.phar');
![Page 45: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/45.jpg)
Creación de Tareas (funciones)
➔ Ejecutar en servidor
run(string $command)
![Page 46: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/46.jpg)
Creación de Tareas (funciones)
➔ Ejecutar en servidor
run(string $command)
➔ Ejecutar en local
runLocally(string $command, int $timeout = 60)
![Page 47: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/47.jpg)
Creación de Tareas (funciones)
➔ Ejecutar en servidor
run(string $command)
➔ Ejecutar en local
runLocally(string $command, int $timeout = 60)
➔ Navegar en servidor
cd(string $path)
![Page 48: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/48.jpg)
Creación de Tareas (funciones)
➔ Ejecutar en servidor
run(string $command)
➔ Ejecutar en local
runLocally(string $command, int $timeout = 60)
➔ Navegar en servidor
cd(string $path)
➔ Subir al servidor
upload($file, $uploadFile)
![Page 49: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/49.jpg)
Creación de Tareas (funciones)
➔ Ejecutar en servidor
run(string $command)
➔ Ejecutar en local
runLocally(string $command, int $timeout = 60)
➔ Navegar en servidor
cd(string $path)
➔ Subir al servidor
upload($file, $uploadFile)
➔ Descargar del servidor
download($localFile, $deploymentFile);
![Page 50: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/50.jpg)
Creación de Tareas (funciones)
➔ Escribir en consola
write($message)
![Page 51: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/51.jpg)
Creación de Tareas (funciones)
➔ Escribir en consola
write($message)
<info>...</info>
<comment></comment>
<error></error>
![Page 52: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/52.jpg)
Creación de Tareas (funciones)
➔ Escribir en consola
write($message)
<info>...</info>
<comment></comment>
<error></error>
➔ Escribir en una nueva línea
writeln($message)
![Page 53: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/53.jpg)
Creación de Tareas (funciones)
➔ Escribir en consola
write($message)
<info>...</info>
<comment></comment>
<error></error>
➔ Escribir en una nueva línea
writeln($message)
➔ Interacción con usuarioask($message, $default)
askConfirmation($message[,$default = false])
askHiddenResponse(string $message)
![Page 54: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/54.jpg)
Creación de Tareas (funciones)
➔ Escribir en consola
write($message)
<info>...</info>
<comment></comment>
<error></error>
➔ Escribir en una nueva línea
writeln($message)
➔ Interacción con usuarioask($message, $default)
askConfirmation($message[,$default = false])
askHiddenResponse(string $message)
set('upload_parameters',
askConfirmation('¿Subir el parameters?'));
![Page 55: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/55.jpg)
Creación de Tareas (hooks)
➔ After
task('deploy:done', function () {
write('Deploy done!');
});
after('deploy', 'deploy:done');
![Page 56: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/56.jpg)
Creación de Tareas (hooks)
➔ After
task('deploy:done', function () {
write('Deploy done!');
});
after('deploy', 'deploy:done');
➔ Before
task('deploy:init, function () {
write('Begin deploy!');
});
before('deploy', 'deploy:done');
![Page 57: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/57.jpg)
Tareaspredefinidas (Recipes)
➔ CacheToolPermite borrar cache APC / OPCACHE
![Page 58: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/58.jpg)
Tareaspredefinidas (Recipes)
➔ CacheToolPermite borrar cache APC / OPCACHE
➔ LocalPermite realizar deploys locales
![Page 59: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/59.jpg)
Tareaspredefinidas (Recipes)
➔ CacheToolPermite borrar cache APC / OPCACHE
➔ LocalPermite realizar deploys locales
➔ NewrelicNotifica a newrelic de un nuevo deploy
![Page 60: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/60.jpg)
Tareaspredefinidas (Recipes)
➔ CacheToolPermite borrar cache APC / OPCACHE
➔ LocalPermite realizar deploys locales
➔ NewrelicNotifica a newrelic de un nuevo deploy
➔ RabbitPermite mandar notificación a RabbitMQ
![Page 61: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/61.jpg)
Tareaspredefinidas (Recipes)
➔ CacheToolPermite borrar cache APC / OPCACHE
➔ LocalPermite realizar deploys locales
➔ NewrelicNotifica a newrelic de un nuevo deploy
➔ RabbitPermite mandar notificación a RabbitMQ
➔ RsyncPermite copiar ficheros mediante Rsync
![Page 62: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/62.jpg)
Tareaspredefinidas (Recipes)
➔ SlackPermite mandar notificación a Slack
![Page 63: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/63.jpg)
Tareaspredefinidas (Recipes)
➔ SlackPermite mandar notificación a Slack
➔ ConfigurePermite configurar un vhost
![Page 64: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/64.jpg)
Tareaspredefinidas (Recipes)
➔ SlackPermite mandar notificación a Slack
➔ ConfigurePermite configurar un vhost
➔ HipchatPermite mandar un mensaje a una sala de hipchat
![Page 65: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/65.jpg)
Otrosrecipes
➔ Symfony
➔ Symfony3
➔ Laravel
➔ CakePHP
➔ Codeigniter
➔ Yii
➔ …
![Page 66: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/66.jpg)
RecipesSymfony
➔ Definir assets
set('assets', ['web/css','web/images','web/js']);
![Page 67: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/67.jpg)
RecipesSymfony
➔ Definir assets
set('assets', ['web/css','web/images','web/js']);
➔ Definir carpetas var y bin
set('bin_dir', 'app'); //Symfony2
set('var_dir', 'app'); // Symfony2
set('bin_dir', 'bin'); //Symfony3
set('var_dir', 'var'); // Symfony3
![Page 68: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/68.jpg)
RecipesSymfony
➔ Definir assets
set('assets', ['web/css','web/images','web/js']);
➔ Definir carpetas var y bin
set('bin_dir', 'app'); //Symfony2
set('var_dir', 'app'); // Symfony2
set('bin_dir', 'bin'); //Symfony3
set('var_dir', 'var'); // Symfony3
➔ Compilar assets
set('dump_assets', true); //Symfony2
![Page 69: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/69.jpg)
RecipesSymfony
➔ Variables de entorno
env('env_vars, 'SYMFONY_ENV=prod');
env('env, 'prod');
![Page 70: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/70.jpg)
RecipesSymfony
➔ Variables de entorno
env('env_vars, 'SYMFONY_ENV=prod');
env('env, 'prod');
➔ Tarea principal
task('deploy', [ 'deploy:prepare', 'deploy:release, 'deploy:update_code', 'deploy:create_cache_dir, 'deploy:shared, 'deploy:assets, 'deploy:vendors', 'deploy:assetic:dump, 'deploy:cache:warmup, 'deploy:writable', 'deploy:symlink', 'cleanup']);
![Page 71: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/71.jpg)
![Page 72: Deployer PHP. Presentación para #PHPSevilla](https://reader033.vdocuments.site/reader033/viewer/2022042610/58aa53cf1a28ab10578b58bd/html5/thumbnails/72.jpg)
¿PREGUNTAS? ¿CERVEZAS?Puedes encontrarme en@[email protected]