7

そのため、Mountain Lion で MAMP を実行しており、pecl を使用して gmagick と imagick をインストールしました。どちらもリリース候補です (主に、gmagick には安定したリリースがなく、imagick 3.0.0 がインストールされないため、make エラーが発生します)。 )。モジュールは、ターミナルで php -i を実行すると表示されますが、phpinfo() では表示されません。php.ini を確認しましたが、どちらも同じであるため、問題ではありません。 ) であり、phpinfo() および php -i に表示されます。私の質問は、拡張機能が安定していない場合に拡張機能をロードしない構成オプションが PHP にあるということです。ところで、ini ファイルを変更した後、サーバーを再起動しました。

4

4 に答える 4

6

おそらく、マシンに 2 つの php インストールがあるでしょう。Mountain Lion には、php バージョンがプリインストールされた状態で出荷されます。ターミナルで試してlocate php.ini、インストールされている php.inis の数を確認してください。

phpinfo() ページには、どの php.ini が使用されているかも示されています。phpinfo() に使用されている正確な php.ini を開いて、拡張機能がロードされていることを確認してください。次のような2行があるはずです extension=/path/to/gemagicext/gmagic.so extension=/path/to/imagick/imagick.so

于 2013-03-07T13:31:32.707 に答える
6

php-fpm と nginx サーバーで同様の問題に直面しました。この問題は、更新された php 構成が現在アクティブな php-fpm ワーカー プロセスに反映されていないことが原因でした。更新された拡張情報を取得するには、 fpmプロセスを手動で強制終了し、再起動する必要があります。

私のために働いた手順:

1) アクティブな php-fpm プロセスを探します

 ps ax | grep "fpm"

ほとんどの場合、これは複数のプロセスをリストします

2)プロセスを手動で強制終了します

kill -9 [pid_got_from_previous_command]

3) php-fpm プロセスを再起動します。

sudo service php5-fpm start

注:古い子プロセスが古い構成を保持していたため、sudo service php-fpm reloadorのようなものを試してもうまくいきませんでした。sudo service php-fpm restartアクティブなプロセスを強制終了し、php fpm を再起動すると、phpinfo が更新されました。

于 2014-02-11T05:09:01.263 に答える
2

CentOS 6.6 x64、php 5.5.27 で同じ問題が発生し、 http://php.net/manual/en/imagick.installation.phpの手順に従いました。

まず、ImageMagick インストールの tar イメージを sourceforge.net/projects/imagemagick/files/ からダウンロードします。

解凍してから、ターミナルから次のコマンドを発行します。

1.  "cd ImageMagick-6.9.1-10" - go where you placed the folder
2.  ./configure
3.  make
4.  make install
5. make check
6. install imagick extension from pecl.php.net/package/imagick/download 3.1.2
7. cd imagick-3.1.2
8. phpize
9. ./configure --with-imagick=/opt/local
10. make
11. make install
12. Copy imagick.so in your PHP extensions folder and add extension=imagick.so in php.ini

Apache を再起動します: service httpd restart

于 2015-08-14T14:27:00.270 に答える
0

この問題は、拡張機能と PHP サーバーの互換性に関連していると確信しています。独自の拡張機能を作成したときに、このような問題に遭遇しました。拡張機能は、次の 3 つの主要な属性で PHP サーバーと互換性がある必要があります。

1- PHP サーバーが構成されている Zend API 番号 ( phpinfo() でこの番号を見つけることができます)。この番号は、ビルド時の拡張ヘッダー ファイルと同じである必要があります。

2- PHP サーバーのコンパイラ バージョンと拡張機能は同じである必要があります。

3- PHP サーバーのスレッド セーフは重要です。スレッドセーフ サーバーを使用する場合は、拡張機能を php スレッド セーフ ライブラリでビルドする必要があります。非スレッド セーフ サーバーを使用する場合は、拡張機能を PHP-nts ライブラリでビルドする必要があります。

于 2013-04-07T07:40:00.000 に答える