https://cloud.189.cn/t/iYVBruFnAbYj(访问码:lqt6)
WordPress 中文分词搜索
上图是改进之后的搜索效果,wordpress的搜索按照网上的说法做的比较烂,貌似是全字段匹配,于是搜索上面的关键词”ida调试器”就出现了下面的状况,啥都没有:
WordPress 优化404页面
wordpress主题自带的404页面过于简单,只是显示了一个page not found,左侧区域空荡荡的,与右侧的侧边栏搭配丑的一p。于是就尝试进行改造了一下,第一次改造在404页面加了下部的随机文章。代码如下:
<!-- 显示随机文章 --> <h4 class="entry-title"> <?php esc_html_e( 'Random Posts' , 'olsen-light' ); ?> </h4> <div> <?php $args = array( 'numberposts' => 20, 'orderby' => 'rand', 'post_status' => 'publish' ); $rand_posts = get_posts( $args ); foreach( $rand_posts as $post ) : ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?> - <?php the_modified_date(); ?></a></li> <?php endforeach; ?> </div>
BuddyPress Theme Remove Sidebar
主体自带了buddypress插件,于是整体的就多了一个buddypress的成员页面,但是由于我的侧边栏比较长,那么这个页面看起来就非常的蛋疼,左侧的内容只有一点点,右边长的一p。于是就想改一下去掉侧边栏,大致搜了以下没有找到合适的插件,那就只能自己动手了。根据这篇文章的内容可以知道,影响页面的其实是page.php。那么直接对page.php动手,参考这篇文章的内容,可以创建一个子主题来实现相关功能,我没有安装插件也不想创建什么新的子主题了,直接在原始的文件上动手。解决问题的方案也比较简单,判断当前页面是不是buddypress相关的页面然后根据情况进行处理即可。
文章中提到了这么一个函数:bp_is_blog_page(),参考http://hookr.io/functions/bp_is_blog_page/的说明:
You can tell if a page is displaying BP content by whether the current_component has been defined.
更新Blog服务器配置
从14年开始使用这台vps服务器,最近发现jetpack出了问题。貌似是更新php版本之后,新的php-xml模块没有安装,尝试更新相关模块的时候首先要更新epel-release,问题是更新了epel-release之后yum命令就挂了,提示找不到xz!
于是问题就演化成了先有鸡还是先有蛋的问题,如果要解决这个问题那么:
- 删除epel-release 7,安装6,然后yum安装xz,xz安装成功之后更新epel-release
- 直接编译安装xz:
wget https://sourceforge.net/projects/lzmautils/files/latest/download?source=typ_redirect mv download\?source\=typ_redirect xz.gz tar -zxvf xz.gz make &make install
ngix+uwsgi+django 以及阿里云rds数据库数据导入
网上关于如果通过nginx来运行django的文章还是蛮多的,但是有的地方写的可能不够细致,于是在实际操作的时候可能会出现一些问题,具体可以参考这个链接:https://www.cnblogs.com/frchen/p/5709533.html。但是实际在不熟的时候却发现uwsgi的配置文件貌似不怎么好用,于是去官网看了一下,近习惯了修改:
[uwsgi]
socket = 127.0.0.1:8001
chdir = /var/www/html/
wsgi-file = Project/wsgi.py
processes = 4
threads = 2
stats = 127.0.0.1:9191
#stats=%(chdir)/uwsgi/uwsgi.status
pidfile=uwsgi.pid
buffer-size = 65536
需要注意的一点是,这个chdir 是项目的根目录,也是工程文件的父目录,后面的wsgi-file则是工程目录和wsgi文件的结合路径,如果这个搞错了,后面的就直接跑不起来了。此时就可以通过uwsgi uwsgi.ini来启动服务了,但是如果此时通过浏览器直接去访问http://192.168.1.100:8001这个地址很有可能是失败的。要配置好nginx的代理之后通过nginx进行访问,nginx配置文件如下:
django 1452, ‘Cannot add or update a child row: a foreign key constraint fails
网上这个问题搜索的概率非常高,但是实际上解决方法并不是非常完美,例如删除数据库重建什么的。由于刚开始的时候没有设计用户模块,中间添加的用户模块,此时数据库已经有很多数据了,如果删除数据重新创建是显然不可能的,于是搜索了一下,https://blog.csdn.net/qingche456/article/details/58153741 这个帖子中的方法确实能够解决问题,但是并不是十分完美,作为一个强迫症患者,一定要解决这个问题,而不是用这种投机取巧的办法。
我这里出现这个问题的原因在于,新建的用户表用户数量已经超过了原有的auth_user数据数量,所以外键已经无法获取到正确的用户id。原始的约束如下
ADD CONSTRAINT `django_admin_log_user_id_52fdd58701c5f563_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`);
而我新创建的用户model为h4ckUser_hackuser,于是新创建的用户都会增加到h4ckUser_hackuser表中,而不是默认的auth_user表中。要解决这个问题就需要修改外键约束,我用phpmyadmin
后台发现无法修改这些数据。于是只好重建一个新表,然后将两个表名称替换。此时这个问题就完美解决了,新建的表注意将上面的代码改成
ADD CONSTRAINT `django_admin_log_user_id_52fdd58701c5f563_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `h4ckUser_hackuser` (`id`);
此时在后台新建用户以及各种操作就完全没有问题了,日志系统也会正常进行记录。
另外如果migrate失败,可以尝试删除migration下最后生成的文件,同时对数据库中新增加的数据进行删除。然后重新直接make migraions和migrate,为了稳妥还是最好天前进行系统备份,例如快照系统和mysql备份。
discuz x3.x 论坛图片不显示 none.gif
废话不多说,我遇到的情况是换了模版之后图片就不显示了。于是感觉是js出了问题,搜索图片的标签名称,找到了两个不同的js。并且在正在使用的js里面中文乱码了,如下图。解决方法也很简单,直接上传原始js替换掉现在使用的js。出现这个问题的原因在于模版转换工具从gbk转到utf的时候出了问题,事实上js文件不用转换。
另外如果遇到同样的问题,也有可能是别的原因导致的,如果切换模版之后出现上面的状况,可以参考我的方法。另外的原因请参考这个链接;
https://www.baidu.com/baidu?tn=monline_3_dg&ie=utf-8&wd=discuz+%E5%9B%BE%E7%89%87%E4%B8%8D%E6%98%BE%E7%A4%BA+none.gif