阿水的世界。

分类 网站相关 下的文章

12月 04

typecho升级1.2.1后出现Class 'Views_Plugin' not found 问题处理

前段时间把网站的typecho系统升级了一下,从1.1.7(好像是这个版本吧(⊙_⊙)?)升级到1.2.1,然后就出现了Class 'Views_Plugin' not found错误。

只要是点击栏目、 标签等,都会弹出这个错误。莫名其妙的问题O.o?

在typecho官方论坛里寻求解决办法,看的人挺多,就是没人回答╮(╯▽╰)╭自己动手,丰衣足食!

查了官方的升级步骤文档,里边最后提到:

如果在升级完成后,进入首页出现 500 或其他错误,请进入 admin页面禁用所有的插件,并启用默认模板。如果正常,请逐步排查插件或模板存在的问题。

好吧,先切换到默认模板,一试,好了O.o!!!

明白了,是模板的问题。我用的是Boot-Sematic Theme这款模板,挨个打开查看。在archive.php文件中找到下边这句话:

<?php Views_Plugin::theViews('有 ', ' 次点击'); ?>

这句应该是输出文章的点击量的,似乎新版本里删了这个函数?

删除这句,重新试了一下,网站正常了。

故障解决完毕。

05月 19

关于网盘访问记录达到2300万次

曾经,在2020年11月,因为某度网盘的使用问题,所以自己搭建了一个nextcloud,到目前为止,已经正常运行了两年半(^▽^)目前发生没有特别大的问题。

期间,为网站增加了https证书,增加了电话通讯录备份、笔记功能、文档在线编辑、媒体文件的在线编辑等等很多插件。同时,存储的容量也已经达到1.8t。

今天准备查看一下项目的具体访问日志,检查一下安全性。然后……log文件居然有6.4G 哦O_o!!!居然这么大!

下载以后查看发现访问记录总共达到了2300万条O_O!!!只有我一个用户的情况下,居然访问了这么多次o_O!

大数据果然也在身边。

01月 10

网页禁止选择文字的CSS代码

为了防止网页的文字被人选择、复制,可使用如下CSS代码样式,根据情况,对页面的内容进行选择控制。
具体代码有如下4个,都是关于user-select属性的。

 -webkit-user-select:text;
 -moz-user-select:text;
 -ms-user-select:text;
 user-select:text

当user-select的值列表及解释:

  • all 当所有内容作为一个整体时可以被选择。如果双击或者在上下文上点击子元素,那么被选择的部分将是以该子元素向上回溯的最高祖先元素
  • auto 文本将根据浏览器的默认属性进行选择
  • contain 选择该元素范围内的文本,只支持(Explorer未测试)
  • none 元素和子元素的文本将无法被选中
  • text 文本可以被选中 inherit 继承父元素的此属性
  • initial 设置为初始的样式属性
  • revert 样式表中定义的元素属性的默认值。若用户定义样式表中显式设置,则按用户定义的设置否则,按照浏览器默认的的样式设置在否则,等价于unset
  • unset 如果该属性可以被继承,则是继承的值,不可以被继承(initial),则是默认的值
06月 04

nextcloud更新插件导致服务器处于维护模式

确保服务器本身没出什么问题,可执行
sudo -u www php occ maintenance:mode --off关闭维护模式。
执行完成会显示Maintenance mode disabled.
正常情况下网盘应该可以正常访问了。

05月 07

数据库还原造成的孤立用户没有登陆名的修复办法

这几天给一个网站更换服务器,旧服务器是windows server2008,网站使用的是asp.net开发,使用的数据库是Mssql2008,因为winserver2008已经停止更新了,所以新的服务器安装的是Windows Server 2022 Datacenter系统,数据库安装的是Mssql2012。对应用和数据库进行迁移,数据库还原以后,访问网站时出现了问题,提示无法登陆。

经检查,因为我在旧的服务器上对数据库做的是备份操作,生成的文件在新的服务器上做的是还原数据库操作,这样回复数据库的结果是只将数据库本身还原了,但是系统数据库中没有这个数据库中的用户信息,造成了数据库中的用户成为了孤立用户,系统中没有该用户的登陆名,所以不具备登陆权限。

孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录。

查到原因后,自己进行了修复尝试,在mssql的“安全性”-“登陆名”下,增加一个和原数据库中的登陆名一致的用户,这个时候就出现了问题,显示已经存在该用户,无法新增,但是经过此操作后在“登陆名”项目下出现了准备新增的用户。经过尝试,仍然无法登陆,并且无法赋上对数据库的各项的权限。

经过搜索,找到了如下的修复方法:

首先将在需要修复的数据库中新建查询,执行下边命令即可:

  1. 列出当前数据库的孤立用户(这步不是必须)

    exec sp_change_users_login 'REPORT'

  2. 将孤立用户所对应的同名登录名添加到syslogins中

    exec sp_change_users_login 'AUTO_FIX','用户名'

  3. 也可以使用这个命令,将用户名映射为指定的登录名

    exec sp_change_users_login 'UPDATE_ONE','用户名','登录名'

这里边的用户名和登陆名应根据实际情况修改。

执行完后,数据库访问就正常了。