本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版 | |||
other:website:tips [2022/06/24 11:20] – 已恢复为旧版 (2022/06/24 11:17) codinghare | other:website:tips [2022/06/24 11:20] (当前版本) – 已恢复为旧版 (2022/06/24 11:17) codinghare | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ======常见运维问题===== | ||
- | 一些个人网站环境配置及常见问题记录。 | ||
- | ---- | ||
- | |||
- | ====AMH==== | ||
- | References: | ||
- | * [[https:// | ||
- | ===AMH 查看默认密码=== | ||
- | 使用以下命令则可以查看: | ||
- | <code bash> | ||
- | cat / | ||
- | </ | ||
- | |||
- | ===MySQL无法自动启动=== | ||
- | |||
- | MYSQL 在重启服务器时不能启动,尝试以下方法: | ||
- | \\ | ||
- | \\ | ||
- | 删除 '' | ||
- | |||
- | <code bash> | ||
- | cd /etc/ | ||
- | rm my.inf | ||
- | </ | ||
- | |||
- | ===SSL 配置=== | ||
- | ==SSL多虚拟主机== | ||
- | 单IP的多个虚拟主机只需要一个 SSL证书即可。配置步骤: | ||
- | - 在 '' | ||
- | - 将得到的证书在 '' | ||
- | - 制定自动更新的策略。 | ||
- | ====Dokuwiki==== | ||
- | Rreferences: | ||
- | * [[https:// | ||
- | |||
- | ===Dokuwiki Nginx Rewrite 规则=== | ||
- | |||
- | 将下列规则添加到 AMH 的 '' | ||
- | |||
- | <code nginx> | ||
- | location / { | ||
- | index doku.php; | ||
- | try_files $uri $uri/ @dokuwiki; | ||
- | } | ||
- | |||
- | #caching: warning: will cause picture 404 problem if your wiki is running in rewrite mode 1. | ||
- | location ~ ^/ | ||
- | expires 30d; | ||
- | } | ||
- | |||
- | #dir safety | ||
- | location ^~ /conf/ { return 403; } | ||
- | location ^~ /data/ { return 403; } | ||
- | |||
- | #rewrite | ||
- | Location @dokuwiki { | ||
- | # rewrites " | ||
- | rewrite ^/ | ||
- | rewrite ^/ | ||
- | rewrite ^/ | ||
- | rewrite ^/(.*) / | ||
- | } | ||
- | </ | ||
- | ==Dokuwiki 重写后图片显示不正常(Nginx& | ||
- | Dokuwiki URL Rewrite 与以下代码冲突: | ||
- | <code nginx> | ||
- | location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp3|wma)$ { | ||
- | expires | ||
- | } | ||
- | </ | ||
- | 而 AMH 的 '' | ||
- | |||
- | ===Dokuwiki Nginx 安全规则=== | ||
- | |||
- | 该段代码用于防止除 '' | ||
- | \\ | ||
- | 使用:添加以下代码到 '' | ||
- | <code nginx> | ||
- | # Block access to data folders | ||
- | location ~ / | ||
- | deny all; | ||
- | } | ||
- | # Block access to .htaccess files | ||
- | location ~ /\.ht { | ||
- | deny all; | ||
- | } | ||
- | </ | ||
- | |||
- | ===Dokuwiki 使用=== | ||
- | |||
- | * 插件的安装:直接到后台的插件管理器中寻找指定的插件下载安装即可。 | ||
- | |||
- | ==常用插件== | ||
- | |||
- | * Add New Page:可以直接在没有创建页面的位置直接创建页面,非常方便。 | ||
- | * Code Prettifier:非常好用的代码高亮。 | ||
- | * Edittable :图形化界面的表格创建,比较方便,但有自适应问题。 | ||
- | * Fastwiki :优化 Dokuwiki 的访问速度(预加载)。 | ||
- | * Google Document Viewer :可以直接在 Dokuwiki 中查看 Google 文档。 | ||
- | * MathJax :数学公式插件。 | ||
- | * Pure SVG Insert:使 Dokuwiki 支持 SVG 的显示。 | ||
- | * DokuWiki Upgrade:一键升级 Dokuwiki,必备插件。 | ||
- | * Wrap:很好用的内容排版插件。 | ||
- | ===Dokuwiki 相关问题=== | ||
- | ==Dokuwiki 上传附件显示 " | ||
- | 解决方法:进入服务器的 '' | ||
- | <code php> | ||
- | always_populate_raw_post_data = -1 | ||
- | </ | ||
- | ====服务器通用前端优化==== | ||
- | |||
- | ===Leverage browser caching=== | ||
- | |||
- | < | ||
- | |||
- | < | ||
- | |||
- | < | ||
- | 解决方法:使用新版本的重写规则,请参见前面。 | ||
- | </ | ||
- | |||
- | |||
- | \\ | ||
- | \\ | ||
- | **Nginx** 版本的通用优化代码如下: | ||
- | <code nginx> | ||
- | location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { | ||
- | expires 365d; | ||
- | } | ||
- | |||
- | location ~* \.(pdf)$ { | ||
- | expires 30d; | ||
- | } | ||
- | </ | ||
- | |||
- | ====Typecho==== | ||
- | |||
- | 一些 Typecho 的改造 / 使用 问题收集。 | ||
- | ===后台 Access Denied=== | ||
- | |||
- | 在 AMH 中开启 '' | ||
- | |||
- | ===Typecho 改造指南=== | ||
- | |||
- | ==评论:添加额外样式给管理员== | ||
- | Typecho 可以针对当前用户是否是管理员来添加额外的样式。一个简单的应用例子如下: | ||
- | \\ | ||
- | \\ | ||
- | 首先我们需要官方帮助文档中的自定义函数。该函数用于判断当前评论用户是否为管理员,通过 '' | ||
- | <code php> | ||
- | <?php function threadedComments($comments, | ||
- | $commentClass = ''; | ||
- | if ($comments-> | ||
- | if ($comments-> | ||
- | $commentClass .= ' comment-by-author'; | ||
- | } else { | ||
- | $commentClass .= ' comment-by-user'; | ||
- | } | ||
- | } | ||
- | $commentLevelClass = $comments-> | ||
- | ?> | ||
- | /* 自定义评论的代码结构 */ | ||
- | <?php } ?> | ||
- | </ | ||
- | \\ | ||
- | 接下来会通过一段函数将增加的样式表打印出来,结果是 '' | ||
- | <code php> | ||
- | <li id=" | ||
- | if ($comments-> | ||
- | echo ' comment-child'; | ||
- | $comments-> | ||
- | } else { | ||
- | echo ' comment-parent'; | ||
- | } | ||
- | $comments-> | ||
- | echo $commentClass; | ||
- | ?>"> | ||
- | </ | ||
- | \\ | ||
- | 有了这两段函数以后,剩下的工作就很简单了。以我要替换管理员在评论中名字的背景为例。首先将打印出来的字段应用到 HTML 的调用中: | ||
- | <code php> | ||
- | <span class=" | ||
- | </ | ||
- | |||
- | 上面的代码直接把 '' | ||
- | \\ | ||
- | \\ | ||
- | 最后去 CSS 里添加样式表即可: | ||
- | |||
- | <code css> | ||
- | .comment-author.comment-by-author {background: | ||
- | </ | ||
- | ==评论:重写发表评论时间== | ||
- | Typecho 默认的时间输出格式是 PHP 的格式。如果我们希望将其转换为“发表于多久多久之前” 的格式,可以通过以下的手段来实现: | ||
- | \\ | ||
- | \\ | ||
- | 首先我们需要往 '' | ||
- | <code php> | ||
- | // | ||
- | function timesince($older_date, | ||
- | $chunks = array( | ||
- | array(86400 , | ||
- | \\ | ||
- | <WRAP round tip 60%> | ||
- | 新版本不再使用 jquery。 | ||
- | </ | ||
- | |||
- | \\ | ||
- | \\ | ||
- | 在 '' | ||
- | <code js> | ||
- | < | ||
- | var disqus_loaded = false; | ||
- | |||
- | function load_disqus() | ||
- | { | ||
- | disqus_loaded = true; | ||
- | var dsq = document.createElement(' | ||
- | dsq.src = " | ||
- | (document.getElementsByTagName(' | ||
- | } | ||
- | |||
- | window.onscroll = function(e) { | ||
- | if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) { | ||
- | //hit bottom of page | ||
- | if (disqus_loaded==false){ load_disqus() }; | ||
- | } | ||
- | }; | ||
- | </ | ||
- | </ | ||
- | \\ | ||
- | 注意替换 '' | ||
- | \\ | ||
- | \\ | ||
- | html 调用: | ||
- | <code html> | ||
- | <div id=" | ||
- | </ | ||
- | \\ | ||
- | \\ | ||
- | ====Flarum==== | ||
- | ===解决 nginx 重写的问题=== | ||
- | Flarum 自己带一个子目录 '' | ||
- | - 绑定 '' | ||
- | - 绑定 domain.com 到子域主机 | ||
- | - 绑定子目录中填写 ''/ | ||
- | - 在子主机中包含 '' | ||
- | |||
- | ===Flarum 目录权限=== | ||
- | <code bash> | ||
- | $chown www:www -R / | ||
- | </ | ||
- | ===InnodB=== | ||
- | 如果遇到以下的错误: | ||
- | >flarum Something went wrong: SQLSTATE[42000]: | ||
- | 需要到 '' | ||
- | ===https 403=== | ||
- | 如果出现 http 访问正常 而 https 访问 403 的情况,需要到 '' | ||
- | <code cpp> | ||
- | //default | ||
- | http:// | ||
- | //change to | ||
- | https:// | ||
- | </ | ||