Blog

树洞来到日本啦

历时几天,搬家完成。服务器以及数据库全部换到了东京的服务器上。记录一下搬家快结束时候遇到的坑。 搬家途中就不说了,都是泪。到了最后一步,网页数据已经转移了过来,数据库也在东京克隆可一模一样的,并且wordpress配置文件的数据库地址已经换了过来。其中我的事情比其他人麻烦的一步是我之前服务器启用了SSL,也就是网址是https://shuspieler.com,现在新的服务器为了降低性能消耗,打算后端不启用加密,前端通过CDN实现SSL小绿锁。所以需要把数据库中一些链接换过来。我不会SQL语法,从网上看例程还是挺简单的,结合phpmyadmin执行下边的语句: UPDATE wp_options SET option_value = REPLACE(option_value,’旧地址’,’新地址’); UPDATE wp_posts SET post_content = replace(post_content,’旧地址’,’新地址’); UPDATE wp_posts SET post_excerpt= replace(post_excerpt,’旧地址’,’新地址’); UPDATE wp_posts SET guid= replace(guid, ‘旧地址’,’新地址’); 其中wp_post 是表单名,REPLACE中第一项是表单中某一项的名字,我不知道那个专业名词叫啥。这四个地儿涵盖了绝大部分需要该链接的地儿,反正结合phpmyadmin看有没有落下其他的,尤其第三方插件保存的数据中。 接下来是最坑的,弄了好久,感觉十点半可以收工了,刷了一下首页成功,然后打开后台管理页面成功,可是所有的文章页面都是404 Not Found。夜已深,我对于这个现象没有任何头绪。。。 而且在wordpress设置中将自定义固定连接还原成默认的形式,类似于这样http://blog.shuspieler.com/?p=123就显示正确,而这类的网址简直反人类,我之前自定义成为http://blog.shuspieler.com/%post_id%/形式,类似于这篇最后就会张这样:http://blog.shuspieler.com/742/ 搬家后,除了首页可以正确显示,其他页面都是Not found。换成默认链接就可以显示,不能有任何自定义的固定链接形式。所以怀疑是rewrite-mod出问题了。之前一步一步搭建过一遍,还是有作用的。虽然我记得之前那个模块不运行的话wordpress会提示,而这次并没显示。我还是查了查我的服务器。果然默认关闭。 ubuntu的apache2中rewrite-mod开启方式是这样的: sudo a2enmod rewrite 然后修改apache2的配置文件: sudo vim /etc/apache2/apache2.conf 将其中/var/www/下的AllowOverride 从None改成All。注意这个文件中有好几处AllowOverride,这个地方的最关键。 <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> 然后重启apache2:

树洞来到日本啦 Read More »

树洞一年了,要搬家啦

去年6月底开始使用的亚马逊AWS,现在正好一年。免费套餐也用完了,正好我有两个帐号,也结合国内访问需求,马上准备将树洞搬到东京啦。 选东京主要是照顾国内需求,我在这儿使用cloudflare加速的情况下体验几乎没区别,也就我一人访问,属于我的秘密花园,性能负荷上也不是问题。 翻看一年的帖子,最大一个感慨是为何不早点找个稳定的地方搭建博客。从高中就知道这个新鲜事物,如果那时候足够敏锐的话我现在也是十年老博主,能沉淀下来多少技术学习文档,以及更为珍贵的当时的心情。 往者不可谏,来者犹可追。种一棵树最好的时间是十年前,其次是今天。 当我的博客到达新的家后,我要常回家看看啦。越来越喜欢我的这个名字: 树洞:我的家。

树洞一年了,要搬家啦 Read More »

时隔一个月,终于从百度的沙盒走出来了

