如何在Ubuntu服务器16.04上启用PCNTL

时间:2016-11-03 17:50:20

标签: php-7 ubuntu-server

我想知道如何在Ubuntu服务器16.04上运行的PHP7中启用pcntl扩展。
我看到了这个http://www.crimulus.com/2010/07/30/howto-enable-pcntl-in-ubuntu-php-installations/但是我们真的要重新编译PHP7吗?

令我感到惊讶的是,其他扩展通常很容易添加apt-get。

由于

3 个答案:

答案 0 :(得分:3)

你不需要apt-get install其他任何东西。

当您通过软件包管理器安装php时,包含了pcntl模块,尝试sudo apt update然后sudo apt-get upgrade,这可能会有所帮助。 您也可以使用它来确认您是否拥有它。

php -i | grep pcntl
//pcntl suppport=>enable

还按包管理器列出我安装的所有模块。

sudo apt install php7.0 php7.0-cli php7.0-common php7.0-fpm php7.0-imap php7.0-json php7.0-mbstring php7.0-opcache php7.0-readline php7.0-xml

答案 1 :(得分:1)

根据您的需要,对我来说,解决方案是使用HowToForge中的以下教程。

今天,当前版本为7.4.11,但是您可以更改它。

cd /tmp
wget https://www.php.net/distributions/php-7.4.11.tar.gz
tar xfz php-7.4.11.tar.gz
cd php-7.4.11

接下来,您会发现--enable-pcntl有趣的是什么。

./configure --prefix=/opt/php-7.4 --with-pdo-pgsql --with-zlib-dir --with-freetype --enable-mbstring --enable-soap --enable-calendar --with-curl --with-zlib --enable-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --with-zip --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-intl --with-pear --enable-fpm

请遵循整个教程,以获取完整的工作解决方案: https://www.howtoforge.com/tutorial/how-to-compile-and-install-php-7.4-on-ubuntu-18-04/

答案 2 :(得分:1)

对于Ubuntu 18和20:

1- php -v
例如:PHP 7.4.10

2- sudo wget https://www.php.net/distributions/php-7.4.10.tar.gz
用您的php版本替换7.4.10。

3- sudo tar xfz php-7.4.10.tar.gz && sudo rm -rf php-7.4.10.tar.gz
用您的php版本替换7.4.10。

4- cd php-7.4.10/ext/pcntl/
用您的php版本替换7.4.10。

5- sudo phpize
如果未安装phpize,则可以使用apt install php7.0-dev

进行安装

6- sudo ./configure --with-php-config=/usr/bin/php-config

7- sudo make && sudo make install
结果必须类似于Installing shared extensions: /usr/lib/php/20190902/

8- cd ../../../ && sudo rm -rf php-7.4.10
用您的php版本替换7.4.10。

9- cd /etc/php/7.4
用您的php版本替换7.4。

10- sudo sh -c "echo 'extension=pcntl.so' > ./mods-available/pcntl.ini"

11- sudo nano ./cli/php.ini,然后添加extension=pcntl
sudo nano ./apache2/php.inisudo nano ./fpm/php.ini重复此作业。

12-在以上所有php.ini中,有disable_functions包含pcntl前缀。您必须启用所需的那个。

13-使用以下命令重新启动apache2或fpm:
sudo service apache2 restart
sudo service php7.4-fpm restart
用您的php版本替换7.4。

14-您可以在test.php中用die(extension_loaded('pcntl'));进行检查

注意:如果遇到错误:PHP Warning: Module 'pcntl' already loaded in Unknown on line 0,请仅在extension=pcntl中删除cli/php.ini