Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于 Cache #115

Closed
shoaly opened this issue Sep 27, 2015 · 4 comments
Closed

关于 Cache #115

shoaly opened this issue Sep 27, 2015 · 4 comments

Comments

@shoaly
Copy link
Contributor

shoaly commented Sep 27, 2015

...
/**
* 获取缓存文件名
*
* @param string $key
*
* @return string
*/
protected function getCacheFile($key)
{
// 如果不区分的话, 命令行执行的时候 缓存文件的拥有者会不是 apache
// return sys_get_temp_dir().DIRECTORY_SEPARATOR.md5($this->prefix.$key);
return sys_get_temp_dir().DIRECTORY_SEPARATOR.'by_'.php_sapi_name().'_'.md5($this->prefix.$key);
}
...

  • 出现问题的时候 是这样的 , 通常情况下 都是 web容器, 比如apache 去执行的,
  • 这样 这个缓存文件的拥有者是apache , 但是如果 用户 写了 phpunit, 那么在部署代码的时候 跑phpunit的时候 会将 缓存的文件 拥有者 变成 调用phpunit的那个 linux用户
  • 这样 apache那边 就没有权限 访问到这个缓存文件了
@shoaly shoaly closed this as completed Sep 27, 2015
@shoaly
Copy link
Contributor Author

shoaly commented Sep 27, 2015

这样还不行, 无法保证 缓存的accesstoken 是一致, 需要兼容性更好的解决办法

@overtrue
Copy link
Collaborator

你在干嘛?phpunit还在生产环境玩了?而且phpunit为啥还有文件系统了?你确定你真的会单元测试?

@shoaly
Copy link
Contributor Author

shoaly commented Sep 28, 2015

phpunit 不应该在生产环境跑么, 那用什么方法可以确认 本地跑的代码 在服务器上也正常呢? 通常程序员都喜欢对着线上的bug说"在我本地是好的呢".. 所以我一般也会在 生产环境跑一遍, 确保没有问题

@overtrue
Copy link
Collaborator

  1. 上线前通常代码会提交到代码仓库如gitlab之类的,同时你应该有一个CI(持续集成)服务来对代码质量进行检查,CI检查完毕生成是否可上线的结果
  2. 手动使用一些服务或者脚本导出git代码到生产服务器

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants