6. 设置cron计划任务
设置cron计划任务方法有许多
在这里主要介绍2种方法
- 红帽自带的cron任务
- 阿里云监控
1.红帽自带的cron任务
在这里我就直接搬运论坛大神Fans Leader的教程了
http://www.kookxiang.com/thread-425-1-1.html
首先登录openshift的网站。
打开你的应用设置页面
接着选择"Or, see the entire list of cartridges you can add"
然后找到"Cron 1.4",然后添加
添加完成后Cron就安装完了,接下来就是重头戏了,也是最重要的部分。
登录SSH,然后依次进入app-root-runtime-repo-.openshift-cron-minutely
在winscp中路径会显示为/var/lib/openshift//app-root/runtime/repo/.openshift/cron/minutely(为随机字符串,每个人都不同,以实际为准)
然后新建一个sh文件,你可以将文件名写成"qiandao.sh",然后输入以下内容
php /var/lib/openshift/*/app-root/runtime/repo/php/cron.php
(*为随机字符串,每个人都不同,以实际为准,填入你的winscp显示的)
然后保存,就这样,我们完成了cron设置。
PS:其实使用openshift自带的cron在执行任务的时候会比外界cron快很多,我来解释下为什么。
外界cron执行事例:本部服务器→(GET请求)→openshift执行任务→(签到请求)→百度服务器→(返回结果)
内置cron执行事例:openshift服务器→(执行任务)→(签到请求)→百度服务器→(返回结果)
从图示上看,使用内置cron少了一个GET请求过程,为什么呢,因为我们在脚本中定义了,直接用php执行,耗时可以忽略不计,对于强迫症的童鞋,几百毫秒的时间差也会要命吧,本来从百度ping到openshift大概在100ms、200ms左右,如果你用其他的cron服务的话,网速快的话也有几十毫秒差,省下这些时间不但可以提高执行效率还能执行的更多也说不定。
前面的添加cron我们已经搞定了,我们直接从后面开始
我们先用winscp登录SSH,然后依次进入app-root-runtime-repo-.openshift-cron-minutely
然后新建一个sh文件,名字随意,后缀我们填.sh
创建后会弹出一个编辑框,我们输入
php /var/lib/openshift/*/app-root/runtime/repo/cron.php
在这里我们需要注意的是我们的路径中没有/php文件夹了,所以命令中也就不需要了
细心的童鞋们会发现,其实那个*随机字符串也就是我们的登录名去掉@后面一部分
创建成功后,cron任务就添加完成了
之后在域名的DNS里面设置下
记录类型选CNAME 怎么设置
又来麻烦你了,重启了很多次都是这样,要么是在那个更新的页面那里,要么就是在这,一直显示这个玩意,原谅我英语课在睡觉
MySQL Query ERROR
[1060] Duplicate column name 'zhidao_sign'
[Query] ALTER TABLE member_setting ADD zhidao_sign TINYINT(1) NOT NULL AFTER wenku_sign
这个是红帽缓存的问题,是因为红帽在某次更新后默认开启了PHP5.3的APC缓存控制,由于本教程写的时间有点长,所以未提及这个问题。
缓存问题解决方法如下:
1.重启应用即可刷新缓存,但是助手有时候会提示数据库错误。
2.我们可以用Openshift的rhc工具来关闭APC缓存
安装官方RHC工具后,运行以下命令即可关闭APC缓存
rhc env-set OPENSHIFT_PHP_APC_ENABLED=false --app [你的应用名称]
3.在PHP5.4环境下安装助手,详情可参考我下个教程。
http://www.ffis.me/Automatic_installation.html
我发现,每次来你这回复一次,再上去,就没问题了,真™奇了怪了,现在一切都弄好了,就是不签到,我再搞一次试试吧
不签到可能是计划任务的问题,首日绑定成功后次日才开始签到哦
使用一键安装助手后,在安装向导界面不要用自动安装,要使用手动安装(就是手动填管理员账号密码数据库信息什么的),自动安装容易出错,然后重启之解决
Access denied for user ''@'localhost' (using password: NO)
照着你另外那个教程做了,结果是这样子,用户名和密码都是用它生成的,其他的也试过了,重启很多次了,希望回复你之后我马上又搞定这个问题
做完最后一步添加自动重启脚本后打开显示http-101错误 链接已被重置怎么办
自动重启脚本可加可不加,现在红帽已经不用重启啦,不过你说的那种情况我没遇到过,有截图就更好了
谢谢,之前我忘记要在http后面+个s了,现在搞定了,谢谢你的教程
教程不错、就是Openshift太慢了,受不了呢
亲,openshift速度已经可以了,而且已经很稳定了,我博客挂了n次了,红帽一次都没挂...
检查了一下没上传错地方呀,网站进去还是Welcome to your PHP application on OpenShift
红帽上次更新有缓存了,上传完成后需要重启应用,出错就一直重启即可。
搞定了 谢谢~ 但是它不签到是为什么0.0
每分钟一次cron任务设置没?计划任务必须每分钟一次,不然无法触发签到任务
错误:无法连接数据库服务器!
亲,是不是您的数据库信息填错了呢。请尝试重启应用,不行就重新安装下
相当详细的教程,感谢分享
弄完后还是显示 Welcome to your PHP application on OpenShift
已经下载到根目录了,并且Install完成,网址:https://deepbluestudio-deepbs.rhcloud.com/
亲,重启安装下试试,我这真的没出现那种情况...我刚刚还装了一个,重启应用看看
KK Tieba Signer Database Error什么回事
在您的域名后加/install
怎么重启
又重新安装了一次,可是一登录就显示Welcome to your PHP application on OpenShift是怎么一回事啊.
亲,在上传文件的时候仔细看我的图,还有上传路径
直接GIT源码不行吗?