“因为我们不能复制一些文件,升级未被安装。这通常是因为存在不一致的文件权限。[文件名] 安装失败”;
解决以上问题的方法是找到该文件的地址,并将文件读写权限修改成777。
以下是CentOS的指令:
chmod 777 [文件名]
如果不用指令,也可以用软件CrossFTP(Mac)或FlashFTP(Windows),右键点击对应文件,选择CHMOD修改权限。
如果不放心777的读写权限,在升级结束后再次将文件夹修改为755。
“因为我们不能复制一些文件,升级未被安装。这通常是因为存在不一致的文件权限。[文件名] 安装失败”;
解决以上问题的方法是找到该文件的地址,并将文件读写权限修改成777。
以下是CentOS的指令:
chmod 777 [文件名]
如果不用指令,也可以用软件CrossFTP(Mac)或FlashFTP(Windows),右键点击对应文件,选择CHMOD修改权限。
如果不放心777的读写权限,在升级结束后再次将文件夹修改为755。
关了Jetpack!
就这插件导致我网站打开至少10秒钟,现在关掉之后好多了。
然后我挂了个腾讯cdn,但是有时会有http error 564的报错,就很头疼。
总之问题大头还是个别插件的问题。
WordPress打开速度堪忧,影响体验。在查询资料的时候了解到可以通过CDN加速来优化网站加载速度,因为服务器用的就是腾讯云,所以最后决定用腾讯云的CDN加速。
第一个问题比较好解决:腾讯云后台能设置http跳转。
第二个问题:参考魏艾斯博客,发现需要调整缓存,因为php等文件缓存更新时间必须设置及时响应,否则会导致功能无法实现。
使用了腾讯云CDN之后Jetpack的Monitor隔一会儿就发邮件给我说网站未加载/已重新加载,非常烦人。而且使用了腾讯云CDN之后加速效果不是很明显,网站打开比之前快了些。
查了下资料,参考了张旭虎《经验分享:我是如何对wordpress博客加速的?/解决腾讯云564错误》,使用了Autoptimize和WP Fastest Cache两个插件,发现加速明显。再挂上腾讯云CDN之后发现还不如不挂,最终抛弃了腾讯云CDN。
经过各种排查,觉得可能需要更新所有内容,包括mariaDB和php相关配套内容(php-fpm等),更新之后依旧如此。
最后迫不得已重新安装了最新的wordpress,安装之前关闭了主题和插件,因为据某篇文章( https://www.v2ex.com/t/240774 )说会影响。重装后登录/wp-admin/install.php设置了一下数据库,最后成功还原。原数据都还在,不影响正常使用。
文件属主属组不对。
使用ls -l指令查看文件权限,大部分文件属主和属组分别是root root,有几个文件是apache root。
使用chown -R u:g file指令修改属主属组,u为属主,g为属组,file为文件或路径。
修改所有文件为root root之后没有解决问题,修改为apache root后解决问题。
查了一下类似的问题,多是因为数据库内存不足而无法分配资源。使用了创建swap分区的方式,目前已不再崩溃。
分配512M的交换分区:
dd if=/dev/zero of=/swap.dat bs=1024 count=524288
mkswap /swap.dat
swapon /swap.dat
free -m
为了让系统自动挂载swap分区,编辑/etc/fstab并添加一行:
/swap.dat swap swap 0 0
重新启动MariaDB,没有再出现崩溃问题。
参考资料:https://linux.it.net.cn/e/data/MariaDB/2014/1014/6509.html
看起来分配512M空间不够,上次又崩了,于是调整了一下,重新分配了5G交换空间,妈妈再也不用担心我的数据库崩溃了。
设置目录访问权限为777,但是存在遭到攻击的隐患,而且我设置了也没有用。
chmod -R 777 /usr/share/wordpress(WordPress的目录)
在服务器后台通过cd定位到wordpress的content目录,发现有部分文件夹权限组和用户是root,有部分文件夹是apache和ftp。
安装的主题或者插件用的服务器为 Apache,所以直接授权apache访问权限即可。 通过chown设置权限组的权限。
chown -R apache:root /usr/share/wordpress
第一个方案测试无效,第二个方案有效。
图片可以正常上传,说明不是文件夹权限的问题。网上没有搜到和非法JSON响应相关的内容。怀疑是无法上传比较大的文件导致。
因为之前已经调整过Wordpress的文件最大上传限制了,所以不太可能是Wordpress的问题。
治标不治本的方法:把音频文件直接放进/wp-content/uploads/目录下面,插入音频时输入URL。
虽然可行,但是后台媒体库不显示该文件,无法方便管理。且每次添加文件得用FlashFXP传,非常麻烦。
根据https://yq.aliyun.com/articles/625723 所述,修改nginx.conf,在http段添加代码如下:
client_max_body_size 100m;
服务器输入指令重启nginx:
systemctl restart nginx
重启后测试可以正常上传音频了。
怀疑是因为内存限制过小导致的。
在wp-config.php文件内添加代码如下:
define(‘WP_MEMORY_LIMIT’, ’128M’);
其结果是在网站首页顶部出现了如下代码:
Constant WP_MEMORY_LIMIT already defined in /etc/wordpress/wp-config.php on line 104
看起来是对于内存限制的代码重复了。
根据https://blog.csdn.net/qq_17087739/article/details/48137359的描述去修改了/wp-includes/default-constants.php里的相关代码:
// set memory limits
if( !defined('WP_MEMORY_LIMIT') ) {
if( is_multisite() ) {
define('WP_MEMORY_LIMIT','128M');
}else{
define('WP_MEMORY_LIMIT','64M');
}
}
if( ! defined('WP_MAX_MEMORY_LIMIT') ) {
define('WP_MAX_MEMORY_LIMIT','256M');
}
将其改为了:
// set memory limits
if( !defined('WP_MEMORY_LIMIT') ) {
if( is_multisite() ) {
define('WP_MEMORY_LIMIT','256M');
}else{
define('WP_MEMORY_LIMIT','256M');
}
}
if( ! defined('WP_MAX_MEMORY_LIMIT') ) {
define('WP_MAX_MEMORY_LIMIT','256M');
}
并且将解决方案一里添加的代码去掉。目前正在观望结果。
目前依旧偶尔会崩溃。
结合前段时间解决的问题汇总(近期解决的WordPress相关问题),猜测是因为数据库内存不足,无法分配资源,而导致mariaDB崩溃。解决方法已在文章里说明。