背景:swoole有一个Websocket示例,我作为swoole的顾问,群里反映cocos2dx下的websocket长连接,语言是不一样,但websocket是一样的,swoole是支持Websocket的,作下简单实践。
WebSocket的JavaScript例子,一个WebSocket的简单Echo例子:
例子代码来自:http://www.websocket.org/echo.html
上面这个链接可以当作一个websocket的工具调试并使用。

一、当然,得下载swoole服务扩展并安装:
git clone https://github.com/swoole/swoole-src.git
You should add "extension=swoole.so" to php.ini
二、动态服务端代码:
cd /data/codesdev/swoole/
git clone https://github.com/matyhtf/swoole_framework.git
/data/codesdev/swoole/swoole_framework/examples/websocket_server.php


上面是swoole_framework提供的代码,我们就直接运行这个服务端的server侦听9443端口:
php websocket_server.php

三、静态Js代码,通过firefox访问下,当然其他支持websocket的浏览器也可以,这块暂没从swoole_framework里摘,在网上摘的js,后面会补上从哪儿摘来的Url地址:
/data/htdocs/tools.jackxiang.com/websocket.html
vi websocket.html



四、在Firefox或chrome下访问这个支持websocket的Js代码:
WebSocket Test
CONNECTED
SENT: WebSocket rocks
RESPONSE: Server: WebSocket rocks
DISCONNECTED

说明这个php是真支持websocket的,否则不会输入什么就输出什么,得证。

参考:http://www.xyhtml5.com/websocket-javascript-example.html
——后来发现swoole_framework里的example里居然有对这个websocket的php配套的简单测试代码——
后记,其实swoole_framework下提供了和websocket相关的html测试及php客户端测试:
websocket_client.html  websocket_client.php   websocket_server.php
(1)前端:websocket_client.htm

把wss换成ws,wss好像是https的websocket:
//var wsServer = 'wss://127.0.0.1:9443'; //IP也换下
var wsServer = 'ws://119.10.6.23:9443';
访问下:http://tools.jackxiang.com/websocket_client.html
Connected to WebSocket server.
这个实例不如上面复杂,但服务端确实收到消息了:
[2014-08-22 17:16:47]   INFO    new http request. fd=12
[2014-08-22 17:16:47]   INFO    WebSocket connection #12 is connected


(2)后端:websocket_client.php 这里可能要结合swoole_framework的类java包机制:

修改9503修改为9443,运行测试下:
[root@jackxiang examples]# php  websocket_client.php  
Received from server: Server: hello world
Received from server: Server: hello world
Received from server: Server: hello world
Received from server: Server: hello world
Received from server: Server: hello world
Received from server: Server: hello world
Received from server: Server: hello world
^C
得证。
背景:这块企业QQ也用到PHP的扩展实现Server以供高性能,同时利用PHP的编码效率高、调试快、修改快、迭代快、门槛低实现企业级应用,实为罕见,目前除开QQ有这样的架构外,Swoole也有这样的能力,通过纯C实现了一个PHP的Server扩展,达到很高的长连接数,并且开发入门低、开源、稳定可靠,可以值得从swoole窥探企业QQ的PHPServer的中间层实现,异曲同工之处,值得深入玩味。:-)
对比IaaS和PaaS,SaaS得到的关注显然要少一些。究其根本,不仅因为SaaS关注的是功能方面的探索,更偏向于某个领域或层面的实际应用,还归结于相较前两者,软件的云化已基本趋于成熟,些许突破并不能带来产业上的变革。然而,较少的关注并不意味着缺乏明星产品:放眼国外,企业级SaaS服务已成为许多公司的一项重要收益来源,比如Salesforce、Oracle;而聚焦国内,同样有很多值得我们关注的产品,就比如本次我们关注的焦点——腾讯企业QQ。这里,我们接触到了企业QQ的Web技术团队,与他们团队的王帅、甘德建、赵凯、陈胜强、唐朝等几位核心人员进行了深入沟通,了解了基于LNMP,超过4万付费企业办公平台的架构及优化经验。由王帅代表团队回答。
阅读全文
转至 http://blog.netzhou.net/?p=93

