我已经看到了一轮中有问题的问题,但没有最终回答.我想做的就是直截了当.我想将文件index.php复制到/var/www/index.php的远程主机,但前提是它尚不存在.
我已经尝试使用创建和*only_if*,但这些都是用于我想这里的目的,我不认为.任何人都可以提供一些如何解决这个问题的例子吗?
我已经安装了Vagrant,VirtualBox和Ansible并尝试在一台主机上运行配置,但它总是返回"正在跳过:没有匹配的主机"
我的playbook文件的头部看起来像这样:
---
- hosts: webservers
user: vagrant
sudo: yes
Run Code Online (Sandbox Code Playgroud)
我的/etc/ansible/hosts文件看起来像这样:
[webservers]
webserver1
Run Code Online (Sandbox Code Playgroud)
我尝试将IP地址放在那里,但结果相同.我已将ssh密钥添加到服务器并将webserver1主机添加到两者.ssh/config和/etc/hosts.
ssh vagrant@webserver1由于使用了ssh密钥,我可以在没有提示输入密码的情况下使用.
我在这里错过了什么?
我正在整理一个旨在构建网络服务器的Ansible Playbook.但是我在尝试使用时遇到困难,with_fileglob因为Ansible一直在报告它正在跳过nginx vhost文件的副本.
我的脚本看起来像这样:
- name: Nginx | Copy vhost files
copy: src={{ item }} dest=/etc/nginx/sites-available owner=root group=root mode=600
with_fileglob:
- "{{ templates_dir }}/nginx/sites-available/*"
notify
- nginx-restart:
Run Code Online (Sandbox Code Playgroud)
{{ templates }}已在别处定义为角色/公共/模板.在这个目录中,我有一个名为webserver1的文件,我希望Ansible可以复制到该文件中/etc/nginx/sites-available/
我发现其他人在讨论这个问题,但没有任何回复帮助我解决这个问题.为什么Ansible会跳过文件?
编辑:我应该指出我想使用with_fileglob(而不是直接复制),因为我希望将来迭代其他虚拟主机.
我正在阅读有关如何在Laravel中定义多对多多态关系的教程*,但它没有说明如何使用这种关系保存记录.
在他们的例子中他们有
class Post extends Model
{
/**
* Get all of the tags for the post.
*/
public function tags()
{
return $this->morphToMany('App\Tag', 'taggable');
}
}
Run Code Online (Sandbox Code Playgroud)
和
class Tag extends Model
{
/**
* Get all of the posts that are assigned this tag.
*/
public function posts()
{
return $this->morphedByMany('App\Post', 'taggable');
}
/**
* Get all of the videos that are assigned this tag.
*/
public function videos()
{
return $this->morphedByMany('App\Video', 'taggable');
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试过以不同的方式保存,但对我来说最有意义的尝试是:
$tag = Tag::find(1); …Run Code Online (Sandbox Code Playgroud) 我按照有关如何使用Yii2创建RESTful服务的说明*但行为方法导致错误:
Response content must not be an array.
如果我删除行为方法,那么我会收到我期望的JSON响应.我尝试在阅读另一篇文章后删除行为方法**.
但是我对行为有点不熟悉.我们可以不使用带有REST的Yii2行为或者这是一个错误吗?如果有人能对此有所了解,我将非常感激.
*http://www.yiiframework.com/doc-2.0/guide-rest-quick-start.html **http://www.yiiframework.com/forum/index.php/topic/60432-rest-api-失败与-行为/
我正在使用ActiveDataProvider返回分页的结果,大多数情况下都可以正常工作。但是,如果有(例如)5个页面,而请求要求的页面超过5个,则我希望根本没有记录时,结果集就是第5页。
这是预期的行为吗?如果没有,我该如何解决?
示例代码:
return new \yii\data\ActiveDataProvider([
'query' => $query,
'pagination' => [
'pageSize' => $perPage,
],
]);
Run Code Online (Sandbox Code Playgroud) 我正在Yii2中构建API并添加了CORS和身份验证.这适用于所有创建/读取/更新/删除操作,但不适用于自定义操作.有谁之前经历过这个吗?
网址管理员:
['class' => 'yii\rest\UrlRule', 'controller' => 'api/v1/user', 'pluralize' => false],
Run Code Online (Sandbox Code Playgroud)
控制器行为:
public function behaviors()
{
return ArrayHelper::merge([
'corsFilter' => [
'class' => Cors::className(),
],
[
'class' => HttpBearerAuth::className(),
'except' => ['options',
'login',
],
],
], parent::behaviors()
);
}
Run Code Online (Sandbox Code Playgroud)
如上所述,CRUD的操作很好,但是自定义操作http://domain.com/user/test会响应401 Unauthorised响应.
是不是可以让CORS和auth在自定义操作上一起工作?
编辑:我应该补充说,问题(401)仅在浏览器发出OPTIONS请求时发生.正常请求(curl,Postman)不受影响.RESTful,Cors,Auth组合似乎会出现这个问题.
我正在尝试遵循Yii2的身份验证教程*,但由于项目的要求,我需要构建自定义身份验证.虽然教程确实说明了你可以自己做,但没有详细说明如何.我需要创建哪些文件以及我需要添加到$ behavior ['authenticator']以指向我的自定义身份验证模块的位置和值?
*https://github.com/yiisoft/yii2/blob/master/docs/guide/rest-authentication.md
我搜索和阅读了很多但是找不到这个问题的答案所以我认为这是不可能的.
我可以将S3存储桶中的路径克隆(或复制)到另一个路径并让它以递归方式复制所有子路径和文件吗?
我已经看到过与S3FS类似的事情,但我宁愿不必采取这一步骤.
我尝试从shell中创建目标目录,但内部没有任何内容:
aws s3api copy-object --copy-source my-bucket/source/ --key dest/ --bucket my-bucket
我从12.04升级到Ubuntu 12.10,现在PHP5-FPM无法启动.运行/etc/init.d/php5-fpm start时出现的错误是失败的.没有任何东西写入日志文件,以告诉我有什么问题.
尽管我想解决这个问题,但在这个阶段我真的只想要打印到日志文件中的东西给我一些线索.这是我在/etc/php5/fpm/pool.d/www.conf中配置的:
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
Run Code Online (Sandbox Code Playgroud)
但是,永远不会写入此日志文件.
我正在运行PHP5-fpm版本5.4.9.
谁能给我一些建议?
我正在尝试使用Laravel查询构建器设置列结果文字。通过编写原始SQL,我可以通过以下方式实现此目的:
SELECT
`field1`,
`field2`,
'Test' AS `field3`
FROM `Test`;
Run Code Online (Sandbox Code Playgroud)
因此,MySQL将始终为列field3返回Test。我正在尝试使用类似的查询生成器来执行此操作,select('field1', 'field2', '"Test" AS field3')但这似乎不起作用。它将返回错误,提示Test不是列名。
有谁知道我该怎么做?
我正在使用Yii2创建RESTful API,并已按照快速入门教程*成功设置了名为Contacts的模型。我喜欢如何在不创建任何动作的情况下创建,列出,更新和删除记录。
但是我看不到如何过滤结果。我只想返回contact.user_id等于1的联系人(例如),因为它当前将回复所有记录。不创建动作就可以吗?
我也不确定如何限制结果。从我看过的内容来看,我觉得应该在URI后面加上?limit = 5。
我有一个我无法解决的最奇怪的问题。我有一个简单的MySQL查询,它两次将结果中的每个字段返回一次。第一个键名为字段名,第二个键为整数。
该表如下所示:
id int(11)
user_id int(11)
first_name varchar(255)
last_name varchar(255)
country_code varchar(3)
mobile varchar(255)
email varchar(255)
profile_img var_char(255)
timestamp timestamp
Run Code Online (Sandbox Code Playgroud)
我的代码如下所示:
$db = new PDO('mysql:host=localhost;dbname=proj', 'dev', '<password>');
$sql = "SELECT * FROM contact";
$stmt = $db->prepare($sql);
$stmt->execute();
$contacts = $stmt->fetchAll();
print_r($contacts));
Run Code Online (Sandbox Code Playgroud)
输出为:
Array
(
[id] => 1
[0] => 1
[user_id] => 1
[1] => 1
[first_name] => joan
[2] => joan
[last_name] => smith
[3] => smith
[country_code] => AU
[4] => AU
[mobile] => 0400 222 333
[5] …Run Code Online (Sandbox Code Playgroud)