- 地址:https://openshift.redhat.com/app/
- 使用方式,git,连php,还有node.js,python, java等资源可以使用
- 最大的好处是可以使用独立域名,速度也还不错
- 可以安装wordpress,已经有人实验成功
- 可以访问mysql,但现在还没有找到使用的方法
作者归档:Jacob Nie
mac快捷键介绍
Use of undefined constant OCI_COMMIT_ON_SUCCESS – assumed ‘OCI_COMMIT_ON_SUCCESS’
安装完wampServer,然后勾选了oci8.dll,codeigniter还是不能启动,报错Use of undefined constant OCI_COMMIT_ON_SUCCESS – assumed ‘OCI_COMMIT_ON_SUCCESS’,如下图
使用oci_connect方法的时候会报找不到这个方法的错误
在默认环境变量里面能找到如下dll
有如下解决方法(三选一)
- 下载并Oracle客户端,Oracle会自动在path里面加入D:\app\niehonglei\product\11.2.0\client_1\bin;
- 下载instantclient,然后在path里面把instantclient路径加进去;
- 下载instantclient,将其中的dll拷贝到C:\Windows\System32目录里面;
coreseek安装小结
1、按官方的标准安装,我的系统是CentOS(64位),默认安装了Python 2.6.6,如果没有安装还需要先安装Python 2.6.6,版本不要错;官方安装地址:http://www.coreseek.cn/products-install/install_on_bsd_linux/ 安装时注意在./config的时候加上对python的支持,因为我们要使用的是Oracle数据源
相关代码:
$ cd csft-3.2.14
$ ./configure –prefix=/usr/local/coreseek –without-unixodbc –with-mmseg –with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ –with-mmseg-libs=/usr/local/mmseg3/lib/ –with-python
$ make && make install
2、安装cx_Oracle:下载cx_Oracle-5.1.2-11g-py26-1.x86_64.rpm
执行安装包
rpm -ivh cx_Oracle-5.1.2-11g-py26-1.x86_64.rpm
3、下载安装instantclient-basic-linux.x64-11.2.0.3.0.zip,我下载的是zip包,当然我认为也可以下载rpm包,而且不需要自己配置会更合适一些
4、打开~下的.bash_profile,添加下面两句(如果下载的rpm包,则不需要做如下操作
增加以下两行代码
LD_LIBRARY_PATH=/root/instantclient_11_2;
export LD_LIBRARY_PATH
5、在python下测试import cx_Oracle,如没有报错,则说明python连接oracle已经没有错误了
6、配置csft的config文件/root/coreseek-3.2.14/testpack/etc/csft_demo_python_pyoracle.conf
文件如下:
python
{
path = /root/coreseek-3.2.14/testpack/etc/pysource
path = /root/coreseek-3.2.14/testpack/etc/pysource/csft_demo_pyoracle
}
#源定义
source python_oracle
{
type = python
name = csft_demo_pyoracle.MainSource
}
#index定义
index python_oracle
{
source = python_oracle
path = /root/coreseek-3.2.14/testpack/var/data/python_oracle
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
#中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/
charset_dictpath = /usr/local/mmseg3/etc/
charset_type = zh_cn.utf-8
}
#全局index定义
indexer
{
mem_limit = 128M
}
#searchd服务定义
searchd
{
listen = 9312
read_timeout = 5
max_children = 30
max_matches = 1000
seamless_rotate = 0
preopen_indexes = 0
unlink_old = 1
pid_file = /root/coreseek-3.2.14/testpack/var/log/searchd_python_oracle.pid
log = /root/coreseek-3.2.14/testpack/var/log/searchd_python_oracle.log
query_log = /root/coreseek-3.2.14/testpack/var/log/query_python_oracle.log
}
7、设置/root/coreseek-3.2.14/testpack/etc/pysource/csft_demo_pyoracle/__init__.py,
文件内容如下
# -*- coding:utf-8 -*-from os import path
import os
os.environ[‘NLS_LANG’] = ‘SIMPLIFIED CHINESE_CHINA.UTF8’
import sys
import cx_Oracleclass MainSource(object):
def __init__(self, conf):
self.conf = conf
self.idx = 0
self.data = []
self.conn = None
self.cur = Nonedef GetScheme(self): #获取结构,docid、文本、整数
return [
(‘id’ , {‘docid’:True, } ),
(‘title’, { ‘type’:’text’} ),
(‘abstract’, { ‘type’:’text’} ),
(‘search_type’, {‘type’:’integer’} ),
]
def GetFieldOrder(self): #字段的优先顺序
return [(‘title’, ‘abstract’)]def Connected(self): #如果是数据库,则在此处做数据库连接
if self.conn==None:
self.conn = cx_Oracle.connect(‘yzjs/a123456@10.166.166.222/genome’)
self.cur = self.conn.cursor()
sql = ‘SELECT t.id as id, t.title, t.abstract, t.search_type as search_type from V_SPHINX_INDEX t where t.title is not null and t.abstract is not null’
self.cur.execute(sql)
for rows in self.cur:
item = []
item.append(rows[0])
item.append(rows[1])
item.append(rows[2].read())
item.append(rows[3])
self.data.append(item)
passdef NextDocument(self): #取得每一个文档记录的调用
if self.idx < len(self.data):
item = self.data[self.idx]
self.docid = self.id = item[0] #’docid’:True
self.title = item[1]#.decode(“GBK”).encode(“UTF-8”)
self.abstract = item[2]#.decode(“GBK”).encode(“UTF-8”)
self.search_type = item[3]
self.idx += 1
return True
else:
return Falseif __name__ == “__main__”: #直接访问演示部分
conf = {}
source = MainSource(conf)
source.Connected()
while source.NextDocument():
print “id=%d, subject=%s” % (source.id, source.abstract)#.decode(“UTF-8”))
pass
#eof
8、然后根据下面三段脚本,可以方便索引,启动,热索引数据
索引
/usr/local/coreseek/bin/indexer -c /root/coreseek-3.2.14/testpack/etc/csft_demo_python_pyoracle.conf –all
启动
/usr/local/coreseek/bin/searchd -c /root/coreseek-3.2.14/testpack/etc/csft_demo_python_pyoracle.conf
停止
/usr/local/coreseek/bin/searchd -c /root/coreseek-3.2.14/testpack/etc/csft_demo_python_pyoracle.conf –stop
重编译
/usr/local/coreseek/bin/indexer -c /root/coreseek-3.2.14/testpack/etc/csft_demo_python_pyoracle.conf –all –rotate
9、引入sphinxapi.php,写如下代码测试
$cl = new SphinxClient ();
$cl -> SetServer ( ‘192.168.42.148’, 9312);
$cl -> SetConnectTimeout ( 3 );
$cl -> SetArrayResult ( true );
$cl -> SetMatchMode ( SPH_MATCH_ANY);
$data[‘res’] = $res = $cl -> Query ( $keyword, ‘*’ );
xmapp proftpd新建用户
很简单的事情让我找了好长时间,
1、修改iptable,开放21端口vi /etc/sysconfig/iptables,重启iptables服务,/etc/init.d/iptables restart
2、使用/opt/lampp/etc/proftpd.conf中的UserPassword字段定义用户名和密码,密码可以到http://www.kxs.net/support/htaccess_pw.html生成,然后拷贝到这里;其实上面的注释已经写的很清楚了,默认密码是lampp,如果想自己设置密码的话也可以使用lampp security
4、重启lampp,/opt/lampp/lampp restart
5、使用这个账户登录
这样更新wordpress就不需要再手动更新了
wordpress弹出图片插件
主题更新后,将下面的代码粘贴到header.php的head的最后,更改弹出图片的效果
<script type=’text/javascript’ src=’https://www.niehonglei.info/wp-includes/js/jquery.popImage/jquery.popImage.mini.js’></script>
<script type=”text/javascript”>jQuery(function(){
jQuery(“#primary a img”).parent().popImage();
});
</script>
大明山
10月2号
9点从上海南站出发,到达第一个服务区(练塘服务区)集合,大家都很准时,十点钟左右开始从服务区出发,共四辆车19个成员,大概11.15的时候到达杭州绕城高速,这里就明显堵了好多,本来打算到大明山再吃饭,由于堵车就改到临安县城吃饭了,其实上海到大明山方向,临安出口要比临安服务区早20公里左右。找了一圈,看到了一个钱王大酒店,于是就把车停在了那个地方,本来打算进去吃饭的,但最终只是进去上了个厕所,去了对面土家菜吃了一顿
大约下午2点左右的时候出发去大明山。由于是山路,交会的时候有点堵车,到大明山集合的时间大约15.30左右,乘车上到山半腰,有些人坐索道,有些人爬上来,大概一个半小时,然后去山顶看日落。下山找住的地方,在大明山的千亩草甸,但这里没有对外开放,只能在别人都下山了以后,让保安帮我们把铁网打开,进去是一片平原,但一片荒芜,基本上是没有路的。走了一段时间就能看到一户人家,打着住宿吃饭的牌子。这里正是我们要住的地方,此地不通电,只能发电,晚上吃饭就在这里。往往不抱希望的地方越能给你带来惊喜,来之前说这里的条件很差,到地方一看也确实是这个样子,但晚饭做的比较好吃,除了我们,里面只有零散的几个要搭帐篷的人。晚饭吃过后就是看小木屋了,比我想像的要好很多,只是晚上的山上特别的冷,于是又多要了一床被子,铺了三床才算好一些。
大明山看日落
千亩草甸住宿和吃饭的地方
我们晚上住的小木屋
10月3号
第二天四点多钟的时候就有人喊着去看日出了,每次都是开始的时候好积极,但最终的结果并不好,这次也差不多是这个样子,开始我们并没有计划好要到哪个山顶去看,最近的有一个,但听说观日出的地方另有其地,于是本着探险的精神出发了,经过了近两个小时的跋涉,才算找到一个勉强可以看日出的小亭子,看了看被云遮住的日光不免又有些失落,回来的时候快了好多,因为大家急着赶七点半的早餐,粥加鸡蛋,另外还有昨天晚上没吃完的两个菜。收拾完东西吃完早饭就开始了下山的路程。因为上面的景点并不怎么多,还有一个栈道没走,栈道的平均高度都在千米以上,还是很有挑战性的。不过话又说回来,如果不畏高的话在上面其实没多大区别的,你上去唯一要问的问题就是你相信这个栈道吗,相信就上,不相信就不上,比起地面其危险系数还是高出了不少。绕着走一圈大约要一个小时的样子。到了对面的大明湖,就找到了另一条下山的路。这条路比起我们上山的路还是好了不少,前半段都是柏油路,只到了后半程才像个山路,花费大约一个小时的样子到达坐索道的地方,然后乘公交返回停车厂。
早上等日出,像是会出来的样子吗?
平均千米高度的栈道
下午的人时间还充裕,打算到临安吃中饭,中间在临安休息区休息了约二十分钟的样子。吃过中饭已经近两点钟了,又说开车去青山湖一下,其实就是正好路过,顺道看了一下湖水,但不到五分钟的时间就离开了。本来想上高速到杭州的,但交警说路上出了车祸,高速给封闭了,我们就只好走地面了。到了城区,我们还要穿越整个城区然后再到下沙住酒店,但问题是这时的杭州简直拥堵异常,走了好长时间还不能挪动一点,看了看路线,选择不走地面改高架,但也花费将近两个小时才到。晚上跟朋友吃了饭就睡了,住宿条件还不错,宽大且干净,但晚上还是没怎么睡好,可能时间还没调整过来的原因吧。本来第二天安排去看涨潮的,看到新闻上说海宁看潮的人很多,并贴出了相关视频,真是人山人海,而且还有一定的危险性,我们里面一小孩没来过杭州,就决定大家一起去西湖,吃早饭,逛西湖。
10月4号
第二天7点就退房出发了,找了一个收费停车的位置,然后找可以吃饭的地方,不知道最后是谁决定要去岳庙对面的肯德基,而我们当时在断桥附近。后面就一路走,一个小时左右,九点多钟才算到达,大清早吃这些东西总觉得不太舒服。用完餐就在苏堤上逛了一下,然后再次转白堤去断桥的方向。路上真是“游人如织,强烈见识了共和国的人口状况”。整个下来又接近了中午的时间,一路上都在讨论要去哪里吃东西,好像我们是饿死鬼生的一样。讨论的最终结果是去最近的“花中城”政府店吃饭,这里看上去是一个豪华的酒店,但有经验的朋友说这里吃饭并不贵,我在大众点评上看到评价也还不错,关键是人少,能停车,离西湖也非常的近,现在才觉得我们刚才十块一小时的停车费花的有点可惜。
环境不错,真想不到这是在旅游的时候吃的一顿便饭,简直像是在参加谁的婚礼一样。本来想订包房的,但听说包房不能要特价菜就放弃了,但最终我们也没有点特价菜,只不过大厅也不是很吵,就将就在此用餐了。价格还可以,人均80左右的样子,吃完饭又聊了会天就准备开车回上海。出发的时间大约是14.30,到达嘉兴服务区的时候休息了一下,里面人真是多啊,看来不在大的休息区停车是比较明智的选择。然后到上海的时间17点左右。我们从上海南站坐车回家,马上到站
像参加婚礼一样的酒店
总结了一下这次的花费,人均500块多一些的样子,过路费为我们省了不少钱。车费算下来才人均一百块,绕了那么远路,还是蛮划算的。
codeigniter mysql php相关总结
开发lcwy这个项目,项目地址:http://lcwy.tohours.com,学习了不少php相关知识,做了如下总结:
- <?php require_once(“application/views/script/split_page.php”);?> 引用相关php文件
- 先$sql = $sql.” order by t.insert_time desc”; 后$sql = $sql.” limit “.$offset.”,”.$limit;
- mysql的 $offset 从0开始
- $this -> input -> cookie();可以取得相应的cookie
- foreach($_POST as $key => $value) 数组的遍历方法
- 查询方法 $this -> db -> where(array(“condition” => “value”)) -> order_by() -> get(“table_name”) -> result(); 取得对象的数组
- 也可使用 -> row()方法取得第一行的数据 (替换-> get() –> result())
- 也可使用 -> count_all_results()计算数据的条数,而不得到数据 (替换-> get() –> result())
- sql查询方法 $this -> db -> query($sql, $param) -> result();后面能接的方法与上面相同
- 更新方法$this -> db -> where(“id”, $id) -> update(“user”,$user);
- 字符串替换方法 str_replace(“world”,”earth”,”Hello world!”); //Hello earth!
- 正则替换方法 preg_replace(“/^[0-9]{4}/”, “”, $year); 其中正则也是以/开头和结尾
- 计算数据长度使用count(数组名称)
- 数字转字符 字符转数字函数 echo chr(65);echo ord(“B”);
- echo strpos(“Hello world!”,”wo”)
- 输出$this -> output -> set_output(encode_json($json));
- explode(“,”, $ids); split功能
- $data[“clear_time”] = null;//将数据库时间置空
- date_default_timezone_set(‘PRC’);在使用time时预先设置
激活office2010出现“Failed to inject memory”错误
跑步记录
离上一次发誓要跑步已经很远了,但记录一直保留在nike的官方网站上,这次又开始了跑步,且今天一天就是10公里,还是蛮令我吃惊的,但这样的情况我怕不能持续下去。
昨天开始想起来其实我有条件跑步的,但前期不知道什么原因放弃了,于是昨天又下载了软件去测试了一下。卫星的定位还是不准,我也懒的计较。昨天跑了5公里,可能效果不是太大,后来“全家”吃了份面,里面基本上什么也没有,今天开始设定10公里还有点犹豫,想是不是能完成任务,其实到最后的时候还在想,要不最后两圈就不要跑了,因为当时还没吃饭,而上班的时间又快到了,但后来还是走了下来,其实也就20分钟,如果这天不能坚持下来的话,明天可能就要再次调整计划了。
其实早在今天早上就应该起床跑步,竟然把时间定错了,把六点钟起床改成了七点钟起床了。由于没有去跑步,所以今天到单位的时间特别早,而且还有时间去食堂买点早饭吃,所以中午去跑步的时候也并没感觉到饿