基本上用了mysql作为oltp业务的,基本上都会配置mysql的主从,一方面用mysql的主从做数据库的读写分离,另一方面mysql本身的单机备份不是很强,一般采用主从架构,在从上进行数据备份。
在这过程中或多或少出现一些主从不同步的情况,本文将对数据主从不同步的情况进行简单的总结,在看这篇文章请注意了本文主要从数据库层面上探讨数据库的主从不一致的情况,并不对主从的本身数据不一致引起的主从不同步进行说明:
1.网络的延迟
由于mysql主从复制是基于binlog的一种异步复制,通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大,所以做读写分离,注意从业务层进行前期设计。
2.主从两台机器的负载不一致
由于mysql主从复制是主上面启动1个io线程,而从上面启动1个sql线程和1个io线程,当中任何一台机器的负载很高,忙不过来,导致其中的任何一个线程出现资源不足,都将出现主从不一致的情况。
3.max_allowed_packet设置不一致
主上面设置的max_allowed_packet比从大,当一个大的sql语句,能在主上面执行完毕,从上面设置过小,无法执行,导致的主从不一致。
4.key自增键开始的键值跟自增步长设置不一致引起的主从不一致。
5.mysql异常宕机情况下,如果未设置sync_binlog=1或者innodb_flush_log_at_trx_commit=1很有可能出现binlog或者relaylog文件出现损坏,导致主从不一致。
6.mysql本身的bug引起的主从不同步。
7.版本不一致,特别是高版本是主,低版本为从的情况下,主上面支持的功能,从上面不支持该功能。
以上是我遇到的一些主从不同步的情况。或许还有其他的一些不同步的情况,请说出你所遇到的主从不一致的情况。
基于以上情况,先保证max_allowed_packet,自增键开始点和增长点设置一致,再者牺牲部分性能在主上面开启sync_binlog,对于采用innodb的库,推荐配置下面的内容
innodb_flush_logs_at_trx_commit = 1
innodb-support_xa = 1 # Mysql 5.0 以上
innodb_safe_binlog      # Mysql 4.0

同时在从上面推荐加入下面两个参数
skip_slave_start
read_only
[图]如何安装树莓派摄像头模块 ---可以用来作监控,把图发到网上通过http协议--jackxiang。
树莓派摄像头模块(Pi Cam)发售于2013年5月。其第一个发布版本配备了500万像素的传感器,通过排线链接树莓派上的CSI接口。而Pi Cam的第二个发布版本——也被叫做Pi NoIR中,配备了相同的传感器,但没有红外线过滤装置。因此第二版的摄像头模块就像安全监控摄像机一样,可以观测到近红外线的波长(700 - 1000 nm),不过当然同时也就牺牲了一定的显色性。
阅读全文
背景:
一)近来Firefox升级后,其原来Fiddle2的插件没有了,不知是没安上还是版本问题,反正是没有了,尽管Fiddler2原理就是代理可以用AutoProxy插件代替,但是没有那个Firefox下的FiddlerHook插件还真是感觉麻烦,于是想到了这个导入导出插件的办法,将原来的插件导出后在新的Firefox里安装上的一个想法,没有对FiddlerHook作实际导入,只是作了下导出,先作下记录如下:
二)选择Built for .NET 4的fiddler4,也就会安装firefox下的插件,也就是FiddlerHook会在安装fiddler4后,在启动firefox时会提示有插件要安装,位置在D:\Program Files\Fiddler2\FiddlerHook,而fiddler2好像没有firefox插件,同时在firefox的附加组件里也找不到,但是可以找其它firefox的插件替代它,但是没有原装的fiddler4的FiddlerHook插件好用。

