Submitted by gouki on 2014, July 18, 8:50 AM
说起curl请求https的网站,网上的教程很多,无非都是说在你没有证书的情况下,加上下面两句就可以了
PHP代码
- <?php
- curl_setopt_array($handle, array(
- CURLOPT_SSL_VERIFYPEER => false,
- CURLOPT_SSL_VERIFYHOST => false,
-
- ));
诚然,很多人在这么处理后就OK了,但我遇到的情况不一样,这两个加上之后,还是不能访问。
于是问了vampire,他让我试了一下在命令行下加参数访问,如:curl -3 https://xxxxx.com,顺利的得到了结果,https还是有version的。于是在上述的脚本里再加上一句:
PHP代码
- CURLOPT_SSLVERSION => 3,
指定sslversion。
当然,这个值 不一定是3,只是我正好是在version为3的情况下访问正常罢了。实际情况还需实际对待。
话说回来,我在curl在访问的时候报的错是:
XML/HTML代码
- curl: (35) error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)
Over。
PHP | 评论:0
| 阅读:17632
Submitted by gouki on 2014, July 12, 8:06 PM
在写shell脚本的时候,还是有些注意事项的,比如。。空格,给变量赋值不能有空格,象a=1就不能写成a = 1,刚开始的时候好纠结。。
写判断语句的时候[]之间一定要有空格。以下是一些常见的判断:
参考:http://www.cnblogs.com/emanlee/p/3583769.html
- #如果文件夹不存在,创建文件夹
- if [ ! -d "/myfolder" ]; then
- mkdir /myfolder
- fi
-
- #shell判断文件,目录是否存在或者具有权限
-
-
- folder="/var/www/"
- file="/var/www/log"
-
- # -x 参数判断 $folder 是否存在并且是否具有可执行权限
- if [ ! -x "$folder"]; then
- mkdir "$folder"
- fi
-
- # -d 参数判断 $folder 是否存在
- if [ ! -d "$folder"]; then
- mkdir "$folder"
- fi
-
- # -f 参数判断 $file 是否存在
- if [ ! -f "$file" ]; then
- touch "$file"
- fi
-
- # -n 判断一个变量是否有值
- if [ ! -n "$var" ]; then
- echo "$var is empty"
- exit 0
- fi
-
- # 判断两个变量是否相等
- if [ "$var1" = "$var2" ]; then
- echo '$var1 eq $var2'
- else
- echo '$var1 not eq $var2'
- fi
苹果相关 | 评论:1
| 阅读:22359
Submitted by gouki on 2014, July 5, 12:17 AM
比较简单
打开:
sudo defaults write /Library/Preferences/.GlobalPreferences AppleInterfaceTheme Dark
关闭:
sudo defaults write /Library/Preferences/.GlobalPreferences AppleInterfaceTheme Light
第二行其实就是恢复啦
切换到Dark模式后,去系统设置的general中将Appearance也改成Graphite,有写这个改动是:for menu,button和windows。
这回就真黑色了,但。。。大部分菜单都还没有反白,真让人揪心,不知道什么时候可以正常
Flutter | 评论:0
| 阅读:17578
Submitted by gouki on 2014, July 5, 12:04 AM
最近涉及到的项目中用到了thinkphp,我都N年没有碰过这玩意了。但现在还是需要用一用。正好那些能够下载得到的wxcms也可以用这个来优化一下性能。。其实我就一台服务器。装逼而已
于是转一下别人的文章,因为他其中特别写了一句:只要是exec就一定从主库走,query一定从从库走。所以建议query中不要有实际的更新和插入操作。以防万一
原文地址:http://www.verydemo.com/demo_c327_i782.html
前言:
Thinkphp 框架本身是支持读写分离的,如何做呢?
最简单的做法是在配置文件中修改:
PHP代码
- 'DB_TYPE'=> 'mysql',
- 'DB_DEPLOY_TYPE' => 1,
- 'DB_RW_SEPARATE'=>true,
- 'DB_HOST'=> '192.168.100.78,192.168.100.60',
- 'DB_NAME'=>'test',
- 'DB_USER'=>'root',
- 'DB_PWD'=>'root',
- 'DB_PREFIX' => 'fav_',
默认第一台数据库78是主数据库,负责写入操作,第二台60负责读操作,Thinkphp 会自动识别读和写,然后分配链接对应的数据库,来达到读写分离的效果。
注意事项:
1. 如果要设置分布式数据库,暂时不支持DB_DSN方式配置。
2.如果你当前采用了分布式数据库,并且设置了读写分离的话,query方法始终是在读服务器执行,因此query方法对应的都是读操作,而不管你的SQL语句是什么。
3.如果你当前采用了分布式数据库,并且设置了读写分离的话,execute方法始终是在写服务器执行,因此execute方法对应的都是写操作,而不管你的SQL语句是什么。
因此,'DB_DSN'=> 'mysql:host=192.168.100.60;dbname=51fanli_cang', 这种方式不支持主从分离,需要改。
当采用原生态的sql语句进行写入操作的时候,要用execute,读操作要用query,切记,否则乱掉了。
搞定!
---EOF---
Tags: thinkphp
PHP | 评论:0
| 阅读:24587
Submitted by gouki on 2014, July 5, 12:00 AM
标题其实没什么,主要原因是。我在两台机器上部署了同样的程序,一个访问的时候一直显示404,一个就一直正常。死活找不到原因
1、背景
两台服务器,都是CentOS,一个可以公网访问,一个只能内网访问,因此一个可以在浏览器里打开,一个只能用命令行访问,习惯性的,我使用了wget
2、浏览器访问正常,命令行显示404
3、配置完全一样,问题不明。
wget的时候显示404,无输出。。也就导致没有任何文件信息被下载
4、使用的YII框架。结果,记录的LOG,分组了只记录了system.db,404的LOG未被记录
5、调整策略:
a.用curl(有朋友建议)
b.把LOG改为全部记录
于是就发现问题了。LOG里显示无默认控制器。CURL直接输出错误信息
原来,WGET看到http头是404后就不再下载内容,即使我有在文件里有输出,而CURL默认就是按浏览器访问的显示而正常输出在屏幕上。
问题解决。记录一下。就因为WGET和CURL的默认机制不一样。吐血三升
苹果相关 | 评论:1
| 阅读:21171