ホームページ  >  記事  >  バックエンド開発  >  PHP コンパイルの問題_PHP チュートリアル

PHP コンパイルの問題_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:23:02780ブラウズ

1. 匿名 CVS を使用してソース コード パッケージの最新バージョンを取得しましたが、構成スクリプト ファイルがありません。configure.in から構成スクリプト ファイルを生成できるように、GNU autoconf パッケージをインストールする必要があります。これを CVS サーバー上で実行して、最上位ディレクトリにソース コード ./buildconf を取得します。 (注: --enable-maintainer-mode オプションを指定してconfigureを実行しない限り、configure.inファイルが更新されてもconfigureスクリプトは再生成されないため、configure.inが変​​更されたことがわかった時点で、 config または config.status を実行すると、Makefile に @VARIABLE@ のようなラベルが表示されます。)
2. Apache で動作するように PHP を設定するときに問題が発生しました。 httpd.h が見つからないと表示されますが、確かに存在します。
configure/setup スクリプトに Apache の最上位ディレクトリの場所を伝える必要があります。 つまり、 --with-apache=/path/to/apache/src ではなく --with-apache=/path/to/apache を指定する必要があります。 conifgure を実行すると、インクルード ファイルが見つからないと表示されます。またはいくつかのライブラリ: GD、gdbm、またはその他のパッケージ
configure スクリプト、これらのヘッダー ファイルまたは非標準ライブラリの場所を確認し、いくつかの特別なフラグを C プリプロセッサに送信できます。例: CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
シェルが csh-variant を使用している場合、次のようになります (なぜですか?): env CPPFLAGS=-I / path/to/include LDFLAGS=-L/path/to/library ./configure

4. ファイル language-parser.tab.c をコンパイルすると、エラーが発生し、次のメッセージが表示されました: yytname undeclared
を更新する必要があります。 Bison バージョン。最新バージョンは ftp://ftp.gnu.org/pub/gnu/bison/ で見つかります。

5. make を実行すると、最初は正常に動作しますが、最終的には最終的なアプリケーションに接続すると失敗します。 、「数個未満のファイルが見つかりました。」というエラーが表示されます。
一部の古いバージョンの make では、functions ディレクトリにあるコンパイル済みファイルを同じディレクトリに置くことができません。cp *.o 関数を実行してから、make を実行して改善されるかどうかを確認してください。 その場合は、GNU Make のバージョンを更新する必要があります。
6. PHP に接続すると、未定義の参照というエラーが大量に表示されます。
ファイル内のリンク行を見て、関連するパッケージがすべて正しく含まれていることを確認します。通常、これは「-ldl」が欠落しており、サポートする必要があるデータベース パッケージがいくつかあることが原因です。
Apache 1.2.x に接続している場合は、EXTRA_LIBS 行に追加情報を追加し、Apache の Configure スクリプトを再実行することを忘れましたか? 配布パッケージの INSTALL ファイルを参照してください。
「-ldl」を追加するとすぐに libphp4.a が得られたと多くの人が言いました。
7. Apache 1.3 で PHP をコンパイルする方法がわかりません。
実際、これは非常に簡単です。次の手順に従ってください: http://www.apache.org/dist/ から Apache 1.3 ソース コードを入手します。 /usr /local/src/apache-1.3 として。

PHP 配布パッケージ ディレクトリで PHP をコンパイルします。 ./configure --with-apache=/
/apache-1.3 (ユーザーの実際の apache-1.3 ディレクトリの場所を置き換えます)。

「make」と入力し、「make install」と入力して PHP をコンパイルし、必要なファイルを Apache ディレクトリにコピーします。

/apache-1.3/src ディレクトリに移動し、次の行をファイルに追加します。 : AddModule modules/php4/libphp4.a

「./Configure」と入力し、次に「make」を実行します。

注: 新しい Apache ./configure スクリプトを使用することもできます。もちろん、PHP 配布パッケージの README.configure の INSTALL ファイルも確認する必要があります。8. Apache モジュールを (Unix 上で) 段階的にインストールしましたが、ブラウザで PHP スクリプトを開いたときに、保存しますか?

これは、PHP モジュールがロードされていないことを意味します。

実行している Httpd が、先ほどコンパイルした Httpd であることを確認します。 /path/to/ binary/httpd -l を実行できます mod_php4.c がリストに表示されない場合は、間違った Httpd を実行しています。再インストールするのが最善です

Apache に正しい Mime タイプを追加していることを確認してください。 conf ファイルは次のようになります: AddType application/x-httpd-php3 .php3 (PHP 3)

または AddType application/x-httpd-php .php (PHP 4)

