考虑:
cd c:\xampp\htdocs\login
php app/console server:start
此命令需要 pcntl
扩展才能运行。
这是我在 Symfony 中尝试启动 Web 服务器时遇到的错误2环境...
我通过使用以下命令找到了修复:
php app/console server:run
但为什么 server:start
在我的桌面上不起作用?
我的目标是:
启动网络服务器
使用 PHP 的内置 Web 服务器运行 Symfony 应用程序就像执行
server:start
命令一样简单:php app/console server:start
最佳答案
在 Windows 上
您不能在 Windows 上安装 pcntl
扩展。 According to the PHP documentation :
注意:此扩展在 Windows 平台上不可用。
尝试使用 Vagrant 或带有 Ubuntu 、 Debian 或 Mint 等 Linux 发行版的普通虚拟机。
在 Unix 上
首先,在您的主目录中输入您的命令行:
mkdir php
cd php
apt-get source php5
cd php5-(WHATEVER_RELEASE)/ext/pcntl
phpize
./configure
make
然后这样做:
cp modules/pcntl.so /usr/lib/php5/WHEVER_YOUR_SO_FILES_ARE/
echo "extension=pcntl.so" > /etc/php5/conf.d/pcntl.ini
完成了!
在 Mac 上
取自 an answer to How can I enable process control extension (PCNTL) in PHP MAMP? !
有一种方法可以将 PCNTL 编译为扩展并将其链接到现有的 PHP 构建中,但它有点深入。
我在 Mac OS X v10.6(雪豹)(64 位)上使用 MAMP 和 PHP 版本 5.3.6 执行以下操作。如果您的不同,请记住在以下行中更改 PHP 版本号!
请注意 make
是必需的,它在 Mac OS X 上没有默认安装。您需要通过 Mac 开发人员工具安装它, http://developer.apple.com/unix/ .
首先,下载与您在 MAMP 中使用的版本相匹配的 PHP 源代码的 tar(例如,我的版本是 5.3.6),您可以在 Unsupported Historical Releases 处执行此操作。将 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
然后需要在pcntl目录下运行phpize
,pcntl是MAMP自带的二进制文件:
/Applications/MAMP/bin/php/php5.3.6/bin/phpize
这会创建一堆文件,这些文件是准备编译扩展所需的。
我们现在需要添加一些标志来告诉它使用双 32 位和 64 位架构编译库,因为 MAMP PHP 是通过这种方式构建的。如果不这样做,编译后的共享对象将无法工作。
MACOSX_DEPLOYMENT_TARGET=10.6
CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp"
CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe"
LDFLAGS="-arch i386 -arch x86_64 -bind_at_load"
export CFLAGS CXXFLAGS LDFLAGS CCFLAGS MACOSX_DEPLOYMENT_TARGET
然后我们可以运行 ./configure
和 make
来构建我们的共享对象:
./configure
make
这会在 modules 目录中放置一个名为 pcntl.so
的文件。将此文件复制到您的 MAMP 的 PHP 扩展目录:
cp modules/pcntl.so /Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/
最后,编辑 PHP INI 文件以包含扩展名:
echo "extension=pcntl.so" >> /Applications/MAMP/bin/php/php5.3.6/conf/php.ini
现在应该启用 PCNTL。要检查是否已添加,只需运行:
/Applications/MAMP/bin/php/php5.3.6/bin/php --ri pcntl
pcntl
pcntl support => enabled
如果你看到了,那就成功了!
有用的资源
对于 Windows:
对于 Unix 操作系统:
对于苹果机:
- How can I enable process control extension (PCNTL) in PHP MAMP?
- Installing PCNTL module for PHP without recompiling
其他信息:
关于php - 如何在 PHP 中启用 pcntl(同时使用像 Symfony 2 这样的框架),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33036773/