小编mat*_*tes的帖子

与 Apache 的 ProxyPassMatch 一起使用时,%0 不会被服务器名称替换

问题:

与 ProxyPassMatch 一起使用时,%0 不会被服务器名称(即 test.local)替换。

<VirtualHost *:80>

  UseCanonicalName Off

  # %0 is replaced by server name (works)
  VirtualDocumentRoot /Users/mattes/sites/%0

  # %0 is replaced by an empty string (problem!)
  ProxyPassMatch ^(/.*\.php)$ fcgi://127.0.0.1:9000/Users/mattes/sites/%0/$1

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

解决办法:

我在这里找到了一篇有趣的博客文章:http : //holtstrom.com/michael/blog/post/225/Apache-2.2-Proxy.html。基本上,Michael 使用 RewriteEngine 来保存变量以供以后使用。像这样的事情会起作用,例如:

<VirtualHost *:80>

  UseCanonicalName Off
  VirtualDocumentRoot /Users/mattes/sites/%0

  RewriteEngine On
  RewriteRule .* - [E=SERVER_NAME:%{SERVER_NAME}]
  ProxyPassInterpolateEnv On
  ProxyPassMatch ^(/.*\.php)$ fcgi://127.0.0.1:9000/Users/mattes/sites/ \
                                                    ${SERVER_NAME}$1 interpolate

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

虽然它有效,但我认为这是一个不太好的解决方法。我还收到诸如“AH00111:未定义配置变量 ${SERVER_NAME}”之类的错误。


有没有人知道如何解决这个问题?

regex apache virtualhost proxypass

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

如何将 PHP 错误写入 stderr?

如何更改 php-fpm.conf(或 php.ini),以便将所有错误/警告/...写入标准错误(或替代标准输出)?

我跑php5-fpm带daemonize = no,并希望看到我的终端的所有错误。

php logging stdout stderr

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

使用 http.TimeoutHandler 还是 ReadTimeout/WriteTimeout?

如果我已经设置了服务器的ReadTimeout 和 WriteTimeout ,另外使用http.TimeoutHandler是否有意义?似乎这个场景是相互排斥的?

go

5
推荐指数
2
解决办法
4244
查看次数

在Go中解析来自文本文件的HTTP请求和响应

给定以下文件,该文件包含HTTP请求和HTTP响应的HTTP流水线流。

如何将该文件解析为stream变量?

type Connection struct{
   Request *http.Request
   Response *http.Response
}
stream := make([]Connection, 0)
Run Code Online (Sandbox Code Playgroud)

原始文件:

