WordPress 通过nginx代理后跳转127.0.0.1

由于配置了nginx代理后,系统会自动跳转127.0.0.1,导致无法登录,无法通过页面进行修改域名配置。此时可以通过数据库进行直接修改。

登录数据库,找的wp_options表

修改

MariaDB > select * from wp_options where option_name=’home’ or option_name=’siteurl’;

option_idoption_nameoption_valueautoload
2siteurlhttps://abc.com on
3homehttps://abc.com on

修改option_value 为域名即可。

WordPress 升级php踩坑日志

wordpress收到了php升级提醒,由于操作系统比较旧,官方源并未提供php7.4版本,从网上搜了好多教程,一步步做下来,还是遇到了两个报错“您的PHP似乎没有安装运行WordPress所必需的MySQL扩展”、“此站点遇到了致命错误。”,心情顿时奔溃。

多个教程加上踩坑经历整理出安装教程如下

第 0 步:禁用旧版本

a2dismod php7.0
service apache2 restart 

注意是 restart 不是start。第一次安装由于没有注意重启导致安装后找不到mysql模块

第 1 步:添加 PHP PPA 存储库

我们将使用 PPA 存储库,其中包含最新的 PHP 构建包。但要先安装依赖包。

sudo apt update
sudo apt -y install software-properties-common

添加存储库:

sudo add-apt-repository ppa:sergey-dryabzhinsky/php74
sudo add-apt-repository ppa:sergey-dryabzhinsky/php7-modules
sudo add-apt-repository ppa:sergey-dryabzhinsky/backports
sudo add-apt-repository ppa:sergey-dryabzhinsky/packages

步骤2:在Ubuntu 18.04/16.04上安装PHP 7.4

使用以下命令在 Ubuntu 上安装 PHP 7.4:

sudo apt -y install php7.4

检查安装的版本:

$ php -v
PHP 7.4.33-SergeyD/6.1 (cli) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

使用以下命令安装其他软件包:

sudo apt install php74p-mod-{mysqlnd,bcmath,bz2,gd,intl,mbstring,zip,json} 

注意应该是mysqlnd,mysql不行,许多文档写的是mysql

与Apache相关的PHP配置存储在/etc/php74/apache2/php.ini

安装完确认PHP版本:

$ php –version
PHP 7.4.33-SergeyD/6.1 (cli) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

将 PHP 7.4 与 Apache 结合使用

安装 Apache PHP 模块。

sudo apt install libapache2-mod-php74

安装完执行

a2enmod php74 && service apache2 restart 重要

问题解决:

1、安装完成后启动apache 访问wordpress 报“您的PHP似乎没有安装运行WordPress所必需的MySQL扩展

php -m 没有mysqli mysqlnd的相关内容

~# php -m
[PHP Modules]
bcmath
bz2
Core
ctype
date
filter
gd
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Reflection
session
shmop
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
zip
zlib
[Zend Modules]

或者在wordpress 根目录创建phpinfo.php 文件

<? php phpinfo(); ?>

浏览器访问查看是否有mysql模块

