升级centos后php中imagick模块错误解决

阿里云上一台跑php应用的服务器,centos 7

收到一个信息说云服务器上说有什么什么漏洞,需要进行升级

当时也没有想太多,老规矩,先做个系统快照。

然后登录系统,把软件和内核一起升级一下

#yum update

一切看起来非常的顺利,搞完之后重启一下。

虽然有点夜深,但是还是要测试一下应用是否正常。

做为一个半吊子运维的基本素养还是要有的

好了,一访问冒出一串问题

A PHP Error was encountered

Severity: Core Warning

Message: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/imagick.so’ – libMagickWand.so.5: cannot open shared object file: No such file or directory

Filename: Unknown

Line Number: 0

Backtrace:

感觉身上有点热,这么冷的天,我仿佛出汗了。

需要回滚快照?

幸好是深夜,白天交代过晚上会更新系统,应该不会有人使用。

那就先看一看有没有办法解决吧

# php –version 同样提示 imagick.so 无法 load

#vi /etc/php.ini

extension=imagick.so 先把这一行给注释了。

发现 imagick.so在 /usr/lib64/php/modules/ imagick.so 目录下,文件明明在的,为什么load不上呢?

那就删了重新装一下,试试。

# pecl uninstall imagick

#pecl install imagick

#vi /etc/php.ini 把 extension=imagick.so 打开

#php –version 正常

再启动一下nginx ,发现一切正常

世界又恢复了美好。

洗洗睡。

继续假装是个运维小哥。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

 

作者 | 杨秀璋,责编 | 夕颜
出品 | CSDN博客
本文将介绍Windows系统漏洞,通过5次Shift漏洞重改CMD,最终实现修改计算机密码并启动计算机,思路还是很有趣的,分享给大家。

 

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

 

原理知识

 

当我们使用计算机时,连续按下5次shift键会弹出一个程序,如下图所示:

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

该程序名称为“esthc.exe”,其路径为“c:windowssystem32sethc.exe”。该系统漏洞由于部分Win7及Win10在未进入系统时,可以通过连续按5次shift键弹出sethc.exe应用程序,然后再深入利用调出CMD窗口,通过指令对用户密码进行修改或删除,从而登录不知道密码的计算机。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

其基本流程如下:

  • 首先,在未登录系统时,连续按5次shift键,弹出程序“c:windowssystem32sethc.exe”。
  • 其次,接着强制关机想办法进入“启动启动修复(推荐)”界面,该界面存在一个漏洞,它能打开一个本地的错误TXT文件。
  • 再次,通过TXT文件的打开选项,在未进入系统之前就打开C盘存放“sethc.exe”的位置,接着将cmd.exe程序复制一个副本,并命名为“sethc.exe”。
  • 最后,重启计算机再次按下5次Shift键时,会弹出CMD界面,再输入命令修改登录密码。
连续按5次shift键它会去C盘目录下调用sethc.exe程序,如下图所示。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

注意:部分Win7和Win10系统以及修补了该漏洞,所以系统版本更新和打补丁是我们防御非常重要的手段之一。

 

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

账户密码操作

 

SAM文件存储着Windows的账号和密码,使用Hash算法加密,不可逆。处理方法是爆破处理,但需要花费时间的代价。这里先补充CMD中修改密码的常见命令,通过该方法修改密码。
  • CMD工具路径:c:windowssystem32cmd
  • 用户账户密码存储位置:c:windowssystem32configSAM
  • 修改账户密码:net user 用户名 新密码
  • 创建一个新用户:net user 用户名 新密码 /add
  • 删除用户:net user 用户名 /del
  • 提示管理员:net localgroup administrators 用户名 /add
假设现在需要设置密码,用管理员身份运行CMD。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

为用户“shimisi”设置一个复杂的开机密码。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

接着注销电脑,等待输入密码开机,因为密码过于复杂,我们无法开机。那怎么解决呢?

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

 

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

漏洞验证

 

(1) 重启计算机,当出现“正在启动 Windows”界面时,立刻强制关机电脑。这是模拟现实生活中突然断电或不正常关机的场景,从而弹出“修复模式”。建议大家尽量别在真实的电脑中尝试。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(2) 接着再开机时会进入“windows错误恢复”界面,如下图所示。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(3) 选择“启动启动修复(推荐)”选项,它会启动修复,并弹出如下图所示的对话框。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(4) 接着提示“您想使用‘系统还原’还原计算机吗?”点击“取消”,它会继续尝试修复。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(5) 此时他无法自动修复,弹出新的对话框,如下图所示,通常我们会点击“发送”或“不发送”。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(6) 需要注意的是,这里点击“查看问题详细信息”,漏洞就藏在这里。我们不需要理解它的具体含义,它是微软内部的问题报告。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(7) 我们往下拉,会看到两个超链接,一条是联机远程访问微软的,另一个是脱机访问本地的TXT文件,这里点击第二条。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(8) 我们打开这个文件如下图所示,它的内容是什么我们并不关系,而关系的是它有一个打开文件的按钮。通过该按钮,我们是不是能做点什么呢?即使在没有进入系统的状态。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(9) 点击“文件”->“打开”,可以看到“计算机”。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(10) 双击打开“计算机”,此时虽然没有进入系统,但能够看到磁盘分区,这里的“D”才是真实的C盘。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