一、如何导出?
可用FEBE加CLEO,CLEO不用其实也没什么,只是不太方便。

FEBE下载地址:https://addons.mozilla.org/zh-CN/firefox/addon/febe/
DownLoad ur: https://addons.mozilla.org/firefox/downloads/file/260320/febe-8.0.4-fx.xpi?src=search

CLEO下载地址:https://addons.mozilla.org/zh-CN/firefox/addon/cleo/
DownLoad ur: https://addons.mozilla.org/firefox/downloads/latest/2942/addon-2942-latest.xpi?src=search

你在FEBE选项里-选项-目录,设好目标地址就可以备份了。
在:工具-》FEBE-》执行备份。
      工具-》FEBE-》FEBE选项。
                
经实践:
选快速备份,先选择目录后,可以导出为一个xpi文件。
经实践,发现Firefox直接访问上面的链接地址无法访问,提示https安全问题,后来:
用chrome下载后,再直接拖动到Firefox的扩展里即可安装成功。

Fiddler的FiddlerHook相关信息:
https://jackxiang.com/post/7400/


在默认情况下,Fiddler不能监听Java HttpURLConnection请求。究其原因,Java的网络通信协议栈可能浏览器的通信协议栈略有区别,Fiddler监听Http请求的原理是在应用程序和操作系统网络通信层之间搭建了一个代理服务器,而Java的HttpURLConnection应该是绕过了这个代理服务器,因此Fiddler无法监听到Java HttpURLConnection请求。

解决Fiddler不能监听Java HttpURLConnection请求的基本思路就是设置代理服务器。

Fiddler官网给出的解决办法(见http://www.fiddler2.com/fiddler/help/hookup.asp#Q-JavaTraffic)是设置jvm参数,如

jre -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 MyApp
stackoverflow上的牛人们也给出了在Java代码中设置代理服务器的方法(见http://stackoverflow.com/questions/8549749/how-to-capture-https-with-fiddler-in-java),如

System.setProperty("http.proxyHost", "localhost");
System.setProperty("http.proxyPort", "8888");
System.setProperty("https.proxyHost", "localhost");
System.setProperty("https.proxyPort", "8888");
当然最好还是希望Fiddler自身能过增加监听Java HttpURLConnection请求的能力。

来自:http://www.2cto.com/kf/201308/234835.html
给我加上吧,分别对应下,一技术一讲解一文一武:
一)
JACK船长的航海日志——杰克·向: http://jackxiang.com
二)
向东(jack)的博客:  http://jackxiang.com
wp-video Wordpress视频插件
wp-video插件根据shortcode短代码功能制作的视频插件。
介绍
目前支持7大主流视频网站:优酷,土豆,56,搜狐,爱奇艺,腾迅,新浪,PPTV。 对PC和iOS平台均支持。在PC端,播放flash,iOS平台(包括mac电脑)以Html5播放。
对部分网站(优酷,爱奇艺,土豆)支持无广告。这里感谢YoukuAntiADs的修改播放器。

用法
注意:空间必须要支持cUrl
[video width="600" height="500"]http://v.youku.com/v_show/id_XMjU1MDc3Njg0.html[/video]

效果
可以到我的站点查看,作者网站:http://www.idayer.com/my-first-plugin-wp-video.html

历史
v1.0 支持优酷,土豆,56,搜狐,爱奇异,腾迅,新浪。
v1.01  应答大师厨房的要求增加对PPTV视频的支持
v1.1 更新播放器数据,添加插入按钮及插件说明。添加部分网站(优酷,爱奇艺,土豆)支持无广告。

来自:https://github.com/ineo6/wp_video
yum install traceroute -y
阅读全文
背景:我不是双系统,但是启动时有一个选项是ghost如果它是系统,就是双系统,家里电脑没有问题,单位电脑有经常一上班开机后就是黑屏的问题,重新启动多次,或在上电过bios后按esc才能进入,否则就黑屏,在网上查了下有专门软件,先试试。
阅读全文
在进行自动部署的时候,经常需要用脚本获取程序的最新版本号,下面是我的两个解决方案。

