admin 发布的文章

windows的%windows%/temp需要iis权限
thinkphp的临时文件目录需要iis权限

添加mime类型

//用于databalse国际语言调用
.json  application/x-javascript
//图标文件
.woff  font/x-woff
.woff2  font/x-woff

如果php需要链接mssql数据库还要安装mssql数据odb支持

  • 1、安装msodbcsql.msi
  • 2、php7还需要单下载对应版本支持的dll
    php_pdo_sqlsrv_72_nts_x64.dll 和 php_sqlsrv_72_nts_x64.dll

如何在 Apache 中启用 HTTP/2
从 Apache httpd 2.4.17 开始终于支持 HTTP/2 了。这个页面给出了一些如何构建/部署/配置的建议。目的是为了大家发现 bugs 时能升级它,或者给一些能更好工作的建议。

最后,这会归并回到官方 Apache 文档,这里只会留下一个到那里的链接。暂时我们还没做到。
编译支持 HTTP/2
一个给服务器的好建议是为 http2 模块设置合适的日志等级。添加下面的配置:

# 放在某个地方的这样一行
LoadModule http2_module modules/mod_http2.so
<IfModule http2_module>
  LogLevel http2:info
</IfModule>

当你启动服务器的时候,你可以在错误日志中看来类似的一行:

[timestamp] [http2:info] [pid XXXXX:tid numbers] 
 mod_http2 (v1.0.0, nghttp2 1.3.4), initializing...

然后可以用新的 Protocols 指令启用 HTTP/2 协议:

# 对于 https 服务器
Protocols h2 http/1.1
...
# 对于 http 服务器
Protocols h2c http/1.1

相关文章:
https://www.jb51.net/article/76432.htm

在我windows + apache2.4.38 上尝试了网上很多方法无效,最后找到一个答案就是:

apache SSL支持协议是全局设置,需要放在VirtualHost外面。

开启ocsp需要保持格式在命令上一行注释,否则可能会报错。不要问为什么,完全靠试出来的。

我的VirtualHost配置记录:


Listen 443

# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol All -TLSv1

#开启ocsp
SSLUseStapling on   
SSLCompression off 
#缓存位置  需要mod_socache_shmcb模块
SSLStaplingCache "shmcb:logs/stapling-cache(150000)" 
#ocsp装订正常缓存超时3600秒
SSLStaplingStandardCacheTimeout 3600    
#ocsp装订错误缓存超时600秒
SSLStaplingErrorCacheTimeout 600    

<VirtualHost *:443>
DocumentRoot "D:/blog"
ServerName blog.gamecf.cn
# SSL功能打开,如果在Virtualhost 出现这句,则仅作用于虚拟机站点配置范围,这个虚拟机站点全部使用SSL通信,如果出现在Virtualhost外,则作用于全局,整个服务器都使用 SSL(HTTPS)通信,不能采用HTTP通信,所以通常都在Virtualhost中加这句。
SSLEngine on
# 修改加密套件
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile D:/gamecf.cn.crt
# 证书私钥配置
SSLCertificateKeyFile D:/gamecf.cn.key
# 开启HTTP/2.0
Protocols h2 http/1.1
# 支持HTTP严格传输安全(HSTS)
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
# 支持HPKP
Header set Public-Key-Pins "pin-sha256=\"klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY=\"; pin-sha256=\"633lt352PKRXbOwf4xSEa1M517scpD3l5f79xMD9r9Q=\"; max-age=2592000; includeSubDomains"
<Directory "/">
    Require all granted 
    AllowOverride All
    Options Indexes FollowSymLinks ExecCGI
    Require host ip
</Directory>
</VirtualHost>

相关文章:
https://codeday.me/bug/20181107/358027.html

默认模板的 header.php 的 css 中,有一个存放在 upaiyun 上面的,可是现在已经 405 啦。

具体 css 为 normalize.min.css

路径 typecho/usr/themes/default/header.php

链接 cdnjscn.b0.upaiyun.com/libs/normalize/2.1.3/normalize.min.css

解决:https://cdn.baomitu.com/normalize (重新获取链接或下载到本地)

normalize与CSS Reset的区别:
Normalize.css只是一个很小的css文件,但它在磨人的HTML元素样式上提供了跨浏览器的高度一致性。相比于传统的CSS
reset,Normalize.css是一种现代的、为HTML5准备的优质替代方案。总之,Normalize.css是一种CSS
reset的替代方案。

Normalize.css 有下面这几个目的:

  • 保护有用的浏览器 样式而不是去掉他们。
  • 一般化的样式: 为大部分HTML元素提供。
  • 修复浏览器自身的bug 并保证各浏览器的一致性。
  • 优化css可用性: 用一些小技巧。
  • 解释代码: 用注释和详细的文档来。

注意: Normalize支持包括手机浏览器在内的超多浏览器,同时对HTML5元素、排版、列表、嵌入的内容、表单和表哥都进行了一般化。尽管这个项目基于一般化的原则,但我们还是在合适的地方使用了更实用的默认值。

另外还有这个判断旧版本浏览器的js链接也失效了

<!--[if lt IE 9]>
<script src="//cdnjscn.b0.upaiyun.com/libs/html5shiv/r29/html5.min.js"></script>
<script src="//cdnjscn.b0.upaiyun.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->

到cdnjs.com搜索后替换为:

<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

相关查阅:
https://www.v2ex.com/t/434558
https://www.jianshu.com/p/6e0c6d570e1c