草庐IT

default-cli

全部标签

c - -D_DEFAULT_SOURCE 是做什么的?

之前我收到来自gcc-std=c99的警告,即usleep()被隐式声明。然后我偶然发现了thisstackoverflowpost,这导致我使用-D_BSD_SOURCE。但是,现在gcc告诉我-D_BSD_SOURCE已被弃用,我应该改用-D_DEFAULT_SOURCE。#warning"_BSD_SOURCEand_SVID_SOURCEaredeprecated,use_DEFAULT_SOURCE"为什么不推荐使用-D_BSD_SOURCE?为什么使用-D_DEFAULT_SOURCE代替?它有什么作用?我做了somegoogling,而结果只是充满了使用它来关闭gcc的人

stdout - PHP CLI 不使用 stderr 来输出错误

我在MacOS中通过NSTask运行PHPCLI,但这个问题更多的是关于CLI本身。我正在监听stderr管道,但无论我尝试运行什么文件都没有输出:如果文件类型不是纯文本,stdout设置为?。如果文件是有错误的php脚本,错误消息仍会打印到stdout。有没有切换到解释器通过stderr来处理错误?除了解析stdout之外,我是否可以选择检测错误? 最佳答案 display_errorsdirective(可以在任何地方设置)可选地使用参数“stderr”,以便它向stderr而不是stdout报告错误或完全禁用错误输出。引用自P

php-cli 输出而不是执行

我正在使用Debian测试,我已经安装了php-cli,当我尝试执行php脚本时,它会输出源代码而不是执行它。例子:phptest.php关于如何修复此行为的任何想法,我尝试重新安装并清除没有结果。 最佳答案 在您的php.ini文件中找到以下行:short_open_tag=关闭并将其更改为:short_open_tag=打开 关于php-cli输出而不是执行,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

stdin - PHP CLI 中的 STDIN 非阻塞

有没有非阻塞的PHP从STDIN读取:我试过了:stream_set_blocking(STDIN,false);echofread(STDIN,1);还有这个:$stdin=fopen('php://stdin','r');stream_set_blocking($stdin,false);echo'Pressentertoforceruncommand...'.PHP_EOL;echofread($stdin,1);但它仍然会阻塞,直到fread获得一些数据。我注意到一些关于此的公开错误报告(已有7年历史),所以如果无法完成,有没有人知道可以实现此目的(在Windows和Linux

timeout - 我可以从我的 php 代码中更改 default_socket_timeout 吗?

在我的php脚本中,我恢复了db2数据库备份。他们越来越大。所以现在我在执行脚本后+-30分钟后收到500服务器错误。(mod_fastcgi.c.3352)中有这一行未收到响应,已发送请求:套接字上的634:tcp:127.0.0.1:9090for/wrational/restoredb.php?mode=restore&database=RATIONAL,关闭连接在php-errors.log文件中。我认为设置`set_time_limit(6000);1会解决问题,但事实并非如此。增加php.ini文件中的default_socket_timeout就可以了。有什么方法可以从p

php - 如何更新 PHP CLI OSX?

我刚刚使用http://php-osx.liip.ch/更新到php5.4|在osx狮子上。当我输入时:php-v我仍然看到:PHP5.3.15withSuhosin-Patch(cli)(built:Jul31201214:49:18)Copyright(c)1997-2012ThePHPGroupZendEnginev2.3.0,Copyright(c)1998-2012ZendTechnologies但是phpinfo()显示5.4。我该如何更新? 最佳答案 只需导出已安装的PHP路径,在终端上输入此路径exportPATH=

php - 在 PHP CLI 脚本中检测环境

我在StackOverflow上看到了几个问题,这些问题处理如何在通过Apache提供脚本时检测用户环境,并且拥有这样一个可以完美运行的系统。该脚本取决于Apache设置的环境变量。现在我正在创建几个需要在phpCLI模式下运行的工具,但我不知道如何在CLI模式下检测环境,因为那里没有apache环境变量。我正在考虑使用gethostname()读取服务器的主机名,但不知道这是否是最佳解决方案和可靠的解决方案。当使用PHP在CLI模式下运行时,什么被认为是检测环境的最佳方法澄清:我不是在寻找一种方法来检测我是否正在从CLI运行脚本,该基础已被覆盖。我正在寻找一种方法来通过CLI方式确定

php - PASSWORD_DEFAULT 与 PASSWORD_BCRYPT

PASSWORD_DEFAULT和PASSWORD_BCRYPT有什么区别?他们都使用Blowfish加密算法吗?什么是算法成本?如何在PHP中设置password_hash以产生255哈希长度而不是60? 最佳答案 目前PASSWORD_BCRYPT是唯一支持的算法(使用CRYPT_BLWFISH),因此PASSWORD_DEFAULT和PASSWORD_BCRYPT目前没有区别。PASSWORD_DEFAULT的目的是允许在未来包含其他算法,因此PASSWORD_DEFAULT将始终用于应用最受支持的哈希算法。成本与算法执行的迭

php - 如何从 CLI 标准输入中读取非 ASCII 字符

如果我在CMD中键入å,fgets将停止等待更多输入并且循环运行直到我按下ctrl-c。如果我输入像a-z0-9!?()这样的“普通”字符,它会按预期工作。我在Windows7下使用UTF-8作为字符集(chcp65001)在CMD中运行代码,文件被保存为没有bom的UTF-8。我使用PHP5.3.5(cli)。'.fgets(STDIN);}?>如果我将字符集更改为chcp1252,当我键入å时循环不会中断,它会打印“>å”,但“ÅÄÖåäöworkhere”变为“ÅÄÖåäö在这里工作!"。而且我知道我可以将文件更改为ANSI,但是我不能使用像╠╦╗这样的特殊字符。那么

php - Laravel Artisan CLI 安全地停止守护进程队列 worker

为了处理大量作业,我根据要完成的工作量运行数量可变的队列工作程序。我不想运行比在我们认为合适的时间段内完成需要完成的工作所需的更多的工作器。目前,出于测试目的,我启动了5个守护进程队列工作人员,但在生产中,这个数字可能在25到100个工作人员之间,甚至可能更多。我知道在部署时,我必须首先使用phpartisandown将框架置于维护模式来停止队列工作人员,因为--daemon标志会导致框架仅在worker启动时加载,因此新代码在部署期间不会生效,直到worker重新启动。如果我出于某种原因需要停止工作人员,我可以使用phpartisandown将应用程序置于维护模式,这将导致工作人员在