打开如下图所示:

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(11) 此时它会有一个本地的记事本,可以通过它打开TXT文件。由于还未进入系统,目前没有用户的概念,所以在这个状态下是以最高权限去进行运行的。接着打开“Windows”->“System32”文件夹,如下图所示:

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(12) 找到“sethc”文件。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(13) 将“sethc”名称修改为“123”,下次再按5次shift键,它就不能再找到这个可执行文件了。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(14) 然后找到“cmd”文件,注意该CMD文件也在该目录下,为什么要找到它呢?我们想做一个偷换,让连续按5次shift键调用CMD,再输入命令修改开机密码。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(15) 点击该程序,右键复制,然后粘贴。防止别对cmd造成修改。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(16) 接着重命名,修改为“sethc”。系统不会验证你内容是什么,只是根据程序名调用可执行程序。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(17) 关闭记事本,然后完成启动计算机。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(18) 此时我们再按5次Shift键,弹出的对话框是CMD,这就非常可怕了。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

(19) 这里可以设置新密码,也可以设置无密码,即net user shimisi “” 。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

此时就能成功进入系统了,是不是很神奇,通过这一连串漏洞,我们成功进入了系统。最好再次启动的时候删除被修改成cmd的“sethc”,同时将“123”名称改回成“sethc”。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

但是这种方法存在一个缺点,如果你自己电脑忘记密码还可以,但如果你修改了别人电脑的密码,别人下次登录就知道了。后面分享一种不修改密码的情况下,以最高管理员权限进入系统。

同时,我们可以调用“net haha feigezuishuai /add”增加新的用户,通过新用户登录系统。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

但haha只是一个普通用户,接着需要将haha用户提权,将它添加到管理员组中。调用命令“net localgroup administrators haha /add”。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

增加成管理员之后,重启电脑此时会有新的用户界面。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

成功以系统管理员的身份进入了操作系统。

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

完成之后我们还需要删除用户,消灭踪迹。调用命令“net user haha /del”。
该漏洞可能已经被Win7和Win10修复,但仍有部分未更新的系统存在,所以系统补丁、版本更新是非常重要的步骤。而黑客也会对比不同版本的补丁进行攻击。

 

连按 5 次 Shift 重改 CMD 和密码并重启电脑,这个漏洞你不能不知道!

总结

 

简单总结下该篇文章的方法:
  • 开启win7虚拟机,开机并设置一个复杂密码
  • 关机再开机,再出现Windows启动界面时强制关机
  • 再开机出现“启动修复(推荐)”及选择该项。如果没有出现,多长时间几次强制关机或者换方法。
  • 出现系统还原提示,点击取消,等待几分钟后,会出现问题原因,点击查看详细信息
  • 打开最后一个链接即一个记事本
  • 记事本中点击打开,并选择显示所有文件
  • 找到sethc并改名为sethc-bak,再找到cmd,复制一份改名为sethc
  • 全部关闭重启
  • 系统启动完毕连续按5次shift键,将弹出cmd工具,使用命令“net user 用户名 新密码”,将当前用户密码修改即可,或者另建一个新用户,并提升为管理员,注销后可再删除新建的用户,这样的好处是不修改当前的用户密码即可登录系统
  • 成功登录系统

转自:https://mp.weixin.qq.com/s/uqnDk_ITKYjeNvCZO0HHjQ

远程桌面连接windows server时出现错误“由于安全设置错误, 客户端无法连接到远程计算机,请确认您连接到网络”

登录一个内网堡垒机时,出现错误提示 “由于安全设置错误, 客户端无法连接到远程计算机,请确认您连接到网络”。

其他人能用够正常连接,应该是本机设置问题,不是服务器配置问题

1:关闭本机的防病毒,防火墙后,还是无效

2:网络是通的,估计还是系统的安全配置问题。

Step 1:打开”本地安全策略”- Win+R 并输入 secpol.msc (或者在”管理工具”中打开);