また、AddType 行が含まれていないことを確認してください。
または

ブロックを使用すると無効になります。


最後に、AddType 行を追加した設定ファイルの場所を確認する必要があります。 httpd.conf に明らかなエラーをいくつか追加するか、このファイルが読み取られた場合にシステムが通知するように変更してください

9. システムは --activate-module=src/modules/php4/libphp4.a を使用するように指示しましたが、ファイルがまったく存在しなかったため、 --activate-module=src/modules に変更する必要がありました。 /php4/libmodphp4.a OK はい、動作しません。どうすればよいですか?
Apache プロセスがそれを作成することに注意してください。 10. --activate-module= src/modules/php4/libphp4.a しかし、システムは、私のコンパイラは ANSI 互換ではないと言います。
このエラー メッセージは Apache による誤解を招くものであり、新しいバージョンで修正できる可能性があります。
11. --with-apxs を使用して PHP をコンパイルすると、常に奇妙なエラーが発生します。
これが発生した場合は、次の 3 つの点から確認できます。まず、apxs Perl スクリプトをコンパイルするときに、Apache が適切なフラグ変数を作成しませんでした。apxs コマンドを試してください。通常は /usr で開きます。 /local/apache/bin/apxs または /usr/sbin/apxs を開き、次のような行を見つけます。 my $CFG_CFLAGS_SHLIB = ' '; # Makefile.tmplmy で置換 $CFG_LD_SHLIB = ' '; # Makefile.tmplmy で置換$CFG_LDFLAGS_SHLIB = ' '; # Makefile.tmpl で置換されました
これが表示された場合は、値にスペースまたはその他の不正な値 ('q()' など) が含まれているため、次のように変更します。 $CFG_CFLAGS_SHLIB = '-fpic -DSHARED_MODULE'; # Makefile.tmplmy によって置換 $CFG_LD_SHLIB = 'gcc'; # Makefile.tmplmy によって置換 $CFG_LDFLAGS_SHLIB = q(-shared) ; # 2 番目の可能性のみが表示されます。 Red Hat 6.1 および 6.2 では、apxs スクリプトの Red Hat バージョンが間違っています。my $CFG_LIBEXECDIR = 'modules'; # 置換された場合は、次の行に変更してください。 : my $CFG_LIBEXECDIR = '/usr/lib/apache'; # APACI install で置換
第三に、Apache を再構成/再インストールする場合は、make の前に make clean を実行する必要があります
12。作成中に、microtime や RUSAGE_ に関する多くのエラーが発生します。インストール プロセス中に次のエラーが表示される場合: microtime.c: In function ` php_if_getrusage':microtime.c:94: storage `usg' のサイズは不明ですmicrotime.c:97: `RUSAGE_SELF' は宣言されていません (この関数で最初に使用されます)microtime.c:97: (宣言されていない識別子はそれぞれ 1 回だけ報告されますmicrotime. c:97: 出現する関数ごとに.)microtime.c:103: `RUSAGE_CHILDREN' が宣言されていません (この関数で最初に使用します)make[3]: *** [microtime.lo] エラー 1make[3]: ディレクトリ `/home/master/php-4.0 から移動します。 1/ext/standard'make[2]: *** [すべて再帰的] エラー 1make[2]: ディレクトリ `/home/master/php-4.0.1/ext /standard'make[1]: ** を離れます* [すべて再帰的] エラー 1make[1]: ディレクトリ `/home/master/php-4.0.1/ext'make を離れます: *** [すべて再帰的] エラー 1


これはシステム上のエラーです/usr/include ファイルを修復する必要があります。具体的な方法は、glibc に一致する glibc-devel パッケージをインストールすることです。これを証明するには、次のようにします。 .c
X$ gcc -E test.c >/dev/null
エラーが発生した場合、インクルード ファイルが破損していることがわかります。

13. PHP をアップグレードしたいのですが、現在実行している内容はどこで確認できますか? PHP が最初に設定およびインストールされたときに使用される ./configure 行の内容は何ですか?

それが機能しない場合は、PHP をインストールしたソース ディレクトリにある config.nice ファイルを確認してください。
script を実行するだけです。出力ページの最初の行は、PHP
14 をコンパイルするときに使用した行です。



GD ライブラリと PHP をコンパイルするときは、必ず同じ依存ライブラリ (libpng など) を使用する必要があります。
http://www.bkjia.com/PHPjc/446900.html

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/446900.html技術記事 1. 匿名 CVS を使用してソース コード パッケージの最新バージョンを取得しましたが、構成スクリプト ファイルがありません。configure.in から構成スクリプト ファイルを生成できるように、GNU autoconf パッケージをインストールする必要があります。 .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。