作为一个中文为主的个人博客,一直看不到百度收录,这还是很影响心情的。其间又是主动推送,又是生成sitemap,只见百度蜘蛛过来爬却不见出现在搜索结果中。一个多月过去了,今天顺手一下,百度直接搜索域名已经不再提示没有收录而是可以显示我的网站了。虽然现在搜索关键字还不能出现结果但是已经是进步的表现。打开站长工具,也同时弹出一个让输入备案号的窗口,看来不备案的权重要被降低是毫无疑问的事情啊。 站长工具提示输入备案号的窗口 同样是搜索引擎,google能做到我开通网站当天就存入收录,到现在为止,已经收录了我23个网址了。   2017.08.25 更新 百度搜索我的昵称shuspieler已经可以看到我的主页了。可是现在权重还没有我的微薄知乎高。

时隔一个月,终于从百度的沙盒走出来了 Read More »

mod_rpaf模块对于https的支持:Apache2.4获取使用CDN后访客的真实ip (基于Amazon Linux EC2)

与上个文章有关,魔门云:一家免费套餐中支持https的CDN,我的主机在法兰克福,使用魔门云CDN给国内的朋友加速。效果很不错但是有个小瑕疵就像我在那个帖子说的那样,统计插件里边的ip都成了CDN服务器的ip,标识地址的国旗全变成了香港旗帜,Apache的log也统一记录的只有那几个CDN的来访地址。 查询网上帖子了解到这个插件:mod_rpaf模块,解决Apache服务器在CDN后获取真实ip的问题。我总结了一下安装过程,还是挺简单的。 首先官方yum库里边没有这个插件,需要从网上找资源下载,很多帖子都贴出一些地址,可是这些地址很容易失效或者出现不同版本linux兼容问题,甚至还有可能出现带病毒的问题。所以在我的教程中直接从作者github下载源码编译,这样上边的所有问题都一次性解决,最为理想的方式并且也不复杂。 首先安装一些git以及编译需要用到工具: sudo yum install git make gcc httpd24-devel vim(对于apache版本httpd24-devel可能不同) 然后下载mod_rpaf源码: git clone https://github.com/gnif/mod_rpaf.git 编译,安装: sudo make sudo make install 在Apache配置文件中添加对这个模块的加载以及配置信息,可以直接添加在httpd.conf中在我的系统中这个文件在/etc/httpd/conf/httpd.conf,很多教程也是这样讲的,但是我看在我的虚拟机中默认把模块的配置文件分出来了放在了/etc/httpd/conf.modules.d(这些扩展配置文件都是被主配置文件httpd.conf调用的),为了保持统一,我也就学习系统默认的样子将这个模块的配置放在这个文件夹: sudo vim /etc/httpd/conf.modules.d/mod-rpaf.conf 将下边内容填入这个文本: LoadModule rpaf_module modules/mod_rpaf.so RPAF_Enable On RPAF_Header X-Forwarded-For RPAF_ProxyIPs 119.28.0.0/16 106.75.0.0/16 120.132.0.0/16 121.201.0.0/16 139.198.0.0/16 43.255.29.0/24 103.74.193.0/24 RPAF_SetHostName On RPAF_SetHTTPS On RPAF_SetPort On RPAF_ForbidIfNotProxy Off 其中,RPAF_ProxyIPs后边需要填CDN服务器的ip,这个可以从CDN帮助文档中找到,比如说我用的魔云门类似于这样的:https://docs.cachemoment.com/faq/using/ip-list.html。 这样Apache服务器就能识别X-Real-IP 和X-Forwarded-For 两个标签。找到下边的这配置日志记录的一段,替换成下边的内容: <IfModule log_config_module>

mod_rpaf模块对于https的支持:Apache2.4获取使用CDN后访客的真实ip (基于Amazon Linux EC2) Read More »

将服务器php版本升级到了7.0