Step 2:在本地安全策略中,打开“本地策略”下的“安全选项”;

            在右边的策略中,找到“系统加密:将FIPS算法用于加密 、哈希和签名”点击右键属性

            将“本地安全设置”设置为“已禁用”,在单击“应用”,后”确定”,即可远程控制!

设置完成后,顺利远程连接!

ref: https://blog.csdn.net/weixin_33724046/article/details/91727244

生产服务器变慢了,你能谈谈诊断思路吗

 

面试官都这么问了,我能说不能吗?

生产服务器变慢了,一般都是从这几点去分析:服务器整体情况, CPU 使用情况,内存,磁盘,磁盘 IO ,网络 IO

一一来说

top

看服务器整体使用情况,一般都是 top 命令搞定

面试官:生产服务器变慢了,你能谈谈诊断思路吗
img

我知道当你看到这张图的时候,肯定有点儿懵,特别是一个个的数字,这都是个啥?


阿粉带你一行一行的看

第 1 行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)

第 2 行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。一般情况下,只要没有僵死的进程,就没啥大问题。

第 3 行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。

第 4 行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量

第 5 行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量

第 6 行里面主要看 PID 和 COMMAND 这两个参数,其中 PID 就是进程 ID , COMMAND 就是执行的命令,能够看到比较靠前的两个进程都是 java 进程

在当前这个界面,按下数字键盘 1 能够看到各个 CPU 的详细利用率

面试官:生产服务器变慢了,你能谈谈诊断思路吗

 

vmstat

想要了解 CPU 使用情况的话,常用的命令就是 vmstat 。

面试官:生产服务器变慢了,你能谈谈诊断思路吗

 

一般 vmstat 工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔,单位是秒,第二个参数是采样的次数,阿粉这次的命令是:vmstat -n 3 2 意思就是隔 3 秒取样一次,一共取样 2 次

其中主要关注 procs 和 cpu 这两个参数

procs :

  • r :运行和等待 CPU 时间片的进程数,一般来说整个系统的运行队列不要超过总核数的 2 倍,要不然系统压力太大了
  • b : 等待资源的进程数,比如正在等待磁盘 IO ,网络 IO 这种

cpu :

  • us  :用户进程消耗 CPU 时间百分比, us 值高的话,说明用户进程消耗 CPU 时间比较长,如果长期大于 50% 的话,那就说明程序还有需要优化的地方
  • sy :内核进程消耗的 CPU 时间百分比
  • us + sy 参考值为 80% ,如果大于 80% 的话,说明可能存在 CPU 不足

free

查看内存情况用的就是 free , 它主要有三个命令:free free -g free -m ,阿粉是推荐 free -m 为啥呢,咱们瞅瞅它们各自的运行结果就知道了

面试官:生产服务器变慢了,你能谈谈诊断思路吗

 

img

其中:free 命令运行结果显示的非常不友好,看到 3880324 可以快速告诉我它是多大吗?free -g 这个命令四舍五入了,明明给的内存是 4G ,结果使用 free -g 一查看,竟然成了 3G ?excuse me ?如果线上环境出问题了,你说因为内存给的不够,运维说,这锅我可不背


相对来说, free -m 是比较容易看,而且结果也是比较精确的

如果应用程序可用内存/系统物理内存大于 70% 的话,说明内存是充足的,没啥问题,但是如果小于 20% 的话,就要考虑增加内存了

df

如果排查磁盘问题的话,首先要看的就是磁盘空间够不够,还记得阿粉在上家公司的时候,用的还是 svn 出现了一个很神奇的问题,就是哪里都不报错,就是提交不上代码,排查到最后是磁盘空间不够…

所以别问阿粉为啥排查磁盘问题时,第一就是看磁盘空间够不够!!!

查看磁盘空间就是 df 或者 df -h 这两个命令了

面试官:生产服务器变慢了,你能谈谈诊断思路吗

 

iostat

说到磁盘 IO 相信你一定能够想到,在对数据库进行操作时,第一要考虑到的就是磁盘 IO 操作,因为相对来说,如果在某个时间段给磁盘进行大量的写入操作会造成程序等待时间长,导致客户端那边好久都没啥反应,用户体验就降低了吗

检查磁盘 IO 情况的命令就是 iostat ,如果你用的时候发现提示:-bash: iostat: command not found ,那是因为没有安装 sysstat ,安装一下就可以了:yum install -y sysstat

接下来运行命令:iostat -xdk 3 2 ,和 vmstat 命令很像有没有~

面试官:生产服务器变慢了,你能谈谈诊断思路吗

 

这么多指标咱们不需要都关注,只要看其中这几个就可以了:

  • rkB/s :每秒读取数据量 kB ;
  • wkB/s :每秒写入数据量 kB ;
  • svctm :I/O 请求的平均服务时间,单位毫秒;
  • util :一秒中有百分之几的时间用于 I/O 操作,如果接近 100% 说明磁盘带宽跑满了,这个时候就要优化程序或者增加磁盘了