for SVN
# 获取XML版本的svn信息,这样可以避免不同语言的问题 __xml=`svn info --xml --incremental` # 我们可以获取到2个版本号,一个是最新版本库版本号,一个是自己的提交版本号。删除自己提交的版本号。 __revision=`echo "$__xml"|sed '/revision/!d'|sed '$d'` # 提取出版本号的数字部分 echo $__revision|sed 's/revision="\([0-9]\+\)">\?/\1/'
# 获取XML版本的svn信息,这样可以避免不同语言的问题
__xml=`svn info --xml --incremental`
# 我们可以获取到2个版本号,一个是最新版本库版本号,一个是自己的提交版本号。删除自己提交的版本号。
__revision=`echo "$__xml"|sed '/revision/!d'|sed '$d'`
# 提取出版本号的数字部分
echo $__revision|sed 's/revision="\([0-9]\+\)">\?/\1/'

for Git
Git采用的是SHA散列码作为版本号,因此它没有顺序的版本号。但我们可以通过统计Git版本库的提交次数来获得一个顺序版本号。

# 基准版本号默认是1,可以通过传递一个参数修改 get_version() { local __base=${1:-1} echo $((`git rev-list --all|wc -l` + $__base)) } get_version 7000
# 基准版本号默认是1,可以通过传递一个参数修改
get_version()
{
    local __base=${1:-1}
    echo $((`git rev-list --all|wc -l` + $__base))
}
get_version 7000

这个版本对网上搜到的那个被普遍转载的版本做了简化和调整。网上那个版本写得比较复杂,例如awk的使用没有必要,而且要统计所有提交,应该用 git rev-list --all 参数,而不是用 git rev-list HEAD。

本文链接:http://zengrong.net/post/1798.htm


Windows 下 Git 客户端的选择,TortoiseGit(乌龟git)保存用户名密码的方法:
windows下比较比较好用的git客户端有2种:

1. msysgit + TortoiseGit(乌龟git)

2. GitHub for Windows

github的windows版也用过一段时间,但还是不太习惯。所以目前仍然青睐与msysgit+乌龟git的组合。TortoiseGit在提交时总数会提示你输入用户名密码,非常麻烦。解决方案如下:

方法一:

设置 -> git 编辑本地 .git/config 增加
[credential]  
    helper = store

保存,输入一次密码后第二次就会记住密码了

方法二:

1. Windows中添加一个HOME环境变量,值为%USERPROFILE%

2. 在“开始>运行”中打开%Home%,新建一个名为“_netrc”的文件

3. 用记事本打开_netrc文件,输入Git服务器名、用户名、密码,并保存:

machine github.com       #git服务器名称
login user          #git帐号
password pwd   #git密码

在windows上建_netrc
copy con _netrc  #创建_netrc文件
#依次输入以下3行:
machine github.com    #git服务器名称
login username        #git帐号
password password     #git密码

在最后一行后输入ctrl+z,文件会自动保存并退出

再次在git上提交时就不用重复输入用户名密码了

来自:http://www.etosun.com/post/130
背景:svn pc客户端项目下的版本号发现其svn log号低于svn update的版本号的情况原因及分析,以及用哪个版本号作为项目发布版本号的最终版本。
经过排查,其原因有二:
1、自己所处项目是处在一个项目集中的一个,根下其它项目(于我同级)地方更新后,我权限不够不知道,用客户端工具也好,终端工具也好都无法看到update的最高版本号(整个根下的最高基线)。
2、update的版本号是全局版本号,而自己项目的svn log则是自己项目的版本号,以它为准才相对靠谱些。
阅读全文
FreeSbSD安装Nextcloud:
http://rasyid.net/2015/12/12/how-to-install-php-7-from-source-tar-gz-with-apache-on-freebsd-10-2/
https://project.altservice.com/issues/847

