日度归档:2020年4月24日

Mysql受到爆破攻击导致内存不足挂掉

PHP游戏挂掉,游戏日志里全是mysql的报错,查看/var/log/mysql/mysqld.log,发现受到爆破攻击

截图记录

使用sytemctl restart mysql始终报错,最后在mysqld.log中发现报错:

是系统空间不足导致的,清理系统空间,见CentOS清理/dev/vda1系统盘

这次删掉的是16G大小的/usr/local/php/var/log/php-fpm.log,可怕

随后在控制台关掉了以前没注意到的端口访问问题,现3306端口只能指定IP访问,可避免爆破攻击。

参考:惊魂未定,回忆mysql挂掉运维历程

WordPress问题汇集

1、wordpress安装主题报错Unable to locate WordPress Content directory

2、参考:让WordPress的摘要显示自定义排版格式

WordPress默认摘录的功能是在wp-includes/formatting.php这个文件里,我们要修改的只有主题functions.php文件,请把下面的代码加入到functions.php文件中

remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'improved_trim_excerpt');
function improved_trim_excerpt($text) {
        global $post;
        if ( '' == $text ) {
                $text = get_the_content('');
                $text = apply_filters('the_content', $text);
                $text = str_replace('\]\]\>', ']]>', $text);
                $text = preg_replace('@<script[^>]*?>.*?</script>@si', '', $text);
                $text = strip_tags($text, '<p>');
                $excerpt_length = 80;
                $words = explode(' ', $text, $excerpt_length + 1);
                if (count($words)> $excerpt_length) {
                        array_pop($words);
                        array_push($words, '[...]');
                        $text = implode(' ', $words);
                }
        }
        return $text;
}

3、 WordPress提示“在裁剪您的图像时发生了错误”的解决方法 问题:在WordPress中使用裁剪图片功能时,出现:”在裁剪您的图像时发生了错误。”或者”There has been an error cropping your image.” 原因:缺少PHP GD库。 CentOS: yum install php-gd 安装PHP-GD库后重启服务器应用即可使用~ ​​​​

4、修改wordpress中twentytwelve主题显示文章摘要,先在控制台-设置-阅读里,选择摘要,再在wp-content/themes/twentytwelve/content.php文件中找到is_search(),后面会有批注:// Only display Excerpts for Search,添加is_category() || is_archive() || is_home()判断条件,在这些情况下都显示摘要,只有查看文章时才全部显示。

修改后为:if ( is_search() || is_category() || is_archive() || is_home()) : // Only display Excerpts for Search category archive home

5、修改Foot显示居中,在控制台-外观-主题编辑器中,找到Footer.php,修改为:

6、手动更新wordpress:美国服务器太慢了!!在这里找最新的安装包,在服务器端使用:wget 下载地址下载安装包并解压,删除wp-content:rm -rf wordpress/wp-content
将wordpress文件夹更名为网站根目录名:cp -r wordpress wpSampleName
修改读写权限:chmod -R 777 wpSampleName
拷贝覆盖:cp -rf /hxxe/fxxxxqi/wpSampleName /var/wxx/hxxx
访问http://你的博客地址/wp-admin/upgrade.php手动更新

参考:linux下载文件命令
wordpress一键全站迁移和备份
WordPress 5.2手动更新详细教程
Centos7解压Zip文件
CentOS下cp直接覆盖命令的方法

7、更新下载失败。: cURL error 28: Operation timed out after 300000 milliseconds with 949869 out of 13920060 byte。原因:下载太慢,建议手动更新,见6。

8、删除默认评论:控制台-设置-讨论,默认文章设置里的前两项取消勾选,参考原文

Linux常用命令

文件操作

查找文件或文件夹:find / -name 文件名或文件夹名
移动/重命名文件:mv 完整文件路径名1 新的完整文件路径名2
复制文件:cp 完整文件路径名1 新的完整文件路径名2

参考:centos彻底删除文件夹、文件命令

网络

查看开放端口:netstat -lnpt
检查端口被哪个进程占用:netstat -lnpt |grep 5672
查看进程的详细信息:ps 6832
中止进程:kill -9 6832

