windows - windows server 2012 中 laravel APP QUEUE 的权限问题
问题描述
我们在WIndows Server 2012 R2中部署了一个laravel 应用程序(版本 5.5*)。但我们的开发堆栈是 LEMP。相同的代码库在开发堆栈中工作正常,但在 WINDOWS SERVER 中失败。
问题:
在我们的应用程序中,有一个REPORT DOWNLOAD 可排队作业,它从数据库表中读取数据,并根据用户输入的日期范围(每天、每周、每月等)使用box/spout 包(2.7 版)生成一个 excel 文件。
以管理员身份从 cmd
运行queue:work$writer->openToFile(‘path/to/file’)
命令时,会引发错误:无法打开流:没有这样的文件或目录。
我尝试过的解决方案:
- 为我的项目的存储文件夹设置权限(完全控制读写)(对于用户,IIS_IUSRS,IUSR)
- 为 C:windows\Temp 文件夹(对于用户、IIS_IUSRS、IUSR)设置权限(完全控制读写)
- 为公共内部的存储文件夹创建符号链接
供参考:
- 操作系统:windows server 2012 r2
- 比索:7.2*
- Laravel:5.5.*
- 盒子/喷口包装:2.7.*
解决方案
** 在回答了与此问题相关的其他问题后,终于得到了解决方案**
您可以按照以下步骤操作:
- 转到IIS 管理器
选择站点下列出的所需项目(例如:myexampledomain.com)
转到安全选项卡,您将看到列出的用户及其对该文件夹的权限。
现在,单击Edit按钮转到一个新窗口,然后单击Add。在文本框中,键入
IIS AppPool\MyApplicationPoolName
。在我们的示例中,它应该是IIS AppPool\myexampledomain.com
。单击检查名称,您将看到带有下划线的测试更改。
单击确定。为新创建的用户添加适当的权限(修改、读取、写入)。
就是这样!!!
感谢大家的回复。
推荐阅读
- node.js - Nodejs同步请求不返回HTML响应
- kubernetes - kubernetes:在同一个 pod 中的另一个容器中调用命令
- java - Java解析MongoDB文件的最佳方法
- c# - 在 FillRectangles 之后获取 Rectangle 的颜色
- android - 谷歌登录可以只用于登录吗?
- javascript - 如何在 JavaScript 中计算表格列?
- c# - 如何以干净和正确的方式缩短长参数列表
- python - 在矩阵中的文本中选择一个字母
- ruby - Windows 上的 Ruby:Require 未被识别为内部或外部命令
- codeigniter - SMTP 邮件未在 Codeigniter 中发送