FreeBSD下用Port安装NextCloud:
https://www.freshports.org/www/nextcloud

========================================================================================
tail -f /data/htdocs/xdxp.cn/data/owncloud.log
Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set ‘always_populate_raw_post_data’ to ‘-1’ in php.ini and use the php://input stream instead. in Unknown on line 0

vi php.ini
将下面注释去掉,重启fpm

;always_populate_raw_post_data = -1

service php-fpm restart


=========================================================================================
文件目录 (/data/www/xdxp.cn/data) 可以被其他用户读取
请更改权限为 0770 以避免其他用户查看目录。
chmod -R 0770 /data/www/xdxp.cn/data


update-notification.js 里面是更新的JS文件,提示更新用的。

=========================================

最后从:8.2.11--V:wncloud-9.0.10,只留下config和data文件夹后,

安全及设置警告
#sudo -u www /usr/local/php/bin/php ./occ upgrade

升级出现:
由于 WebDAV 接口似乎被破坏,因此你的网页服务器没有正确地设置来允许文件同步。
Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our documentation. (List of invalid files… / Rescan…)
The "Strict-Transport-Security" HTTP header is not configured to at least "15768000" seconds. For enhanced security we recommend enabling HSTS as described in our security tips.

回退:8.2.11!!!

============================================================================================

