2017年2月

ssl.png

因为目前ssl要求比较迫切。很多朋友随便搜索一篇指引文章后就直接抄袭相关配置然后就配置配置出来的ssl虽然表面上看上去没有什么问题,但实际是不规范的。大家可以通过这个网址:https://www.ssllabs.com/ssltest/ 去检测下自己的ssl配置是否科学。

最近爬文发现一个nginx的ssl配置介绍(点击这里查看)感觉不错,按照这个文章指引配置的ssl,在ssl检测一般都能拿到A+这个水平。如果你有多个站点,建议将ssl配置部分做成ssl.conf放在nginx的global文件夹中作为引用文件,真的十分实用。本人的ssl.conf示例如下,大家可以参考下:

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout  10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE:!kEDH;
    ssl_prefer_server_ciphers on;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /usr/local/nginx/startssl_trust_chain.crt;
    add_header Strict-Transport-Security "max-age=31536000";
    resolver 8.8.8.8 8.8.4.4;

-EOF-

php.jpg

因为typecho的测试版appstore需要使用curl访问https,这个DO主机是15年部署的,当时编译php时候没有考虑为curl增加对https的支持。因此打算更新php顺便将curl也更新了。网上教程很多,随便搜索一下都有很多。我这里就将过程中遇到的几个梗吐槽一下,希望也遇到相似情况的朋友可以少走点弯路。

这个主机是基于Debian 7,web架构是nginx + php (相关操作仅供指引请尽量备份好相关数据),本文是通过编译方式升级php。

准备工作
通过命令行查看PHP编译信息

php -i | grep configure

得到我的主机的php编译信息是这样的

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-openssl=/usr --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --disable-ipv6 --without-pear --with-iconv=/usr/local/lib --disable-debug --enable-opcache

下载好新版的php并解压

wget http://php.net/distributions/php-5.6.30.tar.gz
tar -zxvf php-5.6.30.tar.gz
cd php-5.6.30

备份好原来的php防止编译失败可以直接回滚

mv /usr/local/php  /usr/local/php5.3.8  

进行./configure时遇到了第一个梗
如果你不想看编译curl的过程,可以直接跳到梗2看解决办法。
configure就直接报错,提示类似下面的

checking for CURL support... yes
checking for CURL in default path... found in /usr
checking for cURL 7.9.8 or greater... libcurl 7.21.6
checking for curl_easy_perform in -lcurl... no
configure: error: There is something wrong. Please check config.log for more information.

搜索了下说curl版本不对,遂直接下载最新的curl,通过编译(./configure;make && make install)方式升级了curl。重新在php编译目录执行configure,结果依旧上面的报错。

通过命令行curl -V查看curl版本如下

localhost:~ user$ curl -V
curl 7.52.1 (i686-pc-linux-gnu) libcurl/7.21.6

晕死,怎么curl和libucurl的版本不一致的?爬文了半天没有结果。重装了curl几遍还没有结果。后来看了下curl的文档,发现是因为共享库造成的。晕死,curl编译的配置应该是用./configure -disable-shared才对。这样编译出来的curl和libcurl版本才是一致的。通过这样编译后curl -V得到的信息是这样的:

localhost:~ user$ curl -V
curl 7.52.1 (i686-pc-linux-gnu) libcurl/7.52.1

梗2
重新在php编译目录执行configure,结果依旧上面的报错()。上面编译curl的努力不是白费了吗?晕死。。。继续爬文,最后在stackoverflow找到解决问题的方法:重新安装curl-devel或者需要指定curl的安装路径(这个仅适合编译方式安装的curl)

Ubuntu:

sudo apt-get install libcurl4-gnutls-dev

CentOS:

sudo yum install curl-devel

编译方式安装了curl的(我的那种情况):
在php的configure里面加入--with-curl=/usr/local. (/usr/local为你curl安装的路径).

安装完之后,可以到php目录顺利configure了。

准备make,梗三出现了
提示iconv函数不支持。晕死,我之前的php也是编译方式安装的,这个参数也是那样编译出来的。爬文。。。找到两个处理方法,直接在configure参数里面删除iconv,这样就无法使用iconv。

因此我选择了另外一个方法。通过打开php安装目录的Makefile,搜索到EXTRA_LIBS =

-lcrypt -lz -lcrypt -lrt -lmysqlclient -lmcrypt -lltdl -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lssl -lcrypto -lcurl -lssh2 -lssl -lcrypto -lldap -lz -lrt -lxml2 -lfreetype -lz -lpng16 -lmysqlclient -lm -lrt -ldl -lxml2 -lcrypt -lxml2 -lxml2 -lxml2 -lxml2 -lcrypt

