我想知道如何在Ubuntu服务器16.04上运行的PHP7中启用pcntl扩展。
我看到了这个http://www.crimulus.com/2010/07/30/howto-enable-pcntl-in-ubuntu-php-installations/但是我们真的要重新编译PHP7吗?
令我感到惊讶的是,其他扩展通常很容易添加apt-get。
由于
答案 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.ini
或sudo 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