小编Kat*_*tai的帖子

正确配置nginx到localhost?

我刚刚在一小时前安装了nginx和php fastcgi,在阅读了快速启动配置和nginx文档等示例后,我无法让它工作.

无论我改变或尝试什么,我总是只得到"欢迎来到Nginx!" 屏幕上的"localhost/..." - 我甚至无法调用简单的index.html

我的配置:

(评论中的内容是我试过的)

// default nginx stuff (unchanged)

server {
    #listen 80 default_server;
    #listen 80 default;
    listen 80;

    #server_name localhost;
    #server_name _;

    #access_log /var/log/nginx/board.access_log;
    #error_log /var/log/nginx/board.error_log;

    #root /var/www/board;
    #root /var/www/board/public/;
    root /var/www/board/public;

    #index index.html;
    index index.html index.htm index.php;
}
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,这应该是最简单的设置,对吧?只是定义listen 80;, index index.html;但我不能让它工作

文件/var/www/board/public/index.html存在且包含内容

在我浪费2个小时尝试某些东西之前,你们中的某个人可以快速观察并告诉我我做错了什么吗?谢谢.

configuration localhost nginx

36
推荐指数
1
解决办法
10万
查看次数

将TEXT/BLOB存储在同一个表中或不存在?

在搜索SO时,我发现了两个相互矛盾的答案(甚至是一条评论说明了这一点),但没有明确的答案:

问题是:如果在表外存储TEXT/BLOB字段,是否有任何性能优势?

我们猜测:

  • 你正确选择(如果需要,只选择TEXT/BLOB,不选择SELECT*)
  • 表格被正确编入索引,这是有意义的(所以这不是"如果你索引它"的问题)
  • 数据库设计并不重要.这是在这种特殊情况下识别MySQL行为的问题,而不是解决某些数据库设计问题.假设这个数据库只有一个表(如果TEXT/BLOB分开,则为两个表)
  • 二手引擎:innoDB(其他人也很有趣,如果他们取得不同的结果)

这篇文章指出,将TEXT/BLOB放入一个单独的表中,只有在你已经以错误的方式选择时才会有所帮助(即使没有必要也总是选择TEXT/BLOB) - 基本上说明了TEXT/BLOB中的TEXT/BLOB相同的表基本上是更好的解决方案(更少的复杂性,没有性能损失等),因为TEXT/BLOB无论如何都是单独存储的

将TEXT列移动到另一个表中的唯一时间将提供任何好处,如果通常从表中选择所有列的趋势.这只是引入第二种不良做法来弥补第一种不良做法.不言而喻,这两个错误与三个左翼不一样.

带有TEXT列的MySQL表


但是,这篇文章指出:

当表具有TEXT或BLOB列时,表无法存储在内存中

这是否意味着在表格中有一个TEXT/BLOB已经足够,以达到性能?

MySQL varchar(2000)vs text?


我的问题基本上是:答案是正确的?

如果你SELECT正确地将TEXT/BLOB存储到一个单独的表中,这真的很重要吗?

或者甚至在表格中有一个TEXT/BLOB,会产生潜在的性能影响?

mysql performance storage text blob

14
推荐指数
2
解决办法
4641
查看次数

分区和更新

我正在越来越深入地探索MySQL功能,而我正在尝试的下一个是表分区

基本上只有一个关于他们的问题,我还没有找到一个明确的答案:

如果更新一行,如果满足另一个分区的分区条件,该行是否会自动移动到另一个分区?(例如,如果分区按区域分割,则区域从区域A更改为区域B)

如果这不是自动发生的,我需要做什么才能将行从分区A移动到分区B?(并且会因此而受到性能影响吗?)

我想做的是将'删除'(标志)信息移动到表的单独分区中,因为很少会调用它们.这通常是一个好主意,还是将所有内容放在同一个(可能是某天巨大的 - 数百万行)表中会更好?

mysql performance partitioning

13
推荐指数
1
解决办法
3558
查看次数

禁用Flutter的“红色死亡屏幕”

有没有办法禁用Flutter的“死亡的红色屏幕”?我不介意在调试过程中使用它,但是它似乎也出现在生产版本中-而且我找不到有关如何禁用它或自己捕获错误的任何信息。

我尝试使用FlutterError.onError和捕获杂散错误runZoned(onError),但是两者都没有阻止红屏的出现。

作为参考,我正在谈论以下屏幕:

索德

error-handling dart flutter

9
推荐指数
1
解决办法
2046
查看次数