的后面增加-liconv

然后重新make,然后make install,ok了。

弄完后,可以将原来在/usr/local/php/etc/备份的php.ini和php-fpm.ini恢复到当前位置。重启php-fpm即可。
查看curl版本,最新的!
curl.png

-EOF-

DJI_0014.jpg
今天抽了点时间去附近实践了一下测绘航拍模式。目标是沙地里面的一台推土机。图有点多,还没有来得及整理。

  • 控制应用:DJI GS PRO
  • 飞行用时:约10分钟
  • 记录点:16PTS
  • 行程:1811M

DJI_0020.jpg

总结:精灵3系列的产品在日常的测绘用途应该是有点先天不足的,因为图传缺陷等因素的影像,实际的拍摄距离偏低。最诡异的情况就是周边都是空旷的环境,居然飞出30米外就提示严重干扰。只能使用目视的方式进行拍摄,十分失败。有条件上phantom 4 pro之类的产品才能应付。

-EOF-

dji_new_river.jpg
这个无人机买回来玩的机会不多。一方面时间是一个重要因素,另一方面环境和场地限制也是一个因素。今天终于酬足时间进行一次航拍。事前先把电池充满点,把相关的地图都缓存下来。轻装出行!原来一直使用DJI GO进行拍摄,因为无法进行离线航线规划,拍来拍去都是一些近距离片段。

dji-gs-pro-first.jpg
昨晚在网上闲逛时发现了DJI GS PRO的介绍,原来我的Phantom 3也是支持的,就直接在ipad上安装了。经过简单调试发现真心不错。于是今天的行程就有了目的性了。

只测试了普通的兴趣点飞行路线规划,把遥控器的模式调试到P档,正式起飞。发现Phantom 3的有效距离太短了。飞机在70米高处居然就失去信号了,可能是旁边有高铁的缘故吧( ̄┰ ̄)( ̄┰ ̄)我是这样安慰自己的。刚开始还以为飞机就这样没有了。虽然是便宜货但是也是哥的血汗钱啊。但是等了一会儿果然按照我的航线进行飞行。满怀欢喜等待飞行结果。GS PRO操作上和GO还是有蛮大的差别的,但是提示还是比GO充分很多,毕竟是日本人出品的啊。质量应该是干干的。因此一个行程下来,电池已经剩下48%了,既然已经没有太多玩头了,收机回家。满心欢喜的回家,把内存卡插入读卡器一看。悲催的事情发生了,内存卡满了。。。视屏照片一个没有。。。当初在每个兴趣点中设定的拍摄动作全部作废了。。。哥可是跑了大半个小时的路去到拍摄地的。全部白费了。。。

经验总结:

  1. 飞机起飞前准备功夫除了检查电池、尾翼等外,内存卡之类的配件也要做个简单检查测试。
  2. 进行离线航线规划的时候记得考虑飞机的返航电量,否则炸鸡是随时发生的。
  3. GS PRO操作界面如果失控的话,不用过份紧张,因为你还是可以直接用遥控器控制的,因为遥控信号比图传要远得多。

-EOF-

lcn_logo.png
由于近年美刀一路高歌上涨,名下的域名越来越养不起了。这不这个站点的.biz米从GoDaddy转到Name.com,到最近又到期了。Name.com续费要$12.99,服务谈不上价格真心无法接受。回头看看GoDaddy的价格,转入也不便宜。现在最大的优惠依然是.com。所以日后选择域名肯定是从.com选,其他类型的后缀真的能别注册就不要注册。

在网上比较了一段时间,发现LCN.COM转入只要$6.15。对于LCN.COM真心的相当的陌生……摆渡了以下发现它是一家2000年成立于英国的域名注册商,看年限还是有点历史的。于是就本着试试的心态转移过去。

Name.com转移一般需要5-7日时间,包含已经过期(在whois上查到的过期日为准)15天内的域名都可以转出。虽然效率不行但起码也不会像国内某些服务商那样设置多种限制。

题外话:
发现最近国外的服务商转移域名的时候,系统自动检测到你使用非原注册商的DNS服务器的话,将会自动保留原来DNS服务器设置。这样可以实现域名服务商之间平滑转移。因此推荐使用DNSPOD的免费DNS服务,当然阁下如果米多的可以考虑下他们的商业解释服务,还是不错的。

-EOF-

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×