经过几个小时的努力来解决我的问题并且没有发现任何有用的信息后,我在这里提出了我的第一个问题。
我想编译并安装php 5.3.17 命令行和pcntl扩展已启用在 Debian 服务器上。安装成功,但是当我启动 php cli 时,显示以下错误:
PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'pcntl.so' in Unknown\
on line 0
使用以下配置:
'./configure' '--prefix=/usr/share' '--datadir=/usr/share/php' '--bindir=/usr/bin'
'--libdir=/usr/share' '--includedir=/usr/include'
'--with-config-file-path=/etc/php5/cli' '--disable-cgi' '--enable-bcmath'
'-- enable-inline-optimization' '--enable-mbstring' '--enable-mbregex' '--enable-pcntl'
'--enable-sigchild' '--enable-shmop' '--enable-sysvmsg' '--enable-sysvsem'
'--enable-sysvshm' '--with-mysql' '--with-imap' '--with-imap-ssl' '--with-kerberos'
在 php.ini 中设置了以下选项:
extension_dir=/usr/lib/php5/20090626/
extension=pcntl.so
我希望有一个人可以帮助我。
答案1
您应该在构建 php 的目录的子目录pcntl.so
中有一个名为的文件。将其复制到:modules
/usr/lib/php5/20090626/
sudo cp PHP_BUILD_DIR/modules/pcntl.so /usr/lib/php5/20090626/
显然,更改PHP_BUILD_DIR
为编译 php 的目录。
答案2
在这篇文章的帮助下,我现在解决了我的问题stackoverflow 答案如何在 php-mamp 中启用进程控制扩展 pcntl。
首先我切换到 pcntl 扩展的源目录/src/php-5.3.17-cli/ext/pcntl
。
在那里我在 shell 中运行以下命令:
phpize
./configure
make
然后在创建了扩展/src/php-5.3.17-cli/ext/pcntl/modules
,并且我将其复制到正确的目录中cp /src/php-5.3.17-cli/ext/pcntl/module/pcntl.so /usr/lib/php5/20090626/
。
现在,该扩展已适用于我的 php-cli 安装。
感谢 @terdon 的回答,它为我指明了正确的方向。