default.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. <?php
  2. # 集成项目的大部分配置,此为默认设置。环境不同,以下的配置也有可能不同,可以根据项目名建立配置文件
  3. # 基本配置
  4. $config['base'] = array
  5. (
  6. # 项目部署的相对路径(部署在服务器的根目录,如果不定义DEVER_PROJECT_NAME,则本项必须启用并有效)
  7. 'path' => DIRECTORY_SEPARATOR . 'workspace' . DIRECTORY_SEPARATOR,
  8. # 访问assets目录的物理路径
  9. 'assets' => DEVER_APP_PATH . 'assets' . DIRECTORY_SEPARATOR,
  10. # 访问data目录的物理路径
  11. 'data' => DEVER_PROJECT_PATH . 'data' . DIRECTORY_SEPARATOR,
  12. # 访问当前项目目录的物理路径,如果项目和dever类库在一个目录中,则为DEVER_PATH,如果不在,则为DEVER_APP_PATH,当然也可随意更改,这里目前只影响合并操作
  13. 'workspace' => DEVER_APP_PATH,
  14. # 定义api的token明文,如果和其他业务有合作,建议使用系统自带的接口api,自带加密解密程序。
  15. 'token' => 'dever_api_2016',
  16. # 是否启用nocache,如果是互动类的项目且主域增加了cdn,建议开启
  17. 'clearHeaderCache' => false,
  18. # api文档生成是否开启,开启后,将会根据访问来生成文档。生产环境建议禁止
  19. 'apiDoc' => true,
  20. # api日志是否开启,开启后,将会记录所有带有_api后缀方法的请求参数和响应参数
  21. 'apiLog' => true,
  22. # 定义自动转为api的目录,可以将该目录下的所有类的公共方法,都转为可以访问的api,开启该功能可能有安全性问题。
  23. 'apiOpenPath' => 'src',
  24. # 启用后,将会根据api目录下的配置文件自动定位api
  25. 'apiConfig' => true,
  26. # 启用apiConfig后,生成的signature保存的位置:file和db,默认为db
  27. //'apiSignature' => 'file',
  28. # 开启用户触发cron,主要用于无法加到系统计划任务的虚拟主机,必须安装manage组件,谨慎开启,会稍微影响程序执行效率
  29. //'cron' => true,
  30. # php命令行的路径
  31. 'php' => 'php',
  32. #sessionPath
  33. 'sessionPath' => '/tmp/',
  34. # 队列
  35. 'queue' => array
  36. (
  37. 'method' => 'db',
  38. /*
  39. 'method' => 'redis',
  40. 'host' => '',
  41. 'port' => '',
  42. 'password' => '',
  43. */
  44. ),
  45. );
  46. # 模板配置
  47. $config['template'] = array
  48. (
  49. # 是否启用静态资源域名动态化,启用之后,静态资源的域名将动态加载,适合使用多个域名或publish启用
  50. 'domain' => true,
  51. # 是否开启强制刷新页面缓存
  52. 'shell' => 'temp',
  53. # 是否开启手动更改模板名称,允许通过$_GET的方式来更改当前模板,值为$_GET的key值,默认关闭
  54. //'name' => 'template',
  55. # publish 是否发布,此项开启后,系统不会检测service(意味着不用将service打包上线),适合生产环境,并能对代码起到一定的加密保护。
  56. //'publish' => true,
  57. );
  58. # 数据库配置
  59. $config['database'] = array
  60. (
  61. # database 中的reuqest的兼容定义,如果启用了该选项,需要自行开发database/compatible目录下相对应的数据表文件中的request方法。
  62. //'compatible' => 'model',
  63. # 是否开启mysql自助优化功能,开启后,会记录所有where条件和order的字段,可以方便的在后台进行分析、增加索引,必须安装manage组件
  64. 'opt' => false,
  65. # 是否开启sql自动优化,将sql中的select * 转换为 select a,b形式,将sql中的where条件按照索引从左到右自动排序,必须打开上述的opt选项,数据量大时建议打开。
  66. 'sqlOp' => false,
  67. # 关闭自助建表,生产环境建议开启,开启之后无法对数据表结构进行更新操作
  68. //'create' => true,
  69. # 默认数据库配置
  70. 'default' => array
  71. (
  72. 'type' => 'pdo',
  73. 'pdo_type' => 'mysql',//pgsql
  74. 'host' => array
  75. (
  76. 'read' => 'web-mysql:3306',
  77. 'update' => 'web-mysql:3306',
  78. //'read' => '192.168.1.203:3307',
  79. //'update' => '192.168.1.203:3307',
  80. ),
  81. 'database' => 'dever',
  82. 'username' => 'root',
  83. 'password' => '123456',
  84. 'charset' => 'utf8mb4',
  85. ),
  86. # 持久化服务器,只负责保存数据,跟读写分离差不多,但可以更换不同的数据库类型
  87. /*
  88. 'save' => array
  89. (
  90. 'type' => 'pdo',
  91. 'host' => 'localhost:3306',
  92. 'database' => 'dever_test',
  93. 'username' => 'root',
  94. 'password' => '123456',
  95. 'charset' => 'utf8',
  96. ),
  97. */
  98. # 迁移旧的数据库服务器,使用方法:Dever::db('atom/article:old')
  99. 'old' => array
  100. (
  101. 'type' => 'pdo',
  102. 'host' => '192.168.1.205:3307',
  103. 'database' => 'old',
  104. 'username' => 'root',
  105. 'password' => '123456',
  106. 'charset' => 'utf8',
  107. ),
  108. 'elastic' => array
  109. (
  110. 'type' => 'elastic',
  111. 'host' => '192.168.1.203:9200',
  112. 'database' => 'purify1',
  113. 'username' => 'elastic',
  114. 'password' => 'changeme',
  115. # 分词插件 只针对text类型的字段有效
  116. 'analyzer' => 'ik_max_word',
  117. # 基本配置
  118. 'setting' => array
  119. (
  120. 'index' => array
  121. (
  122. 'number_of_shards' => 2,
  123. 'number_of_replicas' => 1,
  124. ),
  125. ),
  126. ),
  127. 'mongo' => array
  128. (
  129. 'type' => 'mongo',
  130. 'host' => '192.168.1.203:27017',
  131. 'database' => 'dever',
  132. 'timeout' => 1000,
  133. )
  134. );
  135. # 缓存配置 多级缓存
  136. $config['cache'] = array
  137. (
  138. # 启用mysql数据库缓存,这个缓存是根据表名自动生成,dever::load形式和service的all、one形式均自动支持,无需手动添加
  139. 'mysql' => 0,
  140. # 启用页面缓存 会根据当前的url来生成缓存,相当于页面静态化。
  141. 'html' => 0,
  142. # 启用数据级别缓存 这个缓存是程序员自定义的:Dever::cache('name', 'value', 3600);
  143. 'data' => 3600,
  144. # 启用load加载器缓存,一般不加载
  145. 'load' => 0,
  146. # 启用load加载器的远程加载缓存
  147. 'curl' => 3600,
  148. # 启用路由缓存
  149. 'route' => 0,
  150. # 路由缓存精细控制,可以根据缓存的key(mysql为表名、service为小写类名,规则是模糊匹配),来控制每一条缓存,如果为0则不缓存
  151. 'routeKey' => array
  152. (
  153. 'journal.home' => 0,
  154. 'passport' => 0,
  155. 'oauth' => 0,
  156. ),
  157. /*
  158. # load缓存精细控制,可以根据缓存的key(mysql为表名、service为小写类名,规则是模糊匹配),来控制每一条缓存
  159. 'loadKey' => array
  160. (
  161. # 定义缓存名为auth.data的缓存时间
  162. 'auth.data' => 200,
  163. ),
  164. # mysql缓存哪个key不用缓存,和上边的routeKey里的值为0一样
  165. 'mysqlNone' => array
  166. (
  167. 'passport',
  168. 'oauth',
  169. 'manage',
  170. ),
  171. */
  172. # 缓存清理的参数名,请通过shell=clearcache执行
  173. 'shell' => 'clearcache',
  174. # 是否启用key失效时间记录,启用之后,将会记录每个key的失效时间
  175. 'expire' => true,
  176. # 缓存类型
  177. 'type' => 'memcache',//memcache、redis
  178. # 缓存保存方式,支持多个数据源、多台缓存服务器
  179. 'store' => array
  180. (
  181. /*
  182. array
  183. (
  184. 'host' => 'server-memcached',
  185. 'port' => '11211',
  186. 'weight' => 100,
  187. ),
  188. array
  189. (
  190. 'host' => 'server-memcached',
  191. 'port' => '11212',
  192. 'weight' => 100,
  193. ),
  194. */
  195. ),
  196. );
  197. # debug配置
  198. $config['debug'] = array
  199. (
  200. # 开启错误提示 生产环境建议禁止
  201. 'error' => true,
  202. # 日志记录,为空则不开启,type可选值为file、syslog、udp、http,默认为syslog
  203. 'log' => array('type' => 'syslog','host' => 'host', 'port' => 'port'),
  204. # 是否开启记录超时时间,单位为秒
  205. 'overtime' => 3,
  206. # 开始访问报告
  207. # 生产环境建议禁止或添加ip限制,多个ip用逗号隔开
  208. # 如禁止,值为false,下述shell也将失效
  209. # 值为2,则开启强制模式,任何输出都将打印debug
  210. 'request' => Dever::ip(),
  211. # 设定打印访问报告的指令
  212. 'shell' => 'debug',
  213. # 以上指令,请通过&shell=debug来执行,如果你想设置断点或者打印当前业务逻辑下的sql,请直接用Dever::debug();打印数据
  214. );
  215. $local = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost';
  216. # 本地可用这个
  217. $host = 'http://'.$local . '/';
  218. # 定义assets的域名
  219. $assets = DEVER_APP_HOST . 'assets/';
  220. //$project_host = str_replace(DEVER_APP_NAME . '/', '', DEVER_APP_HOST);
  221. $project_host = $host . '' . DEVER_PROJECT . '/';
  222. # 定义data域名
  223. $data_host = $project_host . 'data/';
  224. if (DEVER_APP_NAME == 'manage') {
  225. $assets = $host . 'dever_package/manage/assets/';
  226. }
  227. if (DEVER_APP_NAME == 'main' && !strstr($assets, 'main')) {
  228. $assets = DEVER_APP_HOST . 'main/assets/';
  229. }
  230. # host 设置
  231. $config['host'] = array
  232. (
  233. # 是否更新当前的url和跟目录路径到系统中,当一个系统有多个
  234. 'sync_path' => true,
  235. 'sync_url' => true,
  236. # 跟域名
  237. 'base' => DEVER_APP_HOST,
  238. 'host' => $host,
  239. # cookie 域名
  240. 'cookie' => '',
  241. # assets网络路径,会自动将assets替换为assets/模板
  242. 'assets' => $assets,
  243. # 当前的assets路径
  244. 'css' => $assets . 'css/',
  245. 'js' => $assets . 'js/',
  246. 'img' => $assets . 'img/',
  247. 'images' => $assets . 'images/',
  248. 'lib' => $assets . 'lib/',
  249. 'fonts' => $assets . 'fonts/',
  250. 'static' => $assets . 'static/',
  251. 'assets_static' => $assets . 'assets/',
  252. # script组件路径
  253. 'script' => $host . 'dever_package/script/assets/',
  254. # 合并之后的网络路径,填写之后自动合并资源,不填写则不合并,适合把资源放到云端
  255. //'merge' => $data_host . 'assets/' . DEVER_PROJECT . '/',
  256. # 上传系统的上传路径的域名(不带action)
  257. 'upload'=> $project_host . 'upload/?save',
  258. # 上传系统的资源访问地址
  259. 'uploadRes' => $data_host . 'upload/',
  260. # 域名替换,支持*通配符
  261. /*
  262. 'domain' => array
  263. (
  264. 'rule' => function()
  265. {
  266. $source = $desc = 'http://';
  267. if(function_exists('isHttps') && isHttps())
  268. {
  269. $desc = 'https://';
  270. }
  271. return array($source, $desc);
  272. },
  273. 'replace' => array('*.selfimg.com.cn')
  274. ),
  275. */
  276. # 是否启用代理功能
  277. //'proxy' => $host . 'dever/application/plant/main/?data.proxy?',
  278. # 项目定义,Dever::load将自动转为这个配置,替换掉data/project/default.php里的数据
  279. 'project' => array
  280. (
  281. 'test' => array('url' => '', 'path' => ''),
  282. ),
  283. 'apiServer' => array
  284. (
  285. 'type' => 'tcp',
  286. # 以下为tcp模式特有的配置
  287. # 是否使用后台运行
  288. //'backend' => 1,
  289. # 以下为swoole的配置
  290. 'worker_num' => 1,
  291. ),
  292. );
  293. if (DEVER_APP_NAME == 'manage') {
  294. $config['host']['merge'] = false;
  295. }
  296. return $config;