我用登录机制构建了一个Silex项目.
我不是Symfony专家,我严格遵循这里的认证过程指南:http://silex.sensiolabs.org/doc/providers/security.html
...它在我的开发环境中运行良好
但是,当我在生产服务器上推送项目时,每次尝试登录我的Web应用程序时都会出现以下错误
[2012-12-18 16:35:33] CRITICAL: Symfony\Component\Security\Core\Exception\AuthenticationCredentialsNotFoundException:
A Token was not found in the SecurityContext. (uncaught exception) at
/my/app/path/vendor/symfony/security/Symfony/Component/Security/Http/Firewall/AccessListener.php line 53 [] []
Run Code Online (Sandbox Code Playgroud)
这意味着AccessListener.php中的以下代码
$this->context->getToken());
Run Code Online (Sandbox Code Playgroud)
抛出一个预感
鉴于相同的代码在我的开发环境中完美运行,我认为它与我的生产服务器配置有关.
我发现这个帖子http://groups.google.com/forum/#!msg/symfony-devs/jKphNy_0Q2Y/vYfkAuyjSHEJ建议将以下行添加到我的项目.htaccess
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
Run Code Online (Sandbox Code Playgroud)
没有结果.我仍然得到"在SecurityContext中找不到A令牌"异常.
有人有想法吗?
编辑
内容$app['security.firewalls']如下
$app->register(new Silex\Provider\SecurityServiceProvider(), array(
'security.firewalls' => array(
'login' => array(
'pattern' => '^/login$'
),
'admin' => array(
'pattern' => '^/',
'form' => array('login_path' => '/login', 'check_path' => '/admin/login_check'),
'logout' => array('logout_path' => '/admin/logout'), // url to call …Run Code Online (Sandbox Code Playgroud) 我刚刚升级到Elastic Search 1.5.0,到目前为止我无法使用嵌套过滤器使用inner_hits,尽管它可以与嵌套查询一起使用.
比方说,我要检索的内部嵌套对象演员一中的电影对象.
当我运行以下嵌套查询时:
语法1
GET my_index/movie/_search
{
"query": {
"filtered": {
"query": {"match_all": {}},
"filter": {
"nested": {
"path": "actors",
"query": {
"match": {
"actors.id": 12345
}
},
"inner_hits" : {}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
=>我得到了这里记录的inner_hits ,这很好.
但是,当我尝试使用嵌套过滤器执行等效查询时:
语法2
GET my_index/movie/_search
{
"query": {
"filtered": {
"query": {"match_all": {}},
"filter": {
"nested": {
"path": "actors",
"filter": {
"term": {
"actors.id": 12345
}
},
"inner_hits" : …Run Code Online (Sandbox Code Playgroud) 我是Elastic Search的新手.我已经在ElasticSearch中为电影艺术家(演员和导演)编制索引,并且简单的文本搜索工作正常,例如,如果我使用以下语法搜索"steven"
{"query":
{"query_string":
{"query":"steven"}
}
}
Run Code Online (Sandbox Code Playgroud)
...我得到以下结果,这很好:
1. Steven Conrad - Popularity (from document) = 487 - elasticsearch _score = 3,2589545
2. Steven Knight - Popularity (from document) = 487 - elasticsearch _score = 3,076738
3. Steven Waddington - Popularity (from document) = 431 - elasticsearch _score = 2,4931839
4. Steven E. De Souza - Popularity (from document) = 534 - elasticsearch _score = 2,4613905
5. Steven R. Monroe - Popularity (from document) = 293 - elasticsearch _score = …Run Code Online (Sandbox Code Playgroud) 在电影数据库中,我存储用户对每部电影给出的评分(0到5星)。我在弹性搜索(版本1.2.2)中建立了以下文档结构的索引
"_index": "my_index"
"_type": "film",
"_id": "6629",
"_source": {
"id": "6629",
"title": "Fight Club",
"ratings" : [
{ "user_id" : 1234, "rating_value" : 3 },
{ "user_id" : 4567, "rating_value" : 2 },
{ "user_id" : 7890, "rating_value" : 1 }
.....
]
}
"_index": "my_index"
"_type": "film",
"_id": "6630",
"_source": {
"id": "6630",
"title": "Pulp Fiction",
"ratings" : [
{ "user_id" : 1234, "rating_value" : 1 },
{ "user_id" : 7654, "rating_value" : 2 },
{ "user_id" : 4321, …Run Code Online (Sandbox Code Playgroud) 我有一个由两个节点组成的Elasticsearch集群.(实时)网站直接使用此群集,在我的ES群集上不断运行搜索和索引查询.
我的问题是,在常规(并且不可预测)的基础上,当其中一个节点清空垃圾收集器时,整个集群变得不可用.我从节点日志得到的消息是这样的
[2015-07-01 06:43:19,525][INFO ][monitor.jvm] [my_node] [gc][old][205450][116]
duration [5.7s], collections [1]/[6.3s], total [5.7s]/[1m],
memory [22.3gb]->[4.9gb]/[30.9gb],
all_pools {[young] [392.9mb]->[17.2mb]/[665.6mb]}
{[survivor] [29.1mb]->[0b]/[83.1mb]}
{[old] [21.9gb]->[4.9gb]/[30.1gb]}
Run Code Online (Sandbox Code Playgroud)
根据我的理解(我不是一个java人),这一行表明ES正在清空它的垃圾收集器.因此,在5.7秒内,节点没有响应,我的群集也没有响应,也不是我的网站.这种停机时间每天发生5到10次.
我在这里做错了还是这个停机时间不可避免?我应该将Elasticsearch负载均衡器(即data = false,master = false的节点)添加到群集并让我的网站指向此负载均衡器吗?或者我应该在节点前添加另一种负载均衡器(HAProxy?)?或者这是否意味着服务器,数据有问题?
非常感谢提前
有关群集配置的一些信息
我尝试安装Horde/Imap_Client,如此处所述
在一个空目录中,我创建一个composer.json包含以下内容的文件
{
"repositories": [
{
"type": "pear",
"url": "http://pear.horde.org"
}
],
"require": {
"pear-pear.horde.org/Horde_Imap_Client": "*"
}
}
Run Code Online (Sandbox Code Playgroud)
然后我下载了composer可执行文件,并运行运行以下2个命令的安装
curl -s http://getcomposer.org/installer | php
php composer.phar install
Run Code Online (Sandbox Code Playgroud)
Mac OS X和Ubuntu 14.04上的下载和安装过程均失败.我得到的信息是
初始化PEAR存储库http://pear.horde.org无法加载来自http://pear.horde.org的 PEAR存储库.您的配置不允许连接到http:// http://pear.horde.org.有关详细信息,请参阅 https://getcomposer.org/doc/06-config.md#secure-http.安装依赖项(包括require-dev)无法将您的需求解析为可安装的软件包集.
问题1 - 在任何版本中找不到所请求的包pear-pear.horde.org/horde_imap_client,包名中可能存在拼写错误.
可能的原因: - 包名称中的拼写错误 - 根据您的最小稳定性设置,包中没有足够稳定的版本,请参阅 https://getcomposer.org/doc/04-schema.md#minimum-stability for更多细节.
阅读https://getcomposer.org/doc/articles/troubleshooting.md以了解更多常见问题.
部落/ Imap_Client是否已弃用或我做错了什么?
我想要以下图片网址
http://www.example.com/image-provider/article/1275449_inline3_scale_700xauto.jpg
Run Code Online (Sandbox Code Playgroud)
要重定向到实际生成内容的以下PHP脚本
http://www.example.com/image-provider?url=article/1275449_inline3_scale_700xauto.jpg
Run Code Online (Sandbox Code Playgroud)
我在.htaccess中尝试了以下语法
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/image-provider/(.*)$ image-provider?url=$1 [L]
Run Code Online (Sandbox Code Playgroud)
到目前为止没有成功:我仍然得到404.我的.htaccess有什么问题吗?