Q:PHP 似乎没有设置好查询的系统环境变量。 用 getenv(\"PATH\") 测试只返回一个空值。
请检查PHP配置说明和服务器的 PHP 配置的 安装文档 ↗,使用 PHP-FPM 时尤其如此。
PHP模块'文件信息'丢失. 我们强烈建议启用此模块以便mime类型检测取得最佳结果.
[这个老外真是,搞不明白:]Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our documentation. (List of invalid files… / Rescan…)
A:etenv问题:在php-fpm.conf 中加上 env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin重启一下php-fpm就可以了
From:https://bbs.vpser.net/thread-13442-1-1.html

PHP模块'文件信息'丢失:自己参考:https://www.vpser.net/manage/lnmp-php-install-ext.html 安装上phpinfo模块
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP模块'文件信息'丢失. 我们强烈建议启用此模块以便mime类型检测取得最佳结果."

Some files have not passed the integrity check. :估计可能是与禁用函数有关,按置顶帖去掉scandir函数试试

#grep -r "由于 WebDAV 接口似乎被破坏" ./
./core/l10n/zh_CN.json:    "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "由于 WebDAV 接口似乎被破坏,因此你的网页服务器没有正确地设置来允许文件同步。",
./core/l10n/zh_CN.js:    "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "由于 WebDAV 接口似乎被破坏,因此你的网页服务器没有正确地设置来允许文件同步。",

Your Web server is not yet set up properly to allow file synchronization
“Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken.”
有关这个问题,在ownCloud官方论坛有详细说明:How to fix CalDAV|CardDAV|WebDAV problems
From:https://www.orgleaf.com/2158.html


为进行避免较大的安装时超时,你可以在你的安装目录下运行下面的命令:
./occ upgrade#sudo -u www /usr/local/php/bin/php ./occ upgrade
SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes
Update failed
Maintenance mode is kept active
Reset log level
max_allowed_packet = 256K  ==》max_allowed_packet = 8M
Resolve: http://blog.csdn.net/petter7226/article/details/51239901

步骤一,手动升级ownCloud到8.2.11:

rsync -a /data/htdocs/xdxp.cn/ /data/htdocs/xdxp.cn_bak`date +"%Y%m%d"`/  
wget  -P /data/htdocs "https://download.owncloud.org/community/owncloud-8.2.11.tar.bz2"  
mkdir -p /data/htdocs/owncloud_latest  
rm -rf /data/htdocs/owncloud_latest/*  
tar -C /data/htdocs/owncloud_latest -xjf /data/htdocs/owncloud-8.2.11.tar.bz2  
rsync --inplace -rtv /data/htdocs/owncloud_latest/owncloud/. /data/htdocs/xdxp.cn/.  
chown -R www:www /data/htdocs/xdxp.cn
chmod -R 755 /data/htdocs/xdxp.cn
rm -rf /data/htdocs/owncloud-8.2.11.tar.bz2  
rm -rf /data/htdocs/owncloud_latest/owncloud



步骤二,再再升最新版本是9.0.9,精简成脚本和浏览器访问,脚本收集如下:

rsync -a /data/htdocs/xdxp.cn/ /data/htdocs/xdxp.cn_bak`date +"%Y%m%d"`/  
wget  -P /data/htdocs "https://download.owncloud.org/community/owncloud-9.0.9.tar.bz2"  
mkdir -p /data/htdocs/owncloud_latest  
rm -rf /data/htdocs/owncloud_latest/*  
tar -C /data/htdocs/owncloud_latest -xjf /data/htdocs/owncloud-9.0.9.tar.bz2  
rsync --inplace -rtv /data/htdocs/owncloud_latest/owncloud/. /data/htdocs/xdxp.cn/.  
chown -R www:www /data/htdocs/xdxp.cn
chmod -R 755 /data/htdocs/xdxp.cn
rm -rf /data/htdocs/owncloud-9.0.9.tar.bz2  
rm -rf /data/htdocs/owncloud_latest/owncloud



=============================================

不用删除啥文件,一步一步按下面操作就是了:
第一大步:
rsync -a xdxp.cn/ xdxp.cn_bak`date +"%Y%m%d"`/
wget https://download.owncloud.org/community/owncloud-8.2.5.tar.bz2
mkdir owncloud_latest
文件夹存在后,则:
rm -Rf owncloud_latest/*
tar -C owncloud_latest -xjf owncloud-8.2.5.tar.bz2

[root@jackxiang htdocs]# rsync --inplace -rtv owncloud_latest/owncloud/. xdxp.cn/.
sent 99396465 bytes  received 203530 bytes  4632557.91 bytes/sec
total size is 98794138  speedup is 0.99

chown -R www:www xdxp.cn

第二大步:
访问xdxp.cn 后会提示wait 一会儿,作下升级,后重新刷新即可。

刷新时会提示:
ownCloud 将会更新到版本 8.0.2。
在继续之前,请确认数据库、配置文件夹和数据文件夹已经备份。
为避免更大的安装演示,你能在你的安装目录下面运行这些命令:
./occ upgrade
———————————————————————————————
root@119.10.6.**:/data/htdocs/xdxp.cn# ./occ upgrade
PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code.
To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini

vi /usr/local/php/etc/php.ini
; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
; to disable this feature. If post reading is disabled through
; enable_post_data_reading, $HTTP_RAW_POST_DATA is *NOT* populated.
; http://php.net/always-populate-raw-post-data
;always_populate_raw_post_data = On    //打开这个
==========================================================================
打这个有啥用呢,查了一这个always_populate_raw_post_data和这个WebDAV有关:
允许在 PHP 脚本中处理 WebDAV 的 HTTP 请求(例如 PROPFIND,PROPPATCH,MOVE,COPY 等)。此选项在 PHP 4.3.2 以后便不存在了。如果要取得这些请求的 POST 数据,也要设定 always_populate_raw_post_data。
WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。


附录,升级后代码有兼容性的问题:
==> php-error.log <==
[10-Apr-2015 02:42:49 UTC] PHP Fatal error:  Class OCA\Contacts\Share\Addressbook contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (OCP\Share_Backend::isShareTypeAllowed) in /data/htdocs/xdxp.cn/apps/contacts/lib/share/addressbook.php on line 1

成功解决办法来源链接:
https://datenfahrt.org/wiki/blog/2015/03/owncloud-update-notizen-7.0.4-to-8.0.2
操作步骤如下:
实践如下后,显示正常,升级成功(这一块owncloud感觉好像在兼容性上不是太好):
mysql> desc oc_appconfig;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| appid       | varchar(32) | NO   | PRI |         |       |
| configkey   | varchar(64) | NO   | PRI |         |       |
| configvalue | longtext    | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+


$ mysql owncloud-db-name -u username -p
mysql> update oc_appconfig set configvalue="no" WHERE appid="contacts" AND configkey="enabled";
mysql> update oc_appconfig set configvalue="no" WHERE appid="calendar" AND configkey="enabled";
mysql> update oc_appconfig set configvalue="no" WHERE appid="contacts" AND configkey="enabled";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> update oc_appconfig set configvalue="no" WHERE appid="calendar" AND configkey="enabled";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0



ownCloud是一款保持更新的开源私有云系统,基于PHP5开发的。支持SQLite、MySQL、Oracle以及PostgreSQL等数据库。本文介绍的是如何手动升级的步骤。
请务必遵循以下原则升级:
1、备份原文件夹;
2、停用所有第三方apps;
3、解压最新版的安装包,覆盖到原文件夹中;
4、确认所有的文件和文件夹权限是正确的;
5、打开ownCloud首页,升级自动进行。
假设将ownCloud安装在web根目录下的./ownCloud/文件夹中,SSH登录,进入web根目录后按照如下步骤进行升级:
1、使用rsync命令的存档模式备份./ownCloud/文件夹(该模式可以保留文件权限、拥有者、时间戳等信息),执行命令如下:
rsync -a owncloud/ owncloud_bkp`date +"%Y%m%d"`/
2、官网下载最新版ownCloud,执行命令如下:
wget http://download.owncloud.org/community/owncloud-latest.tar.bz2
3、将最新版的压缩包解压到./owncloud_latest/文件夹,执行命令如下:
mkdir owncloud_latest
tar -C owncloud_latest -xjf owncloud-latest.tar.bz2
4、使用rsync命令覆盖./ownCloud/文件夹,执行命令如下:
rsync --inplace -rtv owncloud_latest/owncloud/ owncloud/
5、删除安装包(安全起见),执行命令如下:
rm -rf owncloud-latest.tar.bz2 owncloud_latest/
注意事项:
1、如果你已经上传了大量的数据,请在升级时确认硬盘空间是否足够;
2、在后台点击升级,只会下载最新版安装包到backup文件夹,并不会自动安装,同时会将config.php中的maintenance mode修改为true。
这就会导致一个错误提示“OwnCloud is in maintenance mode”,因此在手动升级后,需要将./owncloud/config/config.php中的maintenance mode从true改为false,再打开首页才能顺利升级;
3、升级到最新版的ownCloud后,经过我的测试(测试环境:CentOS6.4_x86, LAMP一键安装包),是可以很好的支持中文的(目录名和文件名皆可)。
参考原文:http://doc.owncloud.org/server/5.0/admin_manual/maintenance/update.html
解析UC/OS-II时钟中断技术阅读全文
  最近一直在看《Linux程序设计(第3版)》,照着书上的代码原封不动地敲上去,编译后就出现了à警告:隐式声明与内建函数’exit’不兼容。
警告:隐式声明与内建函数‘exit’不兼容



       原因其实很简单了,没有把stdlib.h包含进来,加上就没问题了。后来google搜索的时候发现网上很多人有这个问题,今天来记下这个问题的解决方案。

以此类推,编译后出现警告:隐式声明与内建函数’XXX’不兼容的问题所在都是因为没有包含相应的头文件,加上就OK!

来自:http://blog.csdn.net/monkey_d_meng/article/details/5565667
分页: 65/271 第一页 上页 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 下页 最后页 [ 显示模式: 摘要 | 列表 ]