有危险但是一切安好的升级   之前在将网站升级到https的途中,一直找不到mod_ssl该安装哪个。直接yum install mod_ssl提示与php版本不兼容,索性我就将之前的httpd卸载,然后直接yum install httpd,不带任何数字。当然最后挺成功的,虽然我都不知道安装都是哪个版本都apache以及php。 之后在wordpress后台老是一个大大都警告,以及很多插件用不了,phpmyadmin也用老版都才行,而且那个警告说我用的版本已经不提供支持了,所以决定更新到最新版php70。 先停用apache:service httpd stop 卸载旧版本:yum remove httpd 可以看到一些相关都包也被卸掉了,我的结果是这样的: Dependencies Resolved ================================================================================ Package       Arch         Version                   Repository           Size ================================================================================ Removing: httpd         x86_64      

将服务器php版本升级到了7.0 Read More »

我的小绿锁

弄了一晚上,我得小绿锁终于在一天结束之前来临了。 我遇到的事情中,实际去实践用掉的时间,远远要大于我之前预估的时间。超过九成的事情是这样。是程序员的通病吗?我觉得那也仅仅是个借口,先得在自己身上找找原因。那么问题来了,为何我的效率总是这么慢呢? 跑题了,我得小绿锁来了好开心,中间一波三折差点把我的网站搞挂掉,还好又救了回来并且对于阿帕奇和php的关系更加清晰了一些。好开心好开心 感觉不管在这个方面我有没有很大的成就,至少我做这些事情的时候心情特别的棒。我是一个热情洋溢的冒牌程序员啦~~~~

我的小绿锁 Read More »

写给被亚马逊扣的费

一直博客没有一个稳定的平台,各个地方打一枪换一炮,有时候免费空间用完了连带着我的个人网站也被收回了,而每次各个地方的资源也没有做到同步,想想挺可惜的。 文章题目说写给被亚马逊扣的费,算是给自己的嘲讽吧。在玩AWS之前了解了很多信息就说为了避免这种事情发生,可是开始掉坑里了。这次产生费用的原因我已经找到,由于我同时在两个地方运行了两个实例,所以总时间超了。感觉也有亚马逊的原因,他们有个地方显示总实例数量,而这个我后来才知道,是不同数据中心分开的。所以我在法兰克福数据中心看到只有一个实例,而往里了在美国也曾经打开过一个而没有删掉。 听说亚马逊客服是世界上最可爱的人,我一会儿去体验一下。

写给被亚马逊扣的费 Read More »

我在微软Azure上边的博客