存储用户代理有什么意义?

到目前为止,在记录用户登录时,除了已经解析的信息(如浏览器、版本、操作系统等)之外,我总是存储完整的用户代理。用户代理通常只是表中的文本字段。

在实施另一件类似的事情时,我问自己:这样做的意义何在?显然,用户代理在任何情况下都可以轻松操纵,并且唯一的相关信息(浏览器、版本和操作系统)已经被解析并单独存储。

除了回溯可能伪造的数据之外,仍然存储它是否有一些实际的好处?用户代理还包含哪些其他相关信息来证明用于存储它的(多年来,相当大的)数据量是合理的?

当然,我意识到用户代理包含的不仅仅是浏览器规范 - 但您真的需要回去分析用户代理本身多少次?

只是为了澄清:我正在谈论在解析出“相关”信息(浏览器、操作系统等)之后存储原始用户代理字符串的原因 -此后用户代理的意义是什么?

browser database user-agent

6
推荐指数
1
解决办法
2360
查看次数

使用数组时Javascript向后循环速度较慢?

我们中的许多人可能已经知道这个:

var list = ...
var index = list.length

while( index-- ) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

据说这是在javascript中进行循环的最快方法,因为你避免了额外的测试.到目前为止,在过去几年中,我在处理数据时使用了这种技术,其中速度很重要且顺序并不重要.

但是现在我偶然发现了一篇文章,说在处理数组时这实际上比较慢.

这使您避免额外的测试(与循环标准相比).但你知道吗?这比使用正确的订单慢得多.因为世界上所有的CPU缓存都希望处理"直接",所以你会一次又一次地出现缓存未命中,并且当你运气好时,你会得到2倍的缓慢.

因此,除非您有充分的理由这样做,否则不要向后循环.

来源:https://gamealchemist.wordpress.com/2013/05/01/lets-get-those-javascript-arrays-to-work-fast/

现在我很好奇!我只有有限的可能性来测试这些东西,而我发现的每个其他地方仍然说最后一个循环是最快的方式(甚至是stackoverflow上的多个答案).处理(可能很大)数组时,这是真的吗?

在过早优化答案弹出之前(就像它经常对这类问题一样):这主要是好奇心,是的,在游戏等方面,性能很重要!

关于jsperf:到目前为止,jsperf似乎暗示后向循环更快(我现在无法检查测试,因为它不会将结果加载到任何atm上 - 所以我回想起之前看到过的内容).这就是这个问题的根源:这两条信息本身就是矛盾的 - 至少如果那篇文章中所说的是真的!那到底什么是"正确的"呢?

javascript arrays performance loops while-loop

6
推荐指数
1
解决办法
202
查看次数

LIMIT在JOIN之前或之后有效吗?

这是一个简单的问题 - 我刚刚找到了不同的答案,所以我不确定.让我来形容:

如果你有一个查询,像这样:

SELECT logins.timestamp, users.name
FROM logins 
LEFT JOIN users 
ON users.id = logins.user_id
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

这基本上会列出登录表的最后10个条目,用JOIN替换user_id和用户名.

现在我的问题是,LIMIT是否在连接发生时生效(这样它只加入前10个条目)或加入后?(它将加入整个表格,然后删除前10个条目)

我问这个是因为样本表logins会有很多条目 - 而且我不确定连接是否太明显了.如果LIMIT只发生10个JOIN,那就不是问题了.

提出这个问题的第二个问题:如果添加了DISTINCT,功能是否相同?10个参赛作品还会停止吗?不,这不会由ORDER BY订购

mysql performance join limit

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

如何获取可选参数的默认值

可能这是PHP的限制,但是有可能以某种方式调用函数 - 并强制执行可选参数的'default'值 - 即使在函数调用中,给出了可选参数(和== null)?

也许更容易表明我的意思:

<?php
    function funcWithOptParam($param1, $param2 = 'optional') {
        print_r('param2: ' . $param2);
    }

    funcWithOptParam('something'); // this is the behaviour I want to reproduce

    // this will result in 'param2: optional'

    funcWithOptParam('something', null); // i want $param2 to be 'optional', not null

    // this will result in 'param2: ' instead of 'param2: optional'
?>
Run Code Online (Sandbox Code Playgroud)

现在,最简单的答案是"不要写null" - 但在我的特殊情况下,我得到array一个function调用的参数,只能这样做:

<?php
    funcWithOptParam($param[0], $param[1]);
?>
Run Code Online (Sandbox Code Playgroud)

