-
Notifications
You must be signed in to change notification settings - Fork 18
FAQ issue
#开启 mod_headers 模块 LoadModule headers_module modules/mod_headers.soNginx 配置方法#禁止css与js文件浏览器缓存 <FilesMatch ".(css|js)(.*)$"> header set Cache-Control "max-age=0, no-cache" </FilesMatch>
server { #其它配置 ...#禁止css与js文件浏览器缓存 location ~ .(css|js)(.)$ { #其它配置 root ...
add_header Cache-Control "max-age=0, no-cache"; } }
of_base_com_net::isCli(); //返回 true 则设置成功二, Apache开发环境建议: httpd.conf配置足够长的超时时间
FcgidIOTimeout 864000 FcgidBusyTimeout 864000
set_time_limit(60);二, 为网络请求函数设置"响应超时"排查网络异常, "脚本超时"对"响应超时"无效
//不包含CURL的响应超时 ini_set('default_socket_timeout', 60);三, 上述无效时, 添加"调试代码", 记录每个节点位置, 再分析排查//CURL 响应超时(60s) curl_setopt($ch, CURLOPT_TIMEOUT, 60);
//file_get_contents 响应超时(60s) file_get_contents(URL, false, stream_context_create(array( 'http' => array( 'timeout' => 60 ) )));
//推荐 of_base_com_net::request 默认default_socket_timeout超时设置 of_base_com_net::request(URL);
linux 查看异步进程 printf '%b\n\n' $(ps aux --sort -rss | grep \.php | sed 's/ /%20/g;s/%/\x/g')
- 配置多个系统副本, OF_DATA目录共享, 配置 "_of.nodeName" 区分不同副本
- 将所有 kv 配置成非files模式, 如redis分布式模式, 注意 default 和 _ofSelf 有默认配置
- 切换数据锁, 如切到swooleRedis 配置_of.com.data.lock 挂载多个磁盘
- 使用分布式数据库, 如TIDB
- 消息队列使用非MySQL方式, 如redis方式
- 减少不必要 SESSION 生成, 如serv层的API, 可以通过 _of.session.autoStart 配置
- SESSION切到非files模式, 如kv(依赖数据锁)或db(不依赖磁盘), 最好用cookie绑定将files分布式独立存储
- 动态计划任务切换到db模式, 配置_of.com.timer.task
40000 lock single local: 0.4s lock single minio-goofys: 20.91s lock single cephfs: 17.74s lock single nfs-memory: 25.87s lock single nfs-disk: 22.35s lock single redis-RDB+AOF: 16.44s lock single redis-none: 16.29s40000 lock rand local: 5.09s lock rand minio-goofys: 345.47s lock rand cephfs: 37.57s lock rand nfs-memory: 167.46s lock rand nfs-disk: 27.59s lock rand redis-RDB+AOF: 40.48s lock rand redis-none: 8.15s
10000 write single local: 0.79s write single minio-goofys: 93.62s write single cephfs: 46.25s write single nfs-memory: 27.63s write single nfs-disk: 8.85s
100000 read single local: 0.87s read single minio-goofys: 38.35s read single cephfs: 1.16s read single nfs-memory: 3.27s read single nfs-disk: 2.89s
40000 delete batch local: 0.43s delete batch minio-goofys: 60.02s delete batch cephfs: 25.51s delete batch nfs-memory: 14.73s delete batch nfs-disk: 13.4s
手册地址 http://phpof.net/
- 入门指引
-
疑难解答
- 部署时会遇到的那些常见问题
简单却容易忽视 - 框架内置有哪些管理界面
生产模式进入界面需用 __OF_DEBUG__ - 如何定制不同的架构模式
通过配置入口文件中调度方法的参数即可 - 如何面向命名空间开发
of_xx 类可以按照命名空间方式调用 - 如何设置不同的部署模式
通过_of.debug设置 开发,测试,生产 模式 - 为什么控制层类文件要返回true
这是防止非法访问的方法之一 - 为什么传到视图层的变量会被编码
这是因为 XSS 安全防范的原因 - 为什么框架没有SQL构造器
因常规方案牺牲了性能又未很好解决问题 - 如何快速开发用户及权限管理功能
单点登录(SSO)模块因此而存在 - 怎么在系统的基础上扩展底层功能
三点: 扩展开发, 预先加载, 底层钩子 - 怎么使用 Composer 依赖管理工具
框架已集成, 默认关闭状态
- 部署时会遇到的那些常见问题
- 组件使用
- 集成插件
- 扩展开发
- 开发手册