Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OSX命令行上的PHP:pcntl_fork()_Php_Macos_Command Line Interface_Pcntl - Fatal编程技术网

OSX命令行上的PHP:pcntl_fork()

OSX命令行上的PHP:pcntl_fork(),php,macos,command-line-interface,pcntl,Php,Macos,Command Line Interface,Pcntl,我有一台运行OSX Yosemite的Macbook Pro。我试图在命令行上使用pcntl\u fork()运行一个简单的PHP脚本(命令:PHP pcntl.PHP): 答复如下: 致命错误:调用中未定义的函数pcntl_fork() /第2行的Users/grant/Desktop/test/pcntl.php 我看过很多文章,它们向您展示了如果您运行的是mamp,如何安装pcntl,但如果您只是使用终端,您将如何安装pcntl?如果在命令行上无法执行此操作,那么PHP中是否存在类似的

我有一台运行OSX Yosemite的Macbook Pro。我试图在命令行上使用
pcntl\u fork()
运行一个简单的PHP脚本(命令:
PHP pcntl.PHP
):


答复如下:

致命错误:调用中未定义的函数pcntl_fork()
/第2行的Users/grant/Desktop/test/pcntl.php


我看过很多文章,它们向您展示了如果您运行的是mamp,如何安装pcntl,但如果您只是使用终端,您将如何安装pcntl?如果在命令行上无法执行此操作,那么PHP中是否存在类似的功能?

对于本机CLI,您应该按照与
MAMP
相同的方式进行操作。唯一的区别是您应该添加对本机
php
的支持,而不是对
MAMP
的支持

约塞米蒂的php不支持pcntl。以下命令不返回任何输出:

$ php -i | grep pcntl
验证您的php版本:

$ php -v
  PHP 5.5.20 (cli) (built: Feb 25 2015 23:30:53)
下载并构建
pcntl
模块:

$ wget http://php.net/distributions/php-5.5.20.tar.xz
$ tar xf php-5.5.20.tar.xz
$ cd php-5.5.20
$ cd ext/pcntl/
$ phpize
$ ./configure
$ make
将模块复制到扩展文件夹:

$ sudo cp modules/pcntl.so /usr/lib/php/extensions/no-debug-non-zts-20121212/
编辑
php.ini
配置文件:

$ sudo vi /etc/php.ini
并在
dynamicextensions
部分中添加
extension=pcntl.so
行,例如:

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
;
; For example, on Windows:
;
;   extension=msql.dll
;
; ... or under UNIX:
;
;   extension=msql.so
;
; ... or with a path:
;
;   extension=/path/to/extension/msql.so
;
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.

extension=pcntl.so
再次验证
pcntl
支持(这次支持已启用):

运行测试脚本:

$ php -f test.php
  In parent!
  In child!

对于本机CLI,应按照与
MAMP
相同的方式进行操作。唯一的区别是您应该添加对本机
php
的支持,而不是对
MAMP
的支持

约塞米蒂的php不支持pcntl。以下命令不返回任何输出:

$ php -i | grep pcntl
验证您的php版本:

$ php -v
  PHP 5.5.20 (cli) (built: Feb 25 2015 23:30:53)
下载并构建
pcntl
模块:

$ wget http://php.net/distributions/php-5.5.20.tar.xz
$ tar xf php-5.5.20.tar.xz
$ cd php-5.5.20
$ cd ext/pcntl/
$ phpize
$ ./configure
$ make
将模块复制到扩展文件夹:

$ sudo cp modules/pcntl.so /usr/lib/php/extensions/no-debug-non-zts-20121212/
编辑
php.ini
配置文件:

$ sudo vi /etc/php.ini
并在
dynamicextensions
部分中添加
extension=pcntl.so
行,例如:

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
;
; For example, on Windows:
;
;   extension=msql.dll
;
; ... or under UNIX:
;
;   extension=msql.so
;
; ... or with a path:
;
;   extension=/path/to/extension/msql.so
;
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.

extension=pcntl.so
再次验证
pcntl
支持(这次支持已启用):

运行测试脚本:

$ php -f test.php
  In parent!
  In child!

很好,这也可以扩展到其他模块;)。。很好,这也可以扩展到其他模块;)。。不错