web-dev-qa-db-ja.com

php起動エラー無効なラ​​イブラリ(おそらくPHPライブラリ) 'pcntl.so'

私の問題を解決するために何時間も検索し、何も役に立たなかった後、私はここで私の最初の質問をします。

コンパイルしてインストールしたいphp 5.3.17 cli with pcntl extension enabled 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

誰かが私を助けてくれることを願っています。

4
And-y

この投稿の助けを借りて、問題を解決しました stackoverflow answer how-to-enable-process-control-extension-pcntl-in-php-mamp

まず、pcntl拡張子/src/php-5.3.17-cli/ext/pcntlのソースディレクトリに切り替えました。
そこで、シェルで次のコマンドを実行しました。

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に答えてくれてありがとう、それは私を少し正しい方向に押しやった。

1
And-y

Phpを作成したディレクトリのmodulesサブディレクトリにpcntl.soというファイルが必要です。それを/usr/lib/php5/20090626/にコピーします:

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

明らかに、PHP_BUILD_DIRをphpをコンパイルしたディレクトリに変更します。

1
terdon