小编Mih*_*lpo的帖子

nginx php-fpm xdebug netbeans只能启动一个调试会话

在过去,我使用apache + mod_php + xdebug + netbeans进行开发我的网站(服务器是我的本地机器,运行Debian Squeeze),很高兴 - xdebug工作正常,调试会话可以随时启动和停止,当我需要它.但是,当我转到nginx + php_fpm + xdebug + netbeans时,我遇到了一些调试问题.

  1. 我的调试会话可能会很长(超过30秒),似乎nginx无法等待这么长时间,它显示"504网关超时错误".我已经尝试了很多解决这个问题的建议,但没有运气.虽然,它对我来说不是很重要,因为调试会话本身继续运行,这只是一个有点不舒服的事情.
  2. 我的调试会话只能运行一次,因此,如果我停止它,并尝试再次启动调试,netbeans无法接受来自xdebug的连接(它写入"等待xdebug连接"并且它是永远的).重新启动netbeans后,可以再次正常启动调试会话.
  3. 在我遇到的情况下,我无法理解,调试是"打开所有PHP脚本"并阻止其他任何脚本运行.例如,我在我的网站http://mysite.local/index.php上启动调试会话并使用它.一段时间后,我发现,我的adminer(放在intranet.local/adminer.php)犯规运行,浏览器尝试了一段时间加载页面,并且比显示"504网关超时错误".如果我看到这种行为,我可以在netbeans中停止xdebug调试会话,并且所有其他脚本开始正常运行.

现在,当我写这个问题时,我做了一些调查,发现,如果我启动调试会话几秒钟,之后停止它,然后重新开始 - 它会正常启动.似乎问题出现在一段时间的主动调试之后.

我的系统和应用程序:Debian squeeze:2.6.32-5-686 Nginx:1.4.1(来自dotdeb存储库)php5-fpm:5.3.26-1~d(来自dotdeb存储库)php5-xdebug:5.3.26-1 ~d(来自dotdeb存储库)netbeans:7.3

我的配置:

  1. nginx base config:https://gist.github.com/MihanEntalpo/6229801
  2. nginx网站配置文件:https://gist.github.com/MihanEntalpo/6229781
  3. fastcgi_params文件:https://gist.github.com/MihanEntalpo/d93fd4105573e1eda56f
  4. php-fpm pool配置文件:https://gist.github.com/MihanEntalpo/6229820
  5. php-fpm xdebug配置文件:https://gist.github.com/MihanEntalpo/6229836
  6. netbeans:选项,与apache服务器完全相同:
    • 中断第一行= OFF
    • 弹出窗口中的评估= ON
    • 显示请求URL = ON
    • 端口= 9000

记录在nginx的错误日志文件中,当它无法等待被调试的脚本时,或者由问题#3锁定的其他脚本,提前提到:

2013/08/14 14:40:16 [错误] 4822#0:*111上游超时(110:连接超时)从上游读取响应头,客户端:192.168.100.1,服务器:intranet.local,请求: "GET /adminer.php?username=root&db=devel&table=user HTTP/1.1",上游:"fastcgi://127.0.0.1:9999",主机:"intranet.local",引荐来源:" https:// intranet. …

php debugging xdebug nginx netbeans-7

11
推荐指数
1
解决办法
7455
查看次数

使文本溢出省略号在Firefox和Chrome中类似地工作

我创建了一个布局来显示一些文章标题及其状态。文章名称的框具有固定的宽度,我正在使用text-overflow:省略号来剪掉太长的文章名称。另外,我在文章标题的末尾添加了浅灰色的虚线(如果不太长),以使标题和状态之间的差距看起来更好。

问题是: Firefox发现该内容(标题+虚线框)太长,并用省略号将其删除。同时,Chrome会做到这一点,并按我需要的方式工作。

屏幕截图:

在此处输入图片说明

对于我来说,Chrome似乎工作方式错误,但这对我很有用。并且firefox可以按照逻辑上的方式工作-在内容过长时剪切内容。但是,为什么要在文本的末尾而不是在容器的末尾剪切它(根据MDN,它应该剪掉它)?

也许我使用的是hack,如果您告诉我另一种实现这种视觉效果的方法(例如我在chrome中),那么我不应该这样做。

最小的例子:

HTML:

<p>
    <span class="left-block overflow-ellipsis">
        Very-very long article name, that would not fit in container
        <span class='dots'></span></span>
    <span class="right-block">
        Published
    </span>
</p>
<p>
    <span class="left-block overflow-ellipsis">
        Not so long article name
        <span class='dots'></span>
    </span>
    <span class="right-block">
        Unpublished
    </span>
</p>
Run Code Online (Sandbox Code Playgroud)

CSS:

body
{
    background-color:white;
}

span.left-block {
    display:inline-block;
    width: 300px;
    border: 1px solid white;

    white-space: nowrap;
    overflow: hidden;
    vertical-align:top;
}

span.left-block:hover
{
    display:inline-block;
    border:1px solid red;
}

span.right-block
{
    display:inline-block;
    vertical-align:top;
} …
Run Code Online (Sandbox Code Playgroud)

html firefox google-chrome ellipsis css3

7
推荐指数
1
解决办法
7077
查看次数

基于字符串(或uuid)生成人类可区分的图片

Tl;Dr:我正在创建一个应用程序:两个或多个用户之间的端到端加密聊天,并且需要快速便捷的方式来直观地检查是否存在中间人

应用程序背后的想法:

  1. AliceBob前端应用程序生成 RSA公钥+私钥(使用很棒的jsencrypt库)
  2. AliceBob前端应用程序向服务器应用程序发送请求,因此服务器为Alice和Bob生成唯一的ID(实际上是UUID)。
  3. AliceBob前端应用程序生成链接QR 代码,在 url 的哈希部分中包含他们的公钥和 ID,因此在打开时不会将其发送到服务器。
  4. 链接二维码的照片可以通过第三方渠道(不受保护)发送,并且打开允许 ​​Alice 和 Bob 前端应用程序将其对应项添加到“联系人列表”(所有这些都发生在前端) )
  5. Alice的应用程序从Bob的应用程序接收到公钥和ID后,用公钥加密消息并将其发送到服务器,并指定Bob的ID
  6. Bob询问服务器“我的ID有新消息吗?”,收到服务器发来的消息后,用他的私钥解密。
  7. 服务器在任何时候都没有获取私钥或公钥。它只是生成 ID 并在由 javascript 前端加密的 ID 之间传递消息,无法读取它,并在前端收到消息后立即将其删除。

问题:

Alice 和 Bob 只接受 ID 和公钥,因此无法简单快速地区分他们之间是否存在 ManInTheMiddle,因为 UUID 与某些 SHA 哈希不同,通常看起来非常相似。随后生成的 uuid 可能仅存在单个字符的差异,并且人眼不容易识别这种差异。

想要的解决方案: …

javascript encryption avatar man-in-the-middle avatar-generation

5
推荐指数
1
解决办法
1369
查看次数