按上面的步骤重装了N遍还是找不到mysql模块,考虑可能是卸载不干净,然后使用彻底删除(见彻底删除php

最后找到原因竟然是由于没有service apache2 restart导致

2、解决mysql后报此站点遇到了致命错误。

开启调试模式

一、开启 WP Debug 模式访问主页显示错误详情Call to undefined function json_decode()

开启 DEBUG 模式显示详细的错误信息。

打开 WordPress 配置文件 wp-config.php,将 WP_DEBUG 这一行修改为如下代码即可:

// 开启WP_DEBUG模式

define( ‘WP_DEBUG’, true);

// 开启DEBUG日志,一定要记得关闭这个日志功能并清理这个日志文件哦,产生的日志文件在: /wp-content/debug.log

define( ‘WP_DEBUG_LOG’, true);

// 显示errors and warnings

define( ‘WP_DEBUG_DISPLAY’, true);

@ini_set( ‘display_errors’, ‘On’);

调试好后,请千万记得关闭 DEBUG 模式,即将上述内容改回:

define( ‘WP_DEBUG’, false);

二、开启json

修改/etc/php74/apache2/php.ini

追加 extension=json

然后重启apache2,正常访问


Ubuntu彻底删除PHP7.0

一、删除php的相关包及配置

sudo apt-get autoremove php7.0* 注意修改为实际要删除版本

二、删除关联

sudo find /etc -name “*php7.0*” |xargs  rm -rf 

三、清除dept列表

sudo apt purge `dpkg -l | grep php7.0 | awk ‘{print $2}’ |tr “\n” ” “`

四、检查是否卸载干净(无返回就是卸载完成)

 dpkg -l | grep php7.0

WordPress 添加备案号

Linux Find 查找包含空格文件名

如果找到的文件名代空格上面的命令运行就可能会出问题了有一个参数-print0,于默认的-print相比,输出的序列不是以空格分隔,而是以null字符分隔。而xargs也有一个参数-0,可以接受以null而非空格间隔的输入流。所以说xargs简直就是为find而生的。上面的问题就很好解决了:
find ./ -name '*.bak' -print0 | xargs -0 rm -rf

Linux Find 按修改时间查找文件

Find -mtime n   n表示从现在开始的第n天内的改动,即0表示今天内,1表示昨天内
0: (-1,0)
1: (-2,-1)
2: (-3,-2)
(-n-1,-n)*24

-n表示n天内 (-n,0)
+n表示n天前 (-oo,-n)

find命令 -- 之查找指定时间内修改过的文件
比如我们要查找linux下指定时间内做过改动的文件,我们可以用find命令,其实find命令的功能十分强大,下面我们通过几个简单的例子来学习下find命令的简单用法:
find /opt -iname "*" -atime 1 -type f
找出 /opt 下一天前访问过的文件
选项 OPTIONS
所有的选项都总是返回真值,它们总会被执行,除非放在表达式中执行不到的地方。因此,清楚起见,最好把它们放在表达式的开头部分。
-daystart
从当日起始时开始而不是从24小时之前,计算时间(for -amin, -atime, -cmin, -ctime, -mmin, and -mtime)。
-amin n
对文件的最近一次访问是在 n 分钟之前。
-anewer file
对文件的最近一次访问比 file 修改时间要晚。如果命令行中 -follow 在 -anewer 之前,(也只有在这种情况下 -anewer会受 -follow 的影响)。
-atime n
对文件的最近一次访问是在 n*24 小时之前。
-cmin n
对文件状态的最近一次修改是在 n 分钟之前。
-cnewer file
对文件状态的最近一次修改比 file 修改时间要晚。如果命令行中 -follow 在 -cnewer 之前,(也只有在这种情况下-cnewer 会受 -follow 的影响)。
-ctime n
对文件状态的最近一次修改是在 n*24 小时之前。
-mmin n
对文件数据的最近一次修改是在 n 分钟之前。
-mtime n
对文件数据的最近一次修改是在 n*24 小时之前。
-mtime : 指定时间曾被改动过的文件,意思是文件內容被更改过
-ctime : 指定时间曾被更改过的文件,意思是文件权限被更改过
-atime : 指定时间曾被存取过的文件,意思是文件被读取过
1.  时间是以 24 小时为一个单位,而不是以天的
2.  2011/09/08 12:00 时间开始找一天內的,会列出 2011/09/07 12:00 ~ 2011/09/08 12:00 时间內的文件
找出 3 天"以前"被改动过的文件 (前第三天以前 → 2011/09/05 12:00 以前的文件) (> 72 小时)
	1. find /var/log/ -mtime +3 -type f -print  
找出 3 天內被改动过的文件 (2011/09/05 12:00 ~ 2011/09/08 12:00 內的文件) (0 ~ 72 小时內)
	1. find /var/log/ -mtime -3 -type f -print  
找出前第 3 天被改动过的文件 (2011/09/04 12:00 ~ 2011/09/05 12:00 內的文件) (72 ~ 96 小时)
	1. find /var/log/ -mtime 3 -type f -print  
找出第 3 天被改动过的文件 (也可以这样写)
	1. find /var/log/ -mtime +2 -mtime -4 -type f -print  


+	2	2天前
-	2	2天内
无	2	第2天
+2   -4		2天前4天内即第3天



-exec语法格式为: 
-exec command {} \;  

在{}和\之间必须要有空格,否则会报上面的错。

Find 查找正则排除文件

Find 逻辑
!,-not  非
-a,-and 与
-o,-or,逗号 或
排除某文件
Find . \! -name "zhang" -type f 
查找或
Find . -regex '.*\.txt\|.*\.doc'


find  . -type f -name "*.java[0-9]*"  //java后面有一位数字后面任意



查找特定目录下的jar
find . -type f -path "./lib" -prune -o -name "*.jar" 
排除lib目录
find . -type f -not -path "./lib*"
只查找一级目录
Find . -type f -maxdepth 1 

find -type f -mtime -30 | grep  -v -P "log|_jsp|\.class" |grep java
腾讯云图