标签: php-cli

如何在 Mac OS X 上安装 PHP CLI?

我正在运行 Mac OSX 10.8.2。我对 Mac OSX 也很陌生——以前我唯一理解的 Mac 是 Classic Mac。我的其他工作站是 Windows 和 Linux。

在 Mac OSX 上安装 PHP CLI 的技术是什么?看,我使用 gedit for Mac 并连接到 FTP 位置或我在 VM 中的本地 Ubuntu Linux 服务器。在那个编辑器中,有一个功能可以添加外部程序,我通常使用的一种技术是添加“php -l”,它让我获取当前文档并根据 PHP CLI 对其进行 lint 检查。我曾经在 Ubuntu 上一直这样做,但在 Mac 上我不确定如何安装 PHP CLI。

php-cli installation macos

6
推荐指数
1
解决办法
2万
查看次数

管道到“less”的 PHP 输出在每个命令之后都需要 <enter>

将 PHP 输出传送到 linux 'less' 命令会导致 'less' 真正起作用。(CentOS 6.2,CentOS 5 没有。)

当我将 php 的输出通过管道传输到 'less' 时,它需要enter在每个命令之后按下该键,即使在 'j' 命令(向下滚动一行的命令)之后也是如此。此外,命令键显示在屏幕上,而“少”不会清理屏幕。

所以,运行后:

$ php -r 'for ($i=0; $i<300; $i++) { print "$i\n";}' | less
Run Code Online (Sandbox Code Playgroud)

然后输入j(通常向下滚动一行),我看到一个 'j' 字符出现在屏幕底部的 ':' 字符之后。按下enter导致 less 最终“接受”j 命令,它确实滚动,但现在我看到输出的两个相邻行之间的“:j”:

10
:j
11
Run Code Online (Sandbox Code Playgroud)

将 less 与 python 的等效输出一起使用时,一切都很好,并且不太正常:

$ python -c 'for i in xrange(1, 300): print i' | less
Run Code Online (Sandbox Code Playgroud)

这是怎么回事,我该如何解决?

更多信息:

$ less --version
less 436
Copyright (C) 1984-2009 Mark Nudelman

less comes with …
Run Code Online (Sandbox Code Playgroud)

less php-cli pipe

5
推荐指数
1
解决办法
961
查看次数

Supervisorctl stop all = 停止进程?

我正在运行几个 PHP CLI 脚本并通过 Supervisor 监控它们。

当我supervisorctl用来监视它们时,脚本显示如下:

cleanup     RUNNING    pid 1805, uptime 0:00:41
postsales   RUNNING    pid 1825, uptime 0:00:10
rebills     RUNNING    pid 1823, uptime 0:00:19
subscribers RUNNING    pid 1827, uptime 0:00:10
Run Code Online (Sandbox Code Playgroud)

但是,当我发出 a 时stop all, supervisorctl 冻结,我需要按 CTRL+C 退出。

当我下次运行时supervisorctl,状态如下所示:

cleanup     RUNNING    pid 1935, uptime 0:00:44
postsales   RUNNING    pid 1953, uptime 0:00:05
rebills     STOPPED    Jul 19 12:23 PM
subscribers RUNNING    pid 1951, uptime 0:00:05
Run Code Online (Sandbox Code Playgroud)

即只有一个进程已停止,其他进程继续运行。

如果我发出更多stop all命令,同样的事情会发生 - 一个脚本尝试退出,其余的挂起。

我已经尝试修改 supervisord.conf 文件以 …

process php-cli daemon

4
推荐指数
1
解决办法
3697
查看次数

PHP CLI 不考虑 php.ini 中的内存限制

我正在使用 drush,这是一个用于管理 drupal 网站的命令行 php 应用程序。我正在运行一个命令来导入大量数据,这导致我达到了 php 的内存限制。

PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted ...
Run Code Online (Sandbox Code Playgroud)

如果我正确地进行数学运算,则为 512MB (536870912 / 1024 / 1024 = 512)。我已经更改了 drush 使用的 php.ini 中的指令:

$> drush status
  ...
  PHP configuration      :  /etc/php5/cli/php.ini 
$> grep memory /etc/php5/cli/php.ini 
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 1024M 
Run Code Online (Sandbox Code Playgroud)

但我仍然达到 512 MB 的限制!我在虚拟机中运行,我将其内存设置从 512 MB 的 RAM 更改为 1025 MB,以允许 drush 运行。

$> free -m
             total       used       free     shared    buffers …
Run Code Online (Sandbox Code Playgroud)

memory php php-cli php.ini

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

php-cli ×4

daemon ×1

installation ×1

less ×1

macos ×1

memory ×1

php ×1

php.ini ×1

pipe ×1

process ×1