c:\xampp\htdocs\login>php app/console server:start
Run Code Online (Sandbox Code Playgroud)
此命令需要pcntl扩展才能运行.
这是我尝试在我的symfony2环境中启动Web服务器时出现的错误.
我通过使用命令找到了修复:
$ php app/console server:run
Run Code Online (Sandbox Code Playgroud)
但有人知道为什么server:start我的桌面不起作用?提前致谢.
我的目标是:
启动Web服务器
使用PHP的内置Web服务器运行Symfony应用程序就像执行server:start命令一样简单:
$ php app/console server:start
Run Code Online (Sandbox Code Playgroud)
Sur*_*yaa 11
您无法pcntl在Windows上安装扩展程序.根据PHP文档:
注意:此扩展在Windows平台上不可用.
尝试使用Vagrant或普通虚拟机与Linux发行版,如Ubuntu,Debian或Mint.
首先,在主目录中键入命令行:
mkdir php
cd php
apt-get source php5
cd php5-(WHATEVER_RELEASE)/ext/pcntl
phpize
./configure
make
Run Code Online (Sandbox Code Playgroud)
然后这样做:
cp modules/pcntl.so /usr/lib/php5/WHEVER_YOUR_SO_FILES_ARE/
echo "extension=pcntl.so" > /etc/php5/conf.d/pcntl.ini
Run Code Online (Sandbox Code Playgroud)
完了!
有一种方法可以将PCNTL编译为扩展并将其链接到现有的PHP构建中,但它有点深入.
我在Mac OSX Snow Leopard(64位)上使用MAMP和PHP版本5.3.6进行以下操作.如果您的版本号不同,请记住在以下行中更改PHP版本号!
请注意,这make是必需的,默认情况下不会安装在Mac OSX上.您需要通过Mac开发人员工具安装此工具,http://developer.apple.com/unix/
首先,下载与您在MAMP中使用的版本匹配的PHP源代码的tar(例如,我的是5.3.6),您可以在http://www.php.net/releases/上找到它.Untar和CD到php- [version]/ext/pcntl,例如:
$ wget http://museum.php.net/php5/php-5.3.6.tar.gz
$ tar xvf php-5.3.6.tar.gz
$ cd php-5.3.6/ext/pcntl
Run Code Online (Sandbox Code Playgroud)
然后,您需要phpize在pcntl目录中运行,该目录是MAMP附带的二进制文件:
pcntl$ /Applications/MAMP/bin/php/php5.3.6/bin/phpize
Run Code Online (Sandbox Code Playgroud)
这会创建一组准备扩展以进行编译所需的文件.
我们现在需要添加一些标志来告诉它使用双32位和64位架构编译库,因为MAMP PHP是以这种方式构建的.如果不这样做,编译的共享对象将不起作用.
pcntl$ MACOSX_DEPLOYMENT_TARGET=10.6
pcntl$ CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
pcntl$ CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
pcntl$ CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
pcntl$ LDFLAGS="-arch i386 -arch x86_64 -bind_at_load"
pcntl$ export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET
Run Code Online (Sandbox Code Playgroud)
然后我们可以运行./configure并make构建我们的共享对象:
pcntl$ ./configure
pcntl$ make
Run Code Online (Sandbox Code Playgroud)
这会将一个pcntl.so在modules目录中调用的文件放入.将此文件复制到MAMP的PHP扩展目录:
pcntl$ cp modules/pcntl.so /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/
Run Code Online (Sandbox Code Playgroud)
最后,编辑PHP INI文件以包含扩展名:
$ echo "extension=pcntl.so" >> /Applications/MAMP/bin/php/php5.3.6/conf/php.ini
Run Code Online (Sandbox Code Playgroud)
现在应该启用PCNTL.要检查是否已添加,只需运行:
$ /Applications/MAMP/bin/php/php5.3.6/bin/php --ri pcntl
pcntl
pcntl support => enabled
Run Code Online (Sandbox Code Playgroud)
如果你看到了,那就有用了!
对于Windows:
对于UNIX操作系统:
对于Mac:
其他信息:
GitHub 上的php -extension-library有几个 pcntl.so 文件,您可以轻松下载适合您的 PHP 版本的文件并将其添加到您的扩展和.ini文件中。
例如,对于 PHP 版本 7.3.9:
pcntl.so 从此处的存储库下载或直接在此处下载。pcntl.so将文件移动到扩展名(例如: /Applications/MAMP/bin/php/php7.3.9/lib/php/extensions/no-debug-non-zts-xxxxxxxx)extension=pcntl.so到您的.inipcntl您的系统中缺少该扩展。这是包的一部分php-cli,因此您只需执行以下操作:
sudo apt-get install php-cli
Run Code Online (Sandbox Code Playgroud)
查看文档以获取更多信息。