GET /ubuntu/dists/trusty/InRelease HTTP/1.1
Host: archive.ubuntu.com
Cache-Control: max-age=0
Accept: text/*
User-Agent: Debian APT-HTTP/1.3 (1.0.1ubuntu2)

HTTP/1.1 404 Not Found
Date: Thu, 26 Nov 2015 18:26:36 GMT
Server: Apache/2.2.22 (Ubuntu)
Vary: Accept-Encoding
Content-Length: 311
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /ubuntu/dists/trusty/InRelease was not found on this server.</p>
<hr>
<address>Apache/2.2.22 (Ubuntu) Server at archive.ubuntu.com …
Run Code Online (Sandbox Code Playgroud)

go

4
推荐指数
1
解决办法
3788
查看次数

将 int 转换为 uint 时不会出现恐慌吗?

我对以下类型转换感到困惑。我预计这两种uint转换都会出现恐慌。

a := -1
_ = uint(a) // why no panic?

_ = uint(-1) // panics: constant -1 overflows uint
Run Code Online (Sandbox Code Playgroud)

为什么第 2 行没有恐慌?

https://play.golang.org/p/jcfDL8km2C

go

4
推荐指数
1
解决办法
3216
查看次数

与Python一起将连续日期分组

鉴于:

dates = [
  datetime(2014, 10, 11), 

  datetime(2014, 10, 1), 
  datetime(2014, 10, 2),
  datetime(2014, 10, 3),

  datetime(2014, 10, 5), 
  datetime(2014, 10, 5), 
  datetime(2014, 10, 6), 

  datetime(2014, 10, 22), 
  datetime(2014, 10, 20),
  datetime(2014, 10, 21),

  datetime(2014, 10, 9), 

  datetime(2014, 10, 7),
  datetime(2014, 10, 6)
]
Run Code Online (Sandbox Code Playgroud)

预期产量:

expect = [
  [datetime(2014, 10, 1), datetime(2014, 10, 3)],
  [datetime(2014, 10, 5), datetime(2014, 10, 7)],
   datetime(2014, 10, 9),
   datetime(2014, 10, 11),
  [datetime(2014, 10, 20), datetime(2014, 10, 22)]
]
Run Code Online (Sandbox Code Playgroud)

在Python中实现:

from datetime import datetime, timedelta

def …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

没有名为OpenSSL.crypto和ImportError的模块:SignedJwtAssertionCredentials

我正在尝试使用本地dev_appserver在本地连接到BigQuery API,遵循以下教程:https://developers.google.com/bigquery/authorization?hl = de#service-accounts 运行此站点上提到的代码,返回导入错误:

ImportError: cannot import name SignedJwtAssertionCredentials
Run Code Online (Sandbox Code Playgroud)

所以我跟着错误发现了(在oauth2client/client.py中):

if HAS_CRYPTO:
  # PyOpenSSL and PyCrypto are not prerequisites for oauth2client, so if it is
  # missing then don't create the SignedJwtAssertionCredentials or the
  # verify_id_token() method.

  class SignedJwtAssertionCredentials(AssertionCredentials):
Run Code Online (Sandbox Code Playgroud)

但我需要"SignedJwtAssertionCredentials"!所以我进一步隔离了错误,发现(在oauth2client/crypt.py中)这一行实际上导致了这个问题:

from OpenSSL import crypto
Run Code Online (Sandbox Code Playgroud)

我试过了:

$ python
>>> import OpenSSL
>>> OpenSSL.__file__
'/usr/local/lib/python2.7/site-packages/OpenSSL/__init__.pyc'
>>> from OpenSSL import crypto
>>> crypto.__file__
'/usr/local/lib/python2.7/site-packages/OpenSSL/crypto.so'
Run Code Online (Sandbox Code Playgroud)

看起来很有前途,还检查了我的代码的sys.path:

['/Users/mattes/Developer/gae-projects/project123', 
 '/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine', 
 '/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine', 
 '/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7', 
 '/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2', 
'/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/protorpc-1.0', 
'/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webob-1.1.1', 
'/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/yaml-3.10']
Run Code Online (Sandbox Code Playgroud)

总之,无论是添加"/usr/local/lib/python2.7/site-packages/OpenSSL"到sys.path中也不符号链接/usr/local/lib/python2.7/site-packages/OpenSSL下 …

python google-app-engine google-bigquery google-oauth

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

如何使用github.com/jhump/protoreflect 解析一个字节数组的proto消息知道消息描述符

我有一个包含以下 protomessage 字节片段的文件。

syntax = "proto3";

package main;

message Address {
    string street = 1;
    string country = 2;
    string state = 3;
}
Run Code Online (Sandbox Code Playgroud)

我的消息类型描述如下:

syntax = "proto3";

package main;

message Address {
    string street = 1;
    string country = 2;
    string state = 3;
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何最好地使用jhump/protoreflect使用上面的消息描述符来解析文件的内容。

感谢您的帮助。

go protocol-buffers

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

如何在 http.HandleFunc 中设置上下文值?

我想在 http.HandleFunc 中设置一个上下文值。以下方法似乎有效。

不过我有点担心*r = *r.WithContext(ctx)。

type contextKey string
var myContext = contextKey("myContext")

func setValue(r *http.Request, val string)  {
  ctx := context.WithValue(r.Context(), myContext, val)
  *r = *r.WithContext(ctx)
}

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    setValue(r, "foobar")
})
Run Code Online (Sandbox Code Playgroud)

在 http.HandleFunc 中设置上下文变量的最佳方法是什么?

go

0
推荐指数
1
解决办法
1714
查看次数