http://www.gugesou.com/
http://www.googke.me/
http://s.amysql.com/
http://onccc.net/
http://www.googleisok.com/
https://yue.pao.im/
https://da.pao.im/
https://ibd.pt/
https://soso.red/
https://google.sqzr.cc/
https://www.out1000.com/
http://web.btbook.net/
https://www.lamjoeone.info/
https://jiong.lu/
http://www.googleforchina.com/
https://g.net.co/
https://repigu.com/
https://awk.so/
http://gl.randomk.org/
https://g4w.me/
https://safesearch.avira.com
https://sec.hikyle.me/
http://suche.web.de/
http://webwebweb.com/
http://guge.io/
https://g.keyiso.com/
https://goojie.me/
http://e127f.azurewebsites.net/
http://0s.o53xo.m5xw6z3mmuxgizi.erenta.ru/
http://www.souji8.com/
http://865ba.azurewebsites.net/
https://gusouk.com/
https://d3vv89cvqbrqlq.cloudfront.net/
http://out1000.com/
https://gg.jude.me/
http://google.chn.im/
http://www.sousuodao.com 搜索岛
http://www.googleout.com/
https://g.ratafee.nl/
http://www.1220.cc/
http://music.google.cn/webhp
https://www.glgoo.com GLGOO
https://gg.eeload.com/ GG.EELOAD.COM
http://gusou.in/ GUSO.IN
http://www.wow.com/ WOW
https://xie.lu/ 斜路
https://www.ggncr.com GGNCR.COM
http://www.gfsoso.com 谷粉搜搜
http://www.886404.com/ 886 404 Google
https://g.ttlsa.com/
http://home.tb.ask.com/ ASK Google
http://verygoogle.com/
http://g.openibm.com/ OpenIBM Google
http://z7.cc
http://www.Google.com.im 谷歌复原
http://goog.sinaapp.com
https://sinaapp.co/ Google镜像
https://wen.lu/ Google问路
http://www.sssis.com 备案域名反代理到Google IP
http://www.gvgle.com 代理到Google IP
http://gu1234.com 代理到Google IP
http://www.xiexingwen.com Google镜像,动态检测可用Google服务器IP,实时更新
https://s3.amazonaws.com/google./index.html Google免翻墙镜像,如果镜像被封锁,访问 https://github.com/greatfire/wiki 获得最新网址。
http://www.GoogleStable.com www.GoogleStable.com
http://www.tmd123.com 通天塔
swoole 学习资源
PHP 异步并行编程_韩天峰 http://wenku.it168.com/d_001518990.shtml
swoole文档及入门教程 https://github.com/LinkedDestiny/swoole-doc
swoole多进程实例 http://www.royee.net/archives/261
yii-tips
默认控制器
普通控制器
defaultController => 'site'
module内的默认控制器
modules => array( 'web' => array( 'class' => 'application.modules.web.WebModule', 'defaultController' => 'index' ) )
默认控制器为module内的控制器
defaultController => 'web/site'
别名
内置别名有
Yii::setPathOfAlias('application',$this->getBasePath()); Yii::setPathOfAlias('webroot',dirname($_SERVER['SCRIPT_FILENAME'])); Yii::setPathOfAlias('ext',$this->getBasePath().DIRECTORY_SEPARATOR.'extensions');
获取别名的路径
Yii::app->getAliasPath('webroot');
自定义别名
Yii::setPathOfAlias('test',$this->getBasePath());
路由
后缀
'urlSuffix' => '.html'
忽略大小写
'caseSensitive' => false,
隐藏module
'/<controller:\w+>' => 'web/<controller>', '/<controller:\w+>/<action:\w+>' => 'web/<controller>/<action>', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'web/<controller>/<action>'
日志
1、 显示执行的
sql
'routes' => array( array( 'class' => 'CWebLogRoute', 'levels' => 'trace,warning,error,info', 'categories' => 'system.db.CDbCommand.*', ) ),
2、自定
category
调试控制器台程序array( 'class'=>'CFileLogRoute', 'categories'=>'debug.*', ),
使用
Yii::log($message, 'info', 'debug');
ActiveRecord
自动记录 创建时间、修改时间
protected function beforeSave() { if ($this->isNewRecord) { $this->add_time = time(); } else { $this->modify_time = time(); } return parent::beforeSave(); }
2. 乐观锁(版本号)
class PostModel extends CActiveRecord
{
public function rules()
{
return array(
array('version', 'required'),
array('id', 'exists', 'on' => 'update', 'criteria' => array('condition' => 'version <'. $this->version))
);
}
}
$model1 = PostModel::model()->findByPk(1);
$model2 = PostModel::model()->findByPk(1);
$model1->version = $model->version++;
$model->save();//true
$model2->save();//false
显示控制器
action
执行时间protected function afterAction($action) { $time = sprintf('%0.5f', Yii::getLogger()->getExecutionTime()); $memory = round(memory_get_peak_usage() / (1024 * 1024), 2) . "MB"; echo "Time: $time, memory: $memory"; parent::afterAction($action); }
维护通知
main.php
return array( .... 'catchAllRequest'=>array( 'offline/notice' 'otherParams'=>'value', ), .... ),
memcached批量删除
都说Cache是万金油,哪里不舒服抹哪里。不过要想批量删除缓存可没那么简单,
memcached 不支持批量删除缓存键。
遍历方式
|
|
代码摘自 php手册
版本号方式
通过维护一个版本号管理缓存键,删除缓存时直接更新版本号,则带有版本号的缓存到过期时间时自动被删除(memcached的删除机制和发展方向)。
|
|
打tag方式
存储时关联缓存键和tag(可以多个)。删除时通过tag找到管理的缓存键,便利删除。
|
|
代码摘自zendframework Memcache should support tags
参考
实现远程文件打包下载
传统实现方法
下载远程文件到本地服务器—>压缩–>下载–>删除。
这样实现 消耗内存、cpu、大量磁盘空间、速度太慢(取决于网络).使用第三方mod_zip 实现打包下载。
内存消耗极低。
通过输出X-Archive-Files
和文件列表,自动将远程文件打包下载避免了临时文件的创建和删除。
安装过程
下载mod_zip 源文件
|
|
tengine安装过程
使用dso-tool编译动态模块
报错1
修改为
保存
重新编译
仍然报错
注释掉
重新编译通过
查看动态模块是否生成
- 修改nginx配置文件测试
|
|
- 编写测试代码
|
|
tips
- 文件大小一定要正确 否则压缩打不开
- 文件uri (非url 远程文件需要配置nginx跳转).
例子中的lms(fastdfs)远程文件 需要在nginx内做配置跳转到正确的地址。 - 如果不需要断点续传crc32参数可以使用
-
忽略。12345678#vi nginx.confserver {...location /lms {proxy_pass http://fastdf_server;}...}
nginx 安装
查看旧的编译参数
1#/usr/local/nginx/sbin/nginx -V编译
|
|
报错级处理参考tengine内的处理方法.
#升级nginx