php erro de inicialização Biblioteca inválida (talvez não seja uma biblioteca PHP) 'pcntl.so'

4

Depois de procurar por horas para resolver meu problema e não encontrei nada de útil, faço minha primeira pergunta aqui.

Eu quero compilar e instalar php 5.3.17 cli com a extensão pcntl habilitada em um servidor Debian. A instalação foi bem sucedida, mas quando eu inicio o php cli, o seguinte erro é exibido:

PHP Warning:  PHP Startup: Invalid library (maybe not a PHP library) 'pcntl.so' in Unknown\
on line 0

A seguinte configuração é usada:

'./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'

No php.ini, as seguintes opções são definidas:

extension_dir=/usr/lib/php5/20090626/
extension=pcntl.so

Espero que alguém possa me ajudar.

    
por And-y 09.10.2012 / 16:39

2 respostas

1

Eu resolvi meu problema agora, com alguma ajuda dessa postagem stackoverflow resposta how-to-enable-processo-controle-extensão-pcntl-in-php-mamp .

Primeiro, mudei para o diretório de origem da extensão pcntl /src/php-5.3.17-cli/ext/pcntl .
Lá eu corri os seguintes comandos no shell:

phpize
./configure
make

Em seguida, a extensão foi criada em /src/php-5.3.17-cli/ext/pcntl/modules e eu copiei no diretório correto com cp /src/php-5.3.17-cli/ext/pcntl/module/pcntl.so /usr/lib/php5/20090626/ .

Agora a extensão funciona para minha instalação do php-cli.
Obrigado @terdon pela sua resposta, isso me empurrou um pouco na direção certa.

    
por 10.10.2012 / 10:19
1

Você deve ter um arquivo chamado pcntl.so no subdiretório modules do diretório onde você construiu o php. Copie isso para /usr/lib/php5/20090626/ :

sudo cp PHP_BUILD_DIR/modules/pcntl.so /usr/lib/php5/20090626/

Obviamente, altere PHP_BUILD_DIR para o diretório onde você compilou o php.

    
por 09.10.2012 / 17:23