sar

网络 IO 的话,可以通过 sar -n DEV 3 2 这条命令来看,和上面的差不多,意思就是每隔 3 秒取样一次,一共取样 2 次。

其中:

  • IFACE :LAN 接口
  • rxpck/s :每秒钟接收的数据包
  • txpck/s :每秒钟发送的数据包
  • rxKB/s :每秒接收的数据量,单位 KByte
  • txKB/s :每秒发出的数据量,单位 KByte
  • rxcmp/s :每秒钟接收的压缩数据包
  • txcmp/s :每秒钟发送的压缩数据包
  • rxmcst/s:每秒钟接收的多播数据包

这种方式特别简单直观,对新手来说比较容易看到

OK ,下次面试官问你生产服务器变慢了,你能谈谈诊断思路吗?咋不能呢,从服务器整体情况开始说,一直到网络 IO ,再也不怕和面试官扯皮了

 END >

转自:https://mp.weixin.qq.com/s/-ucUYlU9BZ8-o1UmkNYFow

云服务器居然内存不足(只有apache,mysql)

一台小服务器,前几天出现持续地连接不上数据库的情况。

于是进到服务器,重启mysql, 过一会发现,依然连不上,mysql又崩了,查看mysql日志

[Note] InnoDB: PUNCH HOLE support available
[Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
[Note] InnoDB: Uses event mutexes
[Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
[Note] InnoDB: Compressed tables use zlib 1.2.11
[Note] InnoDB: Using Linux native AIO
[Note] InnoDB: Number of pools: 1
[Note] InnoDB: Using CPU crc32 instructions
[Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
[ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12
[ERROR] InnoDB: Cannot allocate memory for the buffer pool
[ERROR] InnoDB: Plugin initialization aborted with error Generic error
[ERROR] Plugin ‘InnoDB’ init function returned error.
[ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
[ERROR] Failed to initialize builtin plugins.
[ERROR] Aborting

[Note] Binlog end
[Note] Shutting down plugin ‘CSV’
[Note] /usr/sbin/mysqld: Shutdown complete

有问题找度娘,结果人家说是 mysql 没有使用swap

$ free
total used free shared buff/cache available
Mem: 1009152 243408 561672 24052 204072 599100
Swap: 0 0 0

好像还真是

于是给系统加上swap

$ sudo fallocate -l 1G /swapfile
$ ls -lh /swapfile
-rw-r–r– 1 root root 1.0G Aug 6 00:34 /swapfile
$ sudo chmod 600 /swapfile
$ ls -lh /swapfile
-rw——- 1 root root 1.0G Aug 6 00:34 /swapfile
$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=acf7347a-7a96-443b-ae73-cf6ea2d6e7f2
$ sudo swapon /swapfile
$ sudo swapon –show
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2
$ free -h
total used free shared buff/cache available
Mem: 985M 240M 541M 23M 203M 582M
Swap: 1.0G 0B 1.0G

重启mysql,貌似有点作用,不过发现还是好慢好慢,访问在等待十几分钟后可以显示出网页,

top – 02:09:49 up 1:11, 2 users, load average: 0.23, 0.10, 0.02
Tasks: 117 total, 2 running, 80 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 1.0 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem : 1009280 total, 301684 free, 399268 used, 308328 buff/cache
KiB Swap: 2097148 total, 1963260 free, 133888 used. 447072 avail Mem

$ free
total used free shared buff/cache available
Mem: 1009280 399296 301480 19832 308504 447044
Swap: 2097148 133888 1963260

看看 apache的配置,稍微调整一下,还是不起作用

<IfModule mpm_prefork_module>
        StartServers                    3
        MinSpareServers          2
        MaxSpareServers         5
        #MaxRequestWorkers        150
        MaxRequestWorkers        20
        #MaxConnectionsPerChild   5000
        MaxConnectionsPerChild   30
</IfModule>

应该是apache吃了太多的内存,导致mysql吃不到,然后mysql直接掀桌子不玩。

短时间内没辙了,还是云服务器加内存吧

原来服务器是活动时买的,1cpu 1G,想要升到2G内存,因为不加钱,居然不给升,发企鹅工单后,才知道只有产生了费用的才给升,于是升到4G。

升好内存后,发现世界原来如此美好,一切又美出天了

这世界归根结底还是人民币玩家厉害。

空下来研究一下apache的内存调优,或者切换到nginx上

参考:

ubuntu 18.04 设置swap 交换分区文件:https://blog.csdn.net/lhs960124/article/details/80446433