草庐IT

php - AWS ec2 上的 504 网关超时,没有执行长的 php 脚本

当我尝试调用由PHP编程的GETAPI时,我遇到了好几次http504网关超时错误。这是我的服务器和AWS环境。AmazonLinux的ec2实例运行php代码(5.4.40)和apache服务器(2.4.12)以服务来自客户端的api调用。一个AWS弹性负载平衡器,用于平衡我的一个实例的流量。(目前,我只有一个实例,如果我需要更多实例来处理流量,只需设置ELB即可。)用于保存数据的AWSRDS数据库(MySQL5.6.21)。从一些关于504网关超时的文章,我已经尝试修改这些设置:#ELBidletimeout=>300#php.inimax_execution_time=>301m

php - PHAR createDefaultStub 是否应该区分 CLI 和浏览器?

我的问题是关于createDefaultStub的$indexfile和$webindexfile。我的理解是,如果请求来自cli,$indexfile将被提供,而$webindexfile将被浏览器请求提供。我从任一来源得到相同的响应(“后端”),我是否误解了这种行为?还是我的实现有误?谢谢!目录树:PHAR+--app+--backend+--index.php//prints'backend'+--frontend+--index.php//prints'frontend'+--build//destinationforPHAR+--build.php+--index.php/b

php - 如何在 HTTP 请求和 cli 类对象之间进行对话

我有一个正在运行的应用程序,它列出了HTTP请求。每个请求都传递到单个页面,其中实例化了一个框架对象$app,这负责路由/Controller/模型等。现在我有另一个类,它的对象是通过实例化的。一个CLI脚本可以调用它$cliApp现在的问题是我如何让两个对象相互交谈。每次有新请求时,$app都会被实例化。但是$cliApp只在脚本运行时实例化一次。此脚本通过PHPReactEventloop的$loop对象循环运行.CliApp正在运行websockets。所以基本上我希望通过http和套接字进行通信。http接口(interface)。附言:现在我有一个使用消息队列的解决方案,例如

php - 同步返回 AWS SDK promise 的结果?

我正在使用AWS开发工具包并promise:publicfunctionfoo(){...$pool=newCommandPool($client,$commands,[....]);$promise=$pool->promise();$result=$promise->wait();$promise->then(function(){return'ok';});}如何从foo同步返回promise的结果?我试过:return$promise->then(function(){return'ok';});但这会返回promise本身,而不是'ok',并导致我的框架出错:TheRespo

json - PHP-CLI 似乎从参数中解析 JSON 字符串

如果我通过命令行将JSON编码的字符串作为参数发送,则使用PHP5.3.../usr/local/bin/php-q/path/to/script.php{"key":"test","cache":1}...script.php中的代码是:我回来了:Array([0]=>/path/to/script.php[1]=>key:test[2]=>cache:1)这完全出乎意料!虽然我可以接受这一点,但我想知道PHP在哪里记录了这一点,这样我100%确定如果我每次都传递一个JSON编码的字符串作为参数,它会像这样工作。此外,JSON字符串中的数组似乎没有按预期工作。

php - 如何确定 PHP CLI 脚本的输出是否正在通过管道传输到另一个命令?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:CanPHPdetectifitsrunfromacronjoborfromthecommandline?我正在尝试确定PHP命令行脚本上的STDOUT资源是否正在通过管道传输到另一个命令,以便适本地显示表格数据(如果输出直接到终端,看起来不错将表格单元格包裹在+-----+边框中;但如果尝试使用awk或其他命令检查该数据则不会。)找到后thisanswer,我已经尝试使用stream_get_meta_data()检查STDOUT资源以及我可以在PHP手册中找到的所有其他函数,这些函数对流进行操作,但在每种

PHP 和 AWS - 按标签检索 EC2 实例

我正在尝试通过PHP按标签检索EC2实例。我可以用标签创建服务器,我可以用标签数据检索服务器,但如果我想做的是通过这些标签之一检索,我就很难找到示例。这个有效:if($server_group!='')$filter[]=array('Name'=>'tag-value','Value'=>$server_group);$response=$ec2->describe_instances(array('Filter'=>$filter));但是,问题是它会找到任何具有我分配给变量$server_group的值的标签,无论它是否是正确的标签。我当然可以简单地注意我如何分配标签值,但这不是

php - AWS S3 - 计划的文件清理 - 不同的方法

我正在为用户将文件写入AWSS3,一段时间后我想删除一些图像。(例如:如果文件名称中有这个并且早于48小时)实现此目的的一种方法是让PHPcron作业从EC2运行以在需要时进行清理。还有其他方法可以完成这项工作吗? 最佳答案 是的,前提是你想要过期的文件有一个共同的前缀(不仅仅是他们名字中某处的一些字符串)。您可以为S3存储桶设置生命周期策略,并指定所有具有特定前缀的文件应在设定的时间长度内过期。S3将为您删除所有匹配的文件。前缀可以是空字符串,使存储桶中的所有文件都过期。有效期必须是天数,我认为它不是很精确。如果你说两天后过期,它

php - 将 Symfony\Console 用于交互式 php cli 应用程序

我想开发一个基于交互式命令的php应用程序,所以我做了一些研究并碰到了Symfony\Console组件。这很棒,因为它让met运行phpscript.phpcommand--option但是,脚本随后运行该命令并关闭,我希望能够运行另一个命令。所以基本上,就像phpscript.php然后在php://stdin上监听命令,结构如下command--option然后运行命令并开始监听新命令。当运行特定的“退出”命令时,脚本应该终止。我对Symfony和控制台组件比较陌生,所以对如何使用Symfony\Console实现它有什么想法吗?因为我真的很喜欢Symfony\Console将所

php - 授予 bjyauthorize 从 CLI 运行 ZF2 的 mvc 应用程序的权限

我在ZF2上有一个完全运行的mvc应用程序。我想从命令行运行一些操作。我已经正确设置了我的控制台路由和其他环境。当我从CLI运行我的应用程序时,我得到了这样的权限被拒绝的异常:'YouarenotauthorizedtoaccessGeneratePdf\Controller\GeneratePdf\GeneratePdf:generate-all'in/var/www/zf2-reporting/module/BjyAuthorize/src/BjyAuthorize/Guard/Controller.php‌​:172我的数据库中已经有一些用户。我如何使用这些凭据授权CLI用户运行