因此,即使$param[1]null,null也会覆盖可选参数的默认值 …

php function optional-parameters

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

保证金:0px自动VS保证金:-50%

我即将为一个新的小项目编写一些模板 - 我只是想知道一件事:

如果我希望我的整个页面内容都在一个居中的列中,让我们说 - 宽度为800px,通常的做法是这样(至少,这是我一直这样做的方式):

<html>
    <head>
        <style>
            body {
                text-align: center; /* IE6 */
            }

            #wrapper {
                margin: 0px auto;
                width: 800px;
                background-color: #eee; /* to see it better */
                text-align: left; /* IE6 */
            }
        </style>
    </head>
    <body>
        <div id="wrapper">
            ... content ...
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

现在,有另一种方法可以做同样的事情,但是margin: -50%;(或者是固定值,在这种情况下margin: 400px;),像这样:

<html>
    <head>
        <style>
            body {
                margin-left: 50%;
            }

            #wrapper {
                margin-left: -400px;
                width: 800px;
                background-color: #eee; /* to see it better */
            }
        </style> …
Run Code Online (Sandbox Code Playgroud)

html css centering

3
推荐指数
1
解决办法
7616
查看次数

操纵或拆分字符串

我有一个简单的问题,如果可能的话,这将解决我的一些问题:

是否可以使用nginx拆分/操作request-url?

我的意思是:这样的网址:sub.somewhere.com/something/somethingelse

变成了:

subsomethingsomethingelse

然后进一步:

子/ SOM/ETH/ING/SOM/ETH/ING/ELS/E

然后给定的路径用于检索文件(很可能,它必须存储在可以重复使用或直接使用的变量中)

这有可能吗?或者如果没有,究竟会有什么可能,以及限制在哪里?

(编辑)有没有原生的可能性,包括PERL模块?或者这是唯一的方法吗?(也许是一个只进行字符串处理的小模块?)

string variables split nginx

3
推荐指数
1
解决办法
1万
查看次数

编译 NGINX 时 libpcre 抛出“创建共享对象时无法使用 .rodata”错误

我正在尝试使用以下说明在 Ubuntu 16.04.3 LTS 上编译 NGINX:

https://www.vultr.com/docs/how-to-compile-nginx-from-source-on-ubuntu-16-04

nginx-1.13.1我尝试使用nginx-1.13.8(mainline)来代替,但在 期间make,我遇到了库错误pcre

...
objs/src/stream/ngx_stream_ssl_preread_module.o \
objs/ngx_modules.o \
-Wl,-Bsymbolic-functions -fPIC -pie -Wl,-z,relro -Wl,-z,now -ldl -lpthread -lpthread -lcrypt ../pcre-8.40/.libs/libpcre.a ../openssl-1.1.0f/.openssl/lib/libssl.a ../openssl-1.1.0f/.openssl/lib/libcrypto.a -ldl ../zlib-1.2.11/libz.a \
-Wl,-E
/usr/bin/ld: ../pcre-8.40/.libs/libpcre.a(libpcre_la-pcre_compile.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
../pcre-8.40/.libs/libpcre.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
objs/Makefile:328: recipe for target 'objs/nginx' failed
make[1]: *** [objs/nginx] Error 1
make[1]: …
Run Code Online (Sandbox Code Playgroud)

pcre compiler-errors nginx ubuntu-16.04

2
推荐指数
1
解决办法
1454
查看次数

如何在具有动画器的游戏对象之外添加动画事件接收器/侦听器?

我有一个带有动画器的游戏对象和一些可以触发事件的动画(具有特定的回调函数)。

在此输入图像描述

只要我将脚本添加到与动画器相同的游戏对象(包括接收器),一切都会正常工作:

在此输入图像描述

public class AnimatorEventReceiver : MonoBehaviour {
    
    void OnAnimationEnd( AnimationEvent animationEvent ) {
        // do something
    }
    
}
Run Code Online (Sandbox Code Playgroud)

(这是一个简化的例子,我删除了所有不必要的东西)

我的问题是:我必须在包含动画器的游戏对象之外监听此事件。我可以完全访问 GameObject 本身,如何在外部添加“EventListener”来侦听此 AnimationEvent?

我正在寻找 Javascript“object.addEventListener(callback)”的 Unity/C# 等效项

应该接收 AnimationEvent 的对象是包含 Animator 的 GameObject 的父对象 - 如果有帮助的话。

c# animation event-handling unity-game-engine

2
推荐指数
1
解决办法
4859
查看次数