常用

查看状态:systemctl status nginx
启动服务:systemctl start nginx
开机启动:systemctl enable nginx
停止开机启动:systemctl disable nginx
停止服务:systemctl stop nginx
重启服务:systemctl restart nginx
firewalld指令集

wordpress安装主题报错Unable to locate WordPress Content directory

1、 chmod -R 777 wordpress #提高网站文件夹权限

2、在wp-config.php末尾加上下面的代码片段:

if(is_admin()) {
add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
define( 'FS_CHMOD_DIR', 0751 );
}

参考:安装主题 Unable to locate WordPress Content directory (wp-content)

Unit mysql.service could not be found解决

方法一

1、首先你需要找到 mysql.server 文件,这个 和 mysqld 文件是一模一样的,只不过文件名不相同
执行命令
find / -name mysql.server
找到文件后,将它复制到/etc/init.d/ 目录下,并重命名
cp /phpstudy/mysql/support-files/mysql.server /etc/init.d/mysqld
再运行 service mysql status

方法二

如果上面的没能解决你的问题:

 $   yum install -y mariadb-server 
 $   systemctl start mariadb.service  
 $   systemctl enable mariadb.service 
 $   mysql_secure_installation 
[mysql]> use mysql; 
       > select  User,authentication_string,Host from user; 
       > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; 
       > flush privileges; 

参考:Failed to start mysqld.service: Unit not found

WordPress安装过程记录

1、下载wordpress包,官网: https://cn.wordpress.org/ ,注意下载的语言版本,git官网默认是英文版。
github: https://github.com/WordPress/WordPress
中文版百度云备份:https://pan.baidu.com/s/1aqzvl3hmquwsPy4eiagXzA 提取码:dhnw
中文要在wp-config.php或wp-config-sample.php中添加或修改
define('WPLANG','zh_CN');
define('WP_DEBUG',false);

2、上传到域名指向的根目录下,注意不要修改wp-config-sample.php文件名。

3、在mysql数据库中建立一个utf8的database,安装时需用。

4、进入首页,按照提示填写相应的信息,安装完毕。

注意:中间遇到错误,请查看日志报错:/var/log/mysql/mysqld.log,/var/log/nginx/access.log,/var/log/nginx/error.log

过程报错1:数据库连接错误→swap空间不足,解决办法
过程报错2:PHP文件读取不出来→9000端口未监听
过程报错3:缺少相关的的PHP拓展→常见必须拓展json、mysql,使用php -m查看已安装拓展,安装方法
过程报错4:主题下载无写入权限→设置wp-config.php

参考:如何安装wordpress
CentOS 下三种 PHP 拓展安装方法
wordpress界面汉化
FATAL ERROR: CALL TO UNDEFINED FUNCTION JSON_DECODE()解决办法
Nginx出现403 forbidden

Linux CentOS firewall指令集

1、firewalld的基本操作

启动: systemctl start firewalld
查看状态: systemctl status firewalld 
停止: systemctl disable firewalld
禁用: systemctl stop firewalld

2、使用firewalld

查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd--zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息:  firewall-cmd--get-active-zones
查看指定接口所属区域: firewall-cmd--get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
开启一个端口:firewall-cmd --zone=public --add-port=80/tcp --permanent   (--permanent永久生效,没有此参数重启后失效)
查看:firewall-cmd --zone=public --query-port=80/tcp
删除:firewall-cmd --zone=public --remove-port=80/tcp --permanent
查看firewall是否运行,下面两个命令都可以:
systemctl status firewalld.service
firewall-cmd --state
查看当前开了哪些端口,一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件:firewall-cmd --list-services
查看还有哪些服务可以打开:firewall-cmd --get-services
查看所有打开的端口: firewall-cmd --zone=public --list-ports
重新载入/更新防火墙规则: firewall-cmd --reload
指定端口:firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="5432" accept"
指定端口段:firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="5432" accept"

参考:CentOS7为firewalld添加开放端口及相关操作
centos7 firewall指定IP与端口访问(常用)