经过一天的尝试,我在微软Azure上边的博客终于搭建好了。作为记录搭建过程,或者说自己的此刻的想法心得,在此稍微记录一下。 无意间看到微软给予学生的优惠大礼包中,Azure可以免费使用Web应用。虽然没怎么搞清楚啥叫web应用,但是看着像可以搭建自己的一个网站的样子。在免费资源中,有1GB的硬盘储存空间,还有1GM的RAM,还有CPU使用率什么的,虽然不多,但是对于简单的学习搭建一个wordpress已经绰绰有余了。由于并不是给了一个虚拟机自己可以拥有root权限做任何想做的事情,所谓的web应用是他们把一些功能进行了深层次的包装。也就是说,我得到了一个可以运行php的文件夹,我可以用ftp上传文件到这里,然后通过给我的这个域名,我可以访问到我都php网页。php的配置也不需要我担心,所有都弄好了,只需要上传php文件。作为测试php,用phpinfo最方便,当然我的第一个页面就成了显示php安装信息的页面了。 安装wordpress有两大部,第一要有一个php运行环境,第二要有一个mysql数据库。在Azure搭建这个博客,第一个条件挺容易满足,php直接就可以使用,第二个mysql费了一些周折。官方给了一个叫做mysql in app 的插件,理解这个名字就很费劲。什么叫app,为什么又是mysqll IN app,慢慢才搞懂,就是说Azure提供给我一个php虚拟机,同时提供运行mysql,可是这个mysql有特定的设置,只能本地运行,(后来我用sqlyog尝试链接失败。) 官方提供了很多上传代码的方式,最容易入手还是ftp。首先学到一个新词,上传文件叫做部署(Deployment),上传需要登陆ftp用到的账号叫做部署凭证(Deployment Credentical)。在这里设置一个用户名和密码,这里还有一个坑。就是当你设置完之后一心欢喜用工具开始连接ftp主机,可是毫无疑问会失败。这是因为真正的登陆账号在overview上边找到,是主机名和刚才设置的用户名的结合体,比如我的是XXX\XXX,地址也在那里有显示,浪费我好多时间在这儿,坑死人了。 官方有个phpmyadmin叫做插件,如果不是稍微了解一些技术细节的话,还真被他们这些专业属于吓唬的一愣一愣的。我自己通过ftp上传了一份phpmyadmin,可是死活找不到账户名和密码,并且官方的插件也是自动登陆,显然,官方不愿意让人知道mysql的账户名和密码。没有了账户密码我就不能安装wordpress,找账号密码这个问题用了我一天时间。。。首先思考,官方的phpmyadmin能够登陆,总归有一种验证方式,通过ftp每个文件夹找啊找,终于找到了一些信息,config.ini.php里边保存了默认登陆信息,同时找到了主机(所谓的APP)提供关键登陆信息:MYSQLCONNSTR_localdb 文件,里边其实告诉了详细的信息,包括数据库地址(在localhost的基础上换了端口,又是一大坑点),还有一个账号和密码。我直接用这个账号密码登陆我下载phpmyadmin不行,现在知道了原因,是端口号不是默认的所以不对不能登陆。后来,把官方默认的配置文件都抄到我下载的phpmyadmin里边,神奇的也不用密码就快可以进入了,所以我知道这个配置文件有文章。关键是php语法我看不懂,看来看去看不出什么文章来。。然后我就尝试在phpmyadmin里边找root的密码,失败告终。又尝试创建新的账户,却在添加权限的时候出错,我都理解是Zaure给的这个账户权限不够。网上说的可以通过页面修改root密码,可是关键的一点没有edit privilege 这个选项,看到了微软满满的不愿意你修改账户的想法。 后来想各种方法改管理员root的密码,想把这个账户拿回来,那样就完全控制了我都数据库。由于没有虚拟机的足够权限,我没办法关闭mysql再在配置模式下打开,就不能通过无密码方式进入数据库修改root密码。后来就思考,这些信息都因该是存在表中的,我能不能直接操作数据表把密码删掉呢,后来,真在mysql里边找到了usr这个表单,在这里,可以授权失败添加的新账户强行加上各种权限,这样,之前创建的空白数据表也有了操作者,说明我的权限添加成功。我有满心欢喜的用这个账号去登陆wordpress,还是失败告终。搞不懂说明原因。后来我随手点来默认的azure账户,发现所有权限都有唯独grant权限关闭,当时我也不知道有啥用,只是想反正就是尝试少一个不如多一个。后来在主页user account神奇的一幕出现。多了一栏有了修改权限这个选项。后来想明白,开始能创建用户但是给不了权限,就是因为我操作者账户没有grant权限的问题,在我手动点开后我就可以给其他用户分配权限(也就是grant命令),在写这篇文章的时候,我又想起那是不是root的密码也可以拿回来了,一试,果然~~~~~ 在wordpress上,很早就知道了azure用户名和密码,尝试很久不能登录现在知道了原因,是localhost后需要加自定义端口,而我从来没有往这方面想,后来成功的一次是随手试了一下,果然还需要多尝试。到目前位置,我的wordpress已经可以用azure连上数据库,并且现在我已经在这里写文章了。但是不知道为何我新生成的账户不能登陆。就在刚刚,我尝试了用root和shuspieler登陆phpmyadmin,竟然成功了,理论上讲,应该也能登陆wordpress,毕竟这两个都是我自己下载的不是官方的资源。我的wordpress写了这么多,也不忍心再尝试了。就留个悬念吧,我觉得可行。(之前自定义的账户不能登陆phpmyadmin可能是由于没有加权限,唉关于数据库怎么都是权限。。。)

我在微软Azure上边的博客 Read More »