我试图找出如何更改Lumen项目上的默认存储位置(包括它的子文件夹)。由于多种原因,考虑到生产Web服务器的当前配置,Lumen在尝试编写日志或编译刀片视图时会抛出权限被拒绝异常。流明 - 更改默认存储路径
不涉及sysadmin的唯一选择是将存储文件夹移动到Web服务器上的tmp文件夹。
在laravel上,似乎有一种名为“useStoragePath”的方法,但它似乎在Lumen(5.2.x)上不可用。
的默认路径似乎是 “硬编码”,我发现这一点:
Project\vendor\laravel\lumen-framework\src\Application.php
/**
* Get the storage path for the application.
*
* @param string|null $path
* @return string
*/
public function storagePath($path = null)
{
return $this->basePath().'/storage'.($path ? '/'.$path : $path);
}
而对于日志(同一个文件):
/**
* Get the Monolog handler for the application.
*
* @return \Monolog\Handler\AbstractHandler
*/
protected function getMonologHandler()
{
return (new StreamHandler(storage_path('logs/lumen.log'), Logger::DEBUG))
->setFormatter(new LineFormatter(null, null, true, true));
}
底线:有没有干净的方式覆盖默认存储路径牢记这个限制?:
- 我的t不应该涉及sysadmin(sym链接,更改权限等)
- 不篡改供应商文件夹。