小编Rya*_*yan的帖子

Nginx 403错误:禁止[文件夹]的目录索引

我有3个域名,我正在尝试使用Nginx在一台服务器(数字海洋液滴)上托管所有3个站点.

mysite1.name mysite2.name mysite3.name

其中只有一个有效.另外两个导致403错误(以相同的方式).

在我的nginx错误日志中,我看到:[error] 13108#0: *1 directory index of "/usr/share/nginx/mysite2.name/live/" is forbidden.

我的网站启用配置是:

server {
        server_name www.mysite2.name;
        return 301 $scheme://mysite2.name$request_uri;
}
server {
        server_name     mysite2.name;

        root /usr/share/nginx/mysite2.name/live/;
        index index.html index.htm index.php;

        location / {
                try_files $uri $uri/ /index.html index.php;
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}
Run Code Online (Sandbox Code Playgroud)

所有3个站点都有几乎相同的配置文件.

每个站点的文件都在/usr/share/nginx/mysite1.name/someFolder等文件夹中,然后/usr/share/nginx/mysite1.name/live是一个符号链接.(与mysite2和mysite3相同.)

我看过禁止所有文件的Nginx 403,但这没有用.

关于可能出错的任何想法?

configuration nginx domain-name http-status-code-403

158
推荐指数
11
解决办法
39万
查看次数

如何在浏览器中编辑javascript,就像我可以使用Firebug编辑CSS/HTML一样?

在JSP文件中,我有一些非常复杂的Javascript.在生产机器上,我们看到了一个我们无法理解的非常奇怪的错误.我们从未能够在本地或开发环境中复制它.它可能与javascript有关,但我没有找到一个好方法:使用我的浏览器访问页面(在生产网站上),然后使用浏览器工具编辑在该页面上运行的javascript,包括重新加载页面.

我总是能够做到这一点来调整CSS等,但正如这些问题所指出的,如何调整JS客户端并不明显:

但是,这些答案对我没有帮助,因为:

  • "执行JS"(Firefox插件)似乎不起作用(不比Chrome中的控制台可以做的更多),
  • 如果我使用分离的js文件,"查尔斯"可能会工作,但我的javascript嵌入在JSP中

好像如何在调试模式下在浏览器中动态修改javascript代码?是最接近我所说的,但那个人无法谈论他做了什么,因为这是为了他的雇主.

谢谢你的帮助!瑞安

javascript browser firebug

53
推荐指数
4
解决办法
16万
查看次数

谷歌分析说"跟踪未安装"但我认为它有效吗?

我的网站www.katievb.com是由blogspot.com托管的博客.我创建了一个Google Analytics帐户并注册了"Universal Analytics"属性.它提供了一个唯一的UA ID和一些嵌入HTML的代码,看起来类似于:

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXXXXXX-X', 'katievb.com');
  ga('send', 'pageview');

</script>
Run Code Online (Sandbox Code Playgroud)

大约24小时前我这样做了.GA管理页面一直显示"状态:未安装跟踪".但是,GA Real-Time实际上会跟踪我的访问.(我可以在Mac上使用Firefox,并在Analytics屏幕上实时查看,然后我可以转到使用Chrome的Windows计算机并访问katievb.com并在实时屏幕上看到它.)

在blogspot的设置中,我故意没有填充设置>其他>分析网络媒体资源ID,因为在我看来,我希望我使用旧式Google Analytics(ga.js)而不是这种新类型(分析. JS).

此外,我然后在一对完全独立的blogspot/GA帐户中复制了这个.

为什么会说"未安装跟踪"?它似乎是跟踪,我不知道我应该如何改变我的安装方式.

我已多次阅读说明并尝试了不同版本的代码并将其放在不同的位置,例如在</head>或之前</body>.

google-analytics

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

如何使用Grunt为LESS配置sourceMaps?

我正在使用grunt 0.4.2和grunt-contrib-less 0.9.0.我希望将LESS编译成支持源映射的CSS.

我的LESS文件在public/less,并且主要文件被调用main.less.

编译public/less/main.lesspublic/css/main.css工作,但源地图不起作用.

我的Grunt配置有什么问题?

{
    less: {
        dev: {
            options: {
                compress: true,
                yuicompress: true,
                optimization: 2,
                sourceMap: true,
                sourceMapFilename: "public/css/main.css.source-map.json", //Write the source map to a separate file with the given filename.
                sourceMapBasepath: "public/less", //Sets the base path for the Less file paths in the source map.
                sourceMapRootpath: "/"//Adds this path onto the Less file paths in the source map.
            },
            files: {
                "public/css/main.css": "public/less/main.less"
            }
        }
    },
    watch: …
Run Code Online (Sandbox Code Playgroud)

css less gruntjs source-maps

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

timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP在一台机器上可以为null,但在另一台机器上不能为空?

我有一个MySql表,其字段定义为:

`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

在我的本地机器上,我可以运行:

INSERT INTO mytbl (id, user_id, created) VALUES(88882341234, 765, null);
SELECT id, user_id, created FROM mytbl WHERE id = '88882341234';
Run Code Online (Sandbox Code Playgroud)

然后'创建'将显示类似'2014-06-13 21:16:42'的内容.

但是在我的登台服务器上,如果我运行相同的查询,我会收到此错误:

Column 'created' cannot be null.
Run Code Online (Sandbox Code Playgroud)

这些表的模式是相同的(跨本地和分段),我通过mysqldump确保(在运行此测试之前克隆表).

我在两台机器上运行MySql 5.6.17.我也确保两者都有相同的sql_mode.

可能是什么问题呢?

PS对于那些不知道我为什么要将不可空字段的值设置为null的人,MySql Docs说:

此外,您可以通过为任何TIMESTAMP列分配NULL值来初始化或更新任何TIMESTAMP列,除非已使用NULL属性定义允许NULL值.

mysql

12
推荐指数
1
解决办法
5515
查看次数

如何取消Laravel或Redis中的排队作业

如何浏览Redis队列中的所有待处理作业,以便取消具有某个emailAddress-sendTime对的Mailable?

我正在使用Laravel 5.5并拥有一个Mailable,我正在成功使用如下:

$sendTime = Carbon::now()->addHours(3);
Mail::to($emailAddress)
      ->bcc([config('mail.supportTeam.address'), config('mail.main.address')])
                    ->later($sendTime, new MyCustomMailable($subject, $dataForMailView));
Run Code Online (Sandbox Code Playgroud)

运行此代码时,作业将添加到我的Redis队列中.

我已经阅读过Laravel文档,但仍然感到困惑.

如何取消Mailable(阻止发送)?

我喜欢在我的Laravel应用程序中编写一个网页,这对我来说很容易.

或者也许有一些工具已经让这很容易(也许是FastoRedis?)?在这种情况下,关于如何以这种方式实现这一目标的说明也将非常有用.谢谢!

更新:

我尝试使用FastoRedis浏览Redis队列,但我无法弄清楚如何删除Mailable,例如红色箭头指向此处: 在此输入图像描述

更新:

请看下面我提供的综合答案.

queue jobs delay redis laravel

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

如何获取在本地Laravel Homestead站点上运行的https证书

我遇到了这个问题:

在此输入图像描述

我在Windows 10 Chrome版本65.0.3325.181(官方版本)(64位)中看到的错误是:

你的连接不是私人的

攻击者可能试图从((mysite))窃取您的信息(例如,密码,消息或信用卡).了解更多NET :: ERR_CERT_AUTHORITY_INVALID

此页面不安全(HTTPS已损坏).

证书 - 遗失

此站点缺少有效的可信证书(net :: ERR_CERT_AUTHORITY_INVALID).

Firefox Quantum 59.0.2(64位)说:

您的连接不安全

((mysite))的所有者已经不正确地配置了他们的网站.为防止您的信息被盗,Firefox尚未连接到此网站.

连接不安全

无法验证此证书,因为颁发者未知.

我已经尝试过:https://stackoverflow.com/a/47755133/470749

vboxmanage --version
5.2.6r120293

vagrant -v
Vagrant 2.0.2

git branch
* (HEAD detached at v7.3.0)

vagrant box list
laravel/homestead (virtualbox, 5.2.0)

vagrant box update
==> vboxHomestead: Checking for updates to 'laravel/homestead'
    vboxHomestead: Latest installed version: 5.2.0
    vboxHomestead: Version constraints: >= 5.2.0
    vboxHomestead: Provider: virtualbox
==> vboxHomestead: Box 'laravel/homestead' (v5.2.0) is running the latest version.
Run Code Online (Sandbox Code Playgroud)

我想知道这是否意味着我还没有使用 …

ssl https ssl-certificate laravel homestead

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

E_WARNING:发送STMT_PREPARE数据包时出错.PID =*

截至2019-01-30 14:52 UTC,您仍然可以赢得500分Bounty,因为没有一个答案有帮助!

我的Laravel 5.7网站遇到了一些我认为彼此相关的问题(但在不同时间发生):

  1. PDO::prepare(): MySQL server has gone away
  2. E_WARNING: Error while sending STMT_PREPARE packet. PID=10
  3. PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry (我的数据库似乎经常尝试在同一秒内写两次相同的记录.我一直无法弄清楚为什么或如何重现它;它似乎与用户行为无关.)
  4. 不知何故,前两种类型的错误只出现在我的Rollbar日志中,而不是出现在服务器上或我的Slack通知中的文本日志中,因为所有错误应该是(和所有其他错误).

几个月来,我一直看到这些可怕的日志消息,而且我完全无法重现这些错误(并且无法诊断和解决它们).

我还没有发现任何实际症状或听到用户的任何抱怨,但错误消息似乎并非易事,所以我真的想了解并解决根本原因.


我已经尝试更改我的MySQL配置使用max_allowed_packet=300M(而不是默认的4M)但在我有超过几个访问者访问我的网站的日子里仍然经常得到这些例外.

由于这个建议,我还设置了(从5M和10M改为)以下内容:

innodb_buffer_pool_chunk_size=218M
innodb_buffer_pool_size = 218M
Run Code Online (Sandbox Code Playgroud)

作为进一步背景:

  • 我的站点有一个运行jobs(artisan queue:work --sleep=3 --tries=3 --daemon)的队列工作者.
  • 根据访问者的注册时间,可以在同一时间安排一系列排队的作业.但我发现同时发生的最多是20.
  • MySQL慢查询日志中没有条目.
  • 我有几个cron工作,但我怀疑他们是有问题的.一分钟运行,但非常简单.另一个是每隔5分钟运行一次,如果有任何待处理的电子邮件,则会发 另一个每30分钟运行一次报告.
  • 我已经运行了各种mysqlslap查询(虽然我完全是新手)并且即使在模拟数百个并发客户端时也没有发现任何缓慢的问题.
  • 我正在使用Laradock(Docker).
  • 我的服务器是DigitalOcean 1GB RAM,1个vCPU,25GB SSD.我也试过2GB内存没有区别.
  • 结果来自SHOW VARIABLES;SHOW GLOBAL STATUS; 在这里.

my.cnf是:

[mysql]

[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
character-set-server=utf8
innodb_buffer_pool_chunk_size=218M
innodb_buffer_pool_size …
Run Code Online (Sandbox Code Playgroud)

mysql performance laravel laravel-5 laradock

12
推荐指数
2
解决办法
1383
查看次数

如何在所有测试完成之前显示失败的 PHPUnit 测试的名称

我已将测试分成不同的组,这样除非绝对必要,否则我不会运行最慢的测试。

然而,有些仍然很慢。

因此,我很想在整套测试完成运行之前查看失败或出错的测试的名称。

例如,当前当我运行时phpunit tests/Unit/ --verbose,我看到这样的输出:

PHPUnit 7.5.1 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.2.14-1+ubuntu16.04.1+deb.sury.org+1 with Xdebug 2.6.0
Configuration: /home/vagrant/Code/myproject/phpunit.xml

........F.....
Run Code Online (Sandbox Code Playgroud)

但即使我看到“F”,我也需要等待很长时间才能看到哪个测试失败了。

我希望能够允许测试继续运行,但同时开始调查该特定测试以了解其失败的原因。

如何?

php phpunit

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

如何在 Next.js 中使用查询参数?

在我的 Next.js API 函数中,例如:

export default async function handler(req: NextApiRequest, res: NextApiResponse<any>) {
  const { someQueryParam } = req.query;
  doSomething(someQueryParam);
  ...
Run Code Online (Sandbox Code Playgroud)

我看到 TypeScript 错误:

'string | 类型的参数 string[]' 不可分配给“string”类型的参数。类型“string[]”不可分配给类型“string”.ts(2345)

所以我开始使用我编写的这个辅助函数:

export function getSimpleStringFromParam(paramValue: string | string[] | undefined) {
  if (paramValue) {
    return typeof paramValue === 'string' ? paramValue : paramValue[0];
  } else {
    return '';
  }
}
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但感觉丑陋和奇怪,感觉就像我想做的事情是一个常见的需求,Next.js 或 Node 会更顺利地处理它。所以我觉得我误解了一些东西。

是否有更官方/更好的方法从查询参数中提取简单的字符串值?

node.js query-string next.js

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