对于备份,我需要遍历清单文件中的所有主机,以确保备份目标存在.我的结构看起来像
/var/backups/
example.com/
sub.example.com/
Run Code Online (Sandbox Code Playgroud)
所以我需要一个(内置)变量/方法来列出库存文件中的所有主机,而不仅仅是一个组.
对于团体,它看起来像这样
- name: ensure backup directories are present
action: file path=/var/backups/{{ item }} state=directory
owner=backup group=backup mode=0700
with_items: groups['group_name']
tags:
- backup
Run Code Online (Sandbox Code Playgroud) 我使用symfony.com 的"使用传统登录表单"教程来验证我的用户身份.使用简单的http auth,它可以很好地工作.
提交登录后,我得到以下异常:
无法找到路径"/ login_check"的控制器.也许您忘了在路由配置中添加匹配路由?
好吧,在教程中我读到:
您不需要为/ login_check URL实现控制器,因为防火墙将自动捕获并处理提交到此URL的任何表单.
我定义了路由并设置了防火墙设置:
security.yml
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
backend:
pattern: ^/backend
anonymous: ~
form_login:
provider: entity
login_path: /login
check_path: /login_check
#use_forward: true
logout:
path: /logout
target: /
Run Code Online (Sandbox Code Playgroud)
使用routing.yml
login:
pattern: /login
defaults: { _controller: VitaSecurityBundle:Default:login }
login_check:
pattern: /login_check
logout:
pattern: /logout
Run Code Online (Sandbox Code Playgroud) 对于cource,其他一些人已经在stackoverflow上讨论过这些问题,但并非所有的ansers都适合我,并且通常他们不提供symfony安装的版本.
我读过的主题:
这就是我要问你如何处理symfony 1.4中的文件下载(不使用视图)的问题?在我的所有用例中,我需要一个模板文件来呈现响应.如果我发送响应由于控制器有唯一的可能性发送它没有PHP错误(标头已发送)与
控制器:
/** @var $response sfWebResponse */
$response = $this->getResponse();
$response->clearHttpHeaders();
$response->setContentType($mimeType);
$response->setHttpHeader('Content-Disposition', 'attachment; filename="' . basename($filePath) . '"');
$response->setHttpHeader('Content-Description', 'File Transfer');
$response->setHttpHeader('Content-Transfer-Encoding', 'binary');
$response->setHttpHeader('Content-Length', filesize($filePath));
$response->setHttpHeader('Cache-Control', 'public, must-revalidate');
$response->setHttpHeader('Pragma', 'public');
$response->sendHttpHeaders();
readfile($filePath); die();
Run Code Online (Sandbox Code Playgroud)
这没有模板文件.但imho这不是那么漂亮的编码.
模板的替代方法:
控制器:
/** @var $response sfWebResponse */
$response = $this->getResponse();
$response->clearHttpHeaders();
$response->setContentType($mimeType);
$response->setHttpHeader('Content-Disposition', 'attachment; filename="' . basename($filePath) . '"');
$response->setHttpHeader('Content-Description', 'File Transfer');
$response->setHttpHeader('Content-Transfer-Encoding', 'binary');
$response->setHttpHeader('Content-Length', filesize($filePath));
$response->setHttpHeader('Cache-Control', 'public, must-revalidate');
$response->setHttpHeader('Pragma', 'public');
$response->setContent(file_get_contents($filePath));
$response->sendHttpHeaders();
return sfView::NONE;
Run Code Online (Sandbox Code Playgroud)
视图:
<?php echo …
Run Code Online (Sandbox Code Playgroud)