我正在尝试按照这些指南在 Windows 上安装 PHP、Apache 和 MySQL 。在某些时候,系统会提示我进行编辑httpd.conf
以指向我的 PHP 安装。apache目录和php目录都在C:\
:C:\Apache24
和C:\php-8.0.0beta1-Win32-vs16-x64.
我的安装的相关行是:
PHPIniDir "C:/php-8.0.0beta1-Win32-vs16-x64"
AddHandler application/x-httpd-php .php .phar
LoadModule php8_module "C:/php-8.0.0beta1-Win32-vs16-x64/php8apache2_4.dll"
Run Code Online (Sandbox Code Playgroud)
不幸的是,这些似乎破坏了 Apache,因为即使在httpd
之后运行也会产生:
httpd.exe: Syntax error on line 542 of C:/Apache24/conf/httpd.conf: Can't locate API module structure `php8_module' in file C:/php-8.0.0beta1-Win32-vs16-x64/php8apache2_4.dll: No error
Run Code Online (Sandbox Code Playgroud)
php8_module
PowerShell似乎无法识别它。有任何想法吗?
我真的不能想到一个更好的标题,但我会详细解释这个场景.
我有一个由IIS托管的.Net Web API.
protected void Application_Start()
{
SwaggerConfig.Register();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
BundleConfig.RegisterBundles(BundleTable.Bundles);
GlobalConfiguration.Configure(WebApiConfig.Register);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
Run Code Online (Sandbox Code Playgroud)
除了初始化Hangfire,CORS和web api之外,我在混合中也有OWIN.
public static void Configuration(IAppBuilder app)
{
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
OAuthConfig.Config(app);
Hangfire.GlobalConfiguration.Configuration.UseSqlServerStorage("SSDeployment");
app.UseHangfireServer();
app.UseWebApi(System.Web.Http.GlobalConfiguration.Configuration);
app.Use(typeof(OwinLogging));
Log.Debug("Starting SSDeployment.IntakeService - OWIN Configuration set for WebApi ...");
}
Run Code Online (Sandbox Code Playgroud)
这是有趣的地方.最初,在Configuration(IAppBuilder app)方法中,第一行是
HttpConfiguration config = new HttpConfiguration();
Run Code Online (Sandbox Code Playgroud)
在另一个不相关的情况下,我的DelegatingHandlers类无法正常工作.我认为可能正在创建两个HttpConfiguration的内容,因此问题.
然后我决定使用在GlobalConfiguration中全局声明的相同HttpConfiguration,你可以在我粘贴的方法中看到...
GlobalConfiguration.Configuration
Run Code Online (Sandbox Code Playgroud)
不知何故,这种变化似乎修复了DelegatingHandlers问题.然而,很快我的一些行为就被打破了.
在我创建新项目的POST之后,我总是返回201 Created响应,该响应添加了Location标头.为此,我使用Url.Link("ActionName", new {field = value}).
事情是我得到一个'未实现'的例外.
当我回去并var config = new HttpConfiguration()
在OWIN中使用它然后它工作.我的DelegatingHandlers也工作.
谁能解释一下这里发生了什么?我没能找到很多关于它的文档.为什么GlobalConfiguration.Configuration(一个HttpConfiguration对象)是全局的,但我不能在我的OWIN的启动类中使用它.
令我困扰的是"修理"某些东西而不知道它为何被修复.射击空白不是我的事:)
谢谢!
我们正在使用嵌入式Jetty 9.3.1.v20150714,并遇到了我们的长查询URL与其他标头相结合的问题比允许的长.
该解决方案看起来很简单:增加requestHeaderSize
在HttpConfiguration
.但是我该如何轻松地做到这一点?我正在创建一个Server
,一个ServletContextHandler
和一个ServletHolder
.但是,在一个自定义的混合HttpConfiguration
,我必须创建一个新的ServerConnector
和HttpConnectionFactory
?我是否必须覆盖HTTP和HTTPS配置?如何在requestHeaderSize
不重新配置所有默认值的情况下轻松更改?
在看似正确的安装之后,HTTP/2 似乎没有运行。
我正在运行 CentOS 7。
我安装了最新版本的 Apache,版本 httpd-2.4.35-5.el7.x86_64,并且一直在尝试让 HTTP/2 正常工作。
为此,我看到我们需要运行 http2_module。那是积极的和正在运行的。我相信已经通过运行命令确认了这一点httpd -M
。http2_module(共享)列在这些模块下。
我知道要做的下一件事是在标签Protocols h2 h2c http/1.1
上方<VirtualHost ...>
添加。我也这样做了。
最后,我对我的 URL 进行了 CURL 处理,但我仍然收到 HTTP/1.1。
卷曲命令:curl -vsko /dev/null --http2 https://www.thehomepainter.com
CURL 的简要回复:
GET / HTTP/1.1 主机:www.thehomepainter.com 用户代理:curl/7.64.0 接受:/
< HTTP/1.1 200 OK
部分来自 httpd.conf
Protocols h2 h2c http/1.1
<VirtualHost *:443>
SSLEngine on
ServerAdmin ### omitted ###
ServerName thehomepainter.com
ServerAlias www.thehomepainter.com
DocumentRoot /var/www/html/
Options -Indexes
ProxyRequests off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
ProxyPass "/" "http://localhost:3000/" …
Run Code Online (Sandbox Code Playgroud)