PHPでrename_function
にアクセスしようとしていますが、そのためにはPECLAPDが必要です。 Ubuntu 14.04LTSを実行しています。
Sudo pecl install apd
を実行しようとしていますが、次のようになります。
apd-1.0.1.tgzをダウンロードしています... apd-1.0.1.tgz(36,643バイト)のダウンロードを開始しています ........。完了:36,643バイト 15ソースファイル、ビルド 実行中:phpize config.m4が見つかりません。 必ず '/ usr/bin/phpizeを実行してください' モジュールの最上位のソースディレクトリ でコマンドが失敗した場合は、php5-devパッケージをインストールする必要があります。ルートユーザーとして「apt-getinstallphp5-dev」を実行することでそれを行うことができますエラー:「phpize」は失敗しました
このコマンドを特定のディレクトリから実行する必要がありますか?
今回は、ログに手掛かりがある場合に備えて、詳細オプションをオンにして試してみました。
Sudo/usr/bin/pecl -vvvvv install apd
警告:file_exists():ラッパー「チャネル」が見つかりません-PHPを構成したときに有効にするのを忘れましたか? PEAR/Downloader/Package.phpの1518行目 警告:ラッパー「チャネル」が見つかりません-PHPの設定時にラッパーを有効にするのを忘れていませんか? PEAR/Downloader /Package.phpの1528行目 警告:is_file():ラッパー「チャネル」が見つかりません-PHPを構成したときに有効にするのを忘れましたか? PEAR/Downloader/Package.phpの1528行目 Downloading "http://pecl.php.net/get/apd-1.0.1.tgz" downloading apd-1.0.1。 tgz ... apd-1.0.1.tgz(36,643バイト)のダウンロードを開始しています ..........完了:36,643バイト + cp/tmp/pear/temp/tmpNUpEpz/apd-1.0.1/LICENSE /usr/share/php/doc/apd/.tmpLICENSE トランザクションに追加:chmod 664/usr/share/php/doc/apd/.tmpLICENSE トランザクションへの追加:名前の変更/usr/share/php/doc/apd/.tmpLICENSE/usr/share/php/doc/apd/LICENSE トランザクションへの追加:installed_as LICENSE/usr/share/php/doc/apd/LICENSE/usr/share/php/doc /apd + cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/README/usr/share/php/doc/apd/.tmpREADME トランザクションへの追加:chmod 664 /usr/share/php/doc/apd/.tmpREADME トランザクションへの追加:名前を/ usr/share/php/doc/apdに変更/.tmpREADME/usr/share/php/doc/apd/README トランザクションへの追加:installed_as README/usr/share/php/doc/apd/README/usr/share/php/doc/apd + cp/tmp/pear/temp/tmpNUpEpz/apd-1.0.1/pprofp /usr/bin/.tmppprofp + chmod + x /usr/bin/.tmppprofp トランザクションへの追加:chmod 775/usr/bin/.tmppprofp トランザクションへの追加:名前の変更/usr/bin/.tmppprofp/usr/bin/pprofp トランザクションへの追加:installed_as pprofp/usr/bin/pprofp/usr/bin/ + cp /tmp/pear/temp/tmpNUpEpz/apd-1.0.1/pprof2calltree/usr/bin/.tmppprof2calltree +chmod + x /usr/bin/.tmppprof2calltree トランザクションへの追加:chmod 775 /usr/bin/.tmppprof2calltree トランザクションへの追加:rename /usr/bin/.tmppprof2calltree /usr/bin/pprof2calltree トランザクションへの追加:installed_as pprof2calltree/usr/bin/pprof2calltree/usr/bin / 15ソースファイル、ビルド /tmp/pear/temp/pearf7LGcaにビルド 実行中:phpize 設定が見つかりません。 m4。 モジュールの最上位ソースディレクトリで「/ usr/bin/phpize」を実行していることを確認してください コマンドが「phpize:not found」で失敗した場合その後、あなたはインする必要があります背の高いphp5-devパッケージルートユーザーとして「apt-getinstallphp5-dev」を実行すると、12個のファイル操作をロールバックできます + rm /usr/share/php/doc/apd/.tmpLICENSE + rm /usr/share/php/doc/apd/.tmpREADME + rm /usr/bin/.tmppprofp + rm /usr/bin/.tmppprof2calltree エラー: `phpize'failed 警告:unlink(/ tmp/glibctestRdKE0K):System.phpの214行目にそのようなファイルまたはディレクトリがありません 警告: unlink(/ tmp/pear/temp/pearf7LGca):System.phpの214行目にそのようなファイルまたはディレクトリはありません
これは、APDをPHPプロファイラーとして実行するための前提条件であるすべての簡単な要約になります。それがあなたのニーズに役立つことを願っています。この要約はPHP 5.6.2 APD 1.0.1に適用され、他のバージョンでは正しくない可能性があります。
最初に、これら2つを確認しなかった場合は起動しないでください。
--enable-debug
)のデバッグ対応バージョンをインストールしますPEAR設定が機能している場合は、 this の記事のようにAPDを設定する必要があります。配布パッケージも試すことを忘れないでください。それ以外の場合、APDのビルドは次のようになります。
<Apache root>/bin/phpsize
を実行します./configure
を実行します(構成が失敗した場合は--with-php-config=<Apache root>/bin/php-config
を追加します)。make make install
zend_extension =/apd.so apd.statement = 1 apd.tracedir =/tmp/apd-traces
ここで、Apacheを再起動する必要がありますが、再起動する前に、APD拡張機能が正常に機能することを確認してください。単にPHPを実行するには
/bin/php
拡張機能が適切に読み込まれていても警告は表示されません。 「apd.so」拡張子のようなエラーメッセージが表示された場合は、ロードできませんでした。問題があります。正しいApache/PHPバージョンに対してコンパイルし、今すぐ同じものを使用しているかどうかを確認してください。
PHPが何も文句を言わない場合は、次のように入力します。
<?php phpinfo(); ?>
aPDに関するいくつかの行を確認してください。あなたがそれらを見つけたら、あなたは終わりです。
また、いくつかのトレースが必要になるため、トレースを開始するには、Apacheを使用して、PHPモジュールがAPDをロードできるようにする必要があります。次に、トレースするスクリプトを特定する必要があります。スクリプトの先頭にAPD呼び出しを追加します。
apd_set_pprof_trace();
次に、いくつかの要求を行い、ステートメントを再度削除して、さらに害を与えないようにします。次に、トレースディレクトリを確認します。 pprof[0-9]*.[0-9]
の命名スキームを持つファイルはここにあります。 APDソースtarballからpprofp
ツールを使用してそれらをデコードします。例:
/bin/php/pprofp -u
必要に応じてstdoutをリダイレクトします。 要約出力)の代わりに-tを使用して、呼び出しツリーを取得します。 -tを使用してトレースを作成すると、要約出力も取得されますが、呼び出しごとの期間は含まれていません。常に呼び出しツリーと要約トレースの両方を作成することをお勧めします。
お役に立てば幸いです、お勧めしますほとんど上記のリンクを読む。
Phpizeコマンドは、拡張ソースディレクトリの最上位で実行するためのものです(このソースディレクトリには、config.m4というファイル名が含まれている必要があります)。詳細については、---(this を参照してください。
エラーごとに:
コマンドが
phpize: not found
で失敗した場合は、php5-devパッケージをインストールする必要があります。Rootユーザーとして
apt-get install php5-dev
を実行することでそれを行うことができます
PHPのモジュール開発をインストールする必要があります:
Sudo apt-get install php5-dev
これにより、Pecl拡張ソースをコンパイルするために必要なphpize
バイナリが提供されます。そして、それがPATH
にあることを確認してください。