File: build.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (434 lines) | stat: -rw-r--r-- 17,919 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
<?xml version="1.0" encoding="utf-8"?>
 <chapter id="faq.build">
  <title>構築時の問題</title>
  <titleabbrev>構築時の問題</titleabbrev>
  
  <para>
   本節では、構築時に発生する多くの一般的なエラーを集めたものです。
  </para>
  
  <qandaset>
   <qandaentry id="faq.build.configure">
    <question>
     <para>
      anonymous CVSサービスにより最新版のPHPを入手しましたが、
      configureスクリプトがありません!
     </para>
    </question>
    <answer>
     <para>
      configure.inからconfigureスクリプトを生成するためには、GNU
      autoconfパッケージが必要です。CVSサーバからソースを入手した後、
      最上位のディレクトリで<command>./buildconf</command>を実行して下
      さい。(また、configureに
      <literal>--enable-maintainer-mode</literal>オプションを付けて実
      行した場合以外は、configureスクリプトはconfigure.inファイルが更
      新された際に自動的に再構築を行いません。このため、configure.inが
      変更された場合には忘れずに手動で再構築を行う必要があります。
      再構築の際に行われることの1つは、configureまたはconfig.statusを
      実行した後、Makefileの中の@VARIABLE@のような物を見つけることです。)
     </para>
    </answer>
   </qandaentry>
   
   <qandaentry id="faq.build.configuring">
    <question>
     <para>
      PHPをApacheと組みあわせて動作するようにconfigureを行う際に問題が
      あります。httpd.hが見付からないといわれますが、指定した場所にこ
      のファイルはあるのです!
     </para>
    </question>
    <answer>
     <para>
      configure/setupスクリプトにApacheソースツリーの最上位の場所を指
      定する必要があります。これは、'
      <literal>--with-apache=/path/to/apache</literal>'を指定するので
      あって、'<literal>--with-apache=/path/to/apache/src</literal>'で
      はないということです。
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.not_found">
    <question>
     <para>
      configureを実行した際、GD、gdbmまたは他のパッケージのファイルま
      たはライブラリを見つけることができないと言われます。
     </para>
    </question>
    <answer>
     <para>
      Cプリプロセッサおよびリンカに次のように追加でフラグを指定するこ
      とにより、configureスクリプトがヘッダファイルまたはライブラリを
      標準以外の場所で探すことが可能となります。
      <programlisting>
    CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
      </programlisting>
      ログインシェルとしてcsh系のシェルを使用している場合、次のように
      なります。
      <programlisting>
    env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
      </programlisting>
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.yytname">
    <question>
     <para>
      ファイルlanguage-parser.tab.cをコンパイルする際、 'yytname
      undeclared'というエラーが発生します。
     </para>
    </question>
    <answer>
     <para>
      bisonのバージョンを更新する必要があります。最新版は、
      <ulink url="&faqurl.bison;">&faqurl.bison;</ulink>にあります。
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.link">
    <question>
     <para>
      'make'を実行する際、実行には成功しているようですがコンパイルする
      最終的なアプリケーションをリンクしようとした際に何かファイルが見
      つからないというエラーが発生します。
     </para>
    </question>
    <answer>
     <para>
      古いバージョンのmakeには、functionsディレクトリにあるファイルの
      コンパイルされたものを同じディレクトリに正しく入れないものがあり
      ます。"<command>cp *.o functions</command>"を試しに実行してから
      '<command>make</command>' を再度実行し、解決されるか確認して下さ
      い。解決される場合には、GNU makeの最近のバージョンに更新するべき
      です。
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.undefined">
    <question>
     <para>
      PHPをリンクする際、未定義の参照があるというエラーが複数発生しま
      す。
     </para>
    </question>
    <answer>
     <para>
      最後に適切なライブラリが全てインクルードされているかどうか確認し
      て下さい。よくあるのは、'-ldl'や指定したデータベースのサポート機
      能に必要なライブラリの指定が欠けているというものです。
     </para>
     <para>
      Apache 1.2.xとリンクする場合には、適当な情報をConfigurationファ
      イルのEXTRA_LIBSの行に追加し、Apacheの Configureスクリプトを再度
      実行したかどうかを確認して下さい。より詳細な情報については、配布
      ファイルに付属するファイル
      <ulink url="&faqurl.file.installation;">INSTALL</ulink>を参照下
      さい。
     </para>
     <para>
      何名かの人からApacheとリンクする際に'
      <filename>libphp4.a</filename>'の直後に'-ldl'を追加する必要があ
      ることも報告されています。
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.Apache">
    <question>
     <para>
      PHPをApache 1.3と組み合わせて構築する手法が分かりません。
     </para>
    </question>
    <answer>
     <para>
      この手順は実際には非常に簡単です。以下の手順に注意深く従って下さ
      い。
      <itemizedlist>
       <listitem>
        <simpara>
         <ulink url="&faqurl.apache;">&faqurl.apache;</ulink>から最新
         のApache 1.3配布ファイルを取得して下さい。
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         これをどこか、例えば、
         <filename>/usr/local/src/apache-1.3</filename>で
         ungzip、untarして下さい。
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         まず、
         <command>./configure
         --with-apache=/&lt;path&gt;/apache-1.3</command>を実行し、PHP
         をコンパイルして下さい。
         (&lt;path&gt; の部分は実際のapache-1.3ディレクトリのパスに置
         き換えて下さい)
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         '<literal>make</literal>' を実行した後、'<literal>make
         install</literal>'を実行して下さい。これにより、PHPが構築され、
         必要なファイルがApacheのソースツリーにコピーされます。
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         ディレクトリを
         <filename>/&lt;path&gt;/apache-1.3/src</filename>に移動し、
         <filename>Configuration</filename>ファイルを編集して下さい。
         このファイルに以下を追加して下さい。: 
         <literal>AddModule modules/php4/libphp4.a</literal>
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         '<command>./Configure</command>' を実行した後、'
         <literal>make</literal>'を実行して下さい。
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         以上の手順によりPHP対応のhttpdバイナリが構築できました。
        </simpara>
       </listitem>
      </itemizedlist>
     </para>
     <para>
      <emphasis>注意:</emphasis> : Apache の新しい
      <literal>./configure</literal>スクリプトを使用することも可能です。
      Apache配布ファイルの<literal>README.configure</literal>ファイル
      の指示を参照下さい。また、PHP配布ファイルの
      <filename>INSTALL</filename> ファイルも参照下さい。
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.not_running">
    <question>
     <para>
      インストール手順に完全に基づきUNIX上でApacheモジュール版をインス
      トールしましたが、ブラウザでアクセスするとPHPスクリプトが表示さ
      れ、ファイルを保存しますかと尋ねられます。
     </para>

    </question>
    <answer>
     <para>
      これは、何らかの理由によりPHPモジュールが起動していないことを意
      味しています。助けを求める質問を行う前にまず以下を確認下さい。
      <itemizedlist>
       <listitem>
        <simpara>
         実行しているhttpdバイナリが構築したばかりの新しいhttpdバイナ
         リであることを確認して下さい。確認を行うには以下のように入力
         します。
         <literal>/path/to/binary/httpd -l</literal>
        </simpara>
        <simpara>
         <filename>mod_php3.c</filename> または
         <filename>mod_php4.c</filename> がリストの中にない場合、正し
         いバイナリが実行されていません。正しいバイナリを見つけて、イ
         ンストールして下さい。
        </simpara>
       </listitem>
       <listitem>
        <simpara>
       <literal>Apache .conf</literal> ファイルの1つに正しいMIME型
         が追加されていることを確認して下さい。これは以下のようになり
         ます。
         <literal>AddType application/x-httpd-php3 .php3</literal>
         (PHP 3の場合)
        </simpara>
        <simpara>
         または <literal>AddType application/x-httpd-php
         .php</literal> (PHP 4の場合)
        </simpara>
        <simpara> 
         また、このAddTypeの行が、
         &lt;Virtualhost&gt; または &lt;Directory&gt; ブロックの中に隠
         されて、テスト用のスクリプトの場所に適用できていないようなこ
         とがないことを確認して下さい。
        </simpara>
       </listitem>
       <listitem>
        <simpara>
         最後に、デフォルトのApache設定ファイルの場所はApache 1.2と
         Apache 1.3の間で変更されています。AddTypeの行を追加した設定ファ
         イルが実際に読み込まれていることを確認して下さい。このファイ
         ルが正しく読み込まれている場合には、明らかな構文エラーを
         httpd.confファイルの中に書き込んでしまったり、何らかの明らか
         な変更があった可能性があります。
        </simpara>
       </listitem>
      </itemizedlist>
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.activate_module">
    <question>
     <para>
      <literal>--activate-module=src/modules/php4/libphp4.a</literal>
      と書いてありますが、ファイルがありません。このため、
      <literal>--activate-module=src/modules/php4/libmodphp4.a</literal>に
      変更しましたが、やはりだめです。何が起きているのでしょう?
     </para>
    </question>
    <answer>
     <para>
      libphp4.aファイルはこの時点では存在しない、ということに気をつけて下さい。
      このファイルは、Apacheの構築時に自動的に作成されます。
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.ansi">
    <question>
     <para>
      <literal>--activate-module=src/modules/php4/libphp4.a</literal>
      を指定し、PHPを静的モジュールとして組み込んでApacheを構築しよう
      とした際に、システムがANSI対応ではないというエラーを発生します。
     </para>
    </question>
    <answer>
     <para>
      Apacheのこのエラーメッセージは紛らわしく、より新しいバージョンで
      は修整されています。
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.apxs">
    <question>
     <para>
      <literal>--with-apxs</literal>を指定してPHPを構築しようとした際、
      奇妙なエラーメッセージが出力されます。
     </para>
    </question>
    <answer>
     <para>
      ここでは、確認すべきことが3点あります。まず、何らかの理由により、
      Apacheがapxs Perlスクリプトを構築する際に適当なコンパイラやフラ
      グ変数を付けないで構築されてしまうことが時々あります。
      使用するapxsの場所を見つけたら('which apxs'コマンドを試してみて
      ください。/usr/local/apache/bin/apxsまたは/usr/sbin/apxs等にあり
      ます)、以下の行を確認して下さい。
      <programlisting>
my $CFG_CFLAGS_SHLIB  = '&nbsp;';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = '&nbsp;';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = '&nbsp;';          # substituted via Makefile.tmpl
      </programlisting>
      上記のようになっている場合は問題です。これらの行は空白になっているか
      'q()'のような正しくない値になっていると思います。これを以下のように
      変更して下さい。
      <programlisting>
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';             # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);        # substituted via Makefile.tmpl 
      </programlisting>
      可能性のある第2の問題は、RedHat-6.1と6.2でのみ存在する問題です。
      RedHatが出荷した apxs スクリプトは壊れています。以下の行を見て下さい。
      <programlisting>
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
      </programlisting>
      上の行がある場合、これを次のように変更して下さい。
      <programlisting>
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
      </programlisting>
      最後に、Apacheのconfigure/再インストールを行います。その際、
      './configure' と'make'の間に'make clean'を行って下さい。
     </para>
    </answer>
   </qandaentry>

   <qandaentry id="faq.build.microtime">
    <question>
     <para>
      'make'の間、microtimeおよび'RUSAGE_'関連で多くのエラーを発生しま
      す。
    </para>
    </question>
    <answer>
     <para>
      インストール時に'make'を行っている際、以下のようなエラーを発生す
      るとした場合、
      <programlisting>
    microtime.c: In function `php_if_getrusage':
    microtime.c:94: storage size of `usg' isn't known
    microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
    microtime.c:97: (Each undeclared identifier is reported only once
    microtime.c:97: for each function it appears in.)
    microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
    make[3]: *** [microtime.lo] Error 1
    make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/home/master/php-4.0.1/ext'
    make: *** [all-recursive] Error 1
      </programlisting>
     </para>
     <para>
      あなたのシステムは壊れています。使用しているglibcと同じバージョンの
      glibc-develパッケージをインストールして、/usr/include ファイルを修正
      する必要があります。この問題は、PHPの動作とは全く関係ありません。
      これを示すには、次のような簡単なテストを行ってみて下さい。
     <programlisting>
    $ cat &gt;test.c &lt;&lt;X
    #include &lt;sys/resource.h&gt;
    X
    $ gcc -E test.c &gt;/dev/null
      </programlisting>
      これが、エラーが発生する場合、インクルードファイルが見つからない
      ことがわかります。
     </para>
    </answer>
   </qandaentry>
   <qandaentry>
    <question>
     <para>
      PHPをアップグレードしたいのですが、現在インストールされているPHPを
      構築するときに指定した<command>./configure</command>コマンドの
      オプションはどこで知ることが出来ますか?
     </para>
    </question>
    <answer>
     <para>
      現在インストールされているPHPを構築した時のディレクトリにある
      config.nice ファイルを見るか、もしもうそのディレクトリが無い場合は
      <programlisting>
       <?php phpinfo(); ?>
      </programlisting>
      というスクリプトを実行すれば、最初の方にある<command>./configure</command>
      という箇所に表示されます。
     </para>
    </answer>
   </qandaentry>
  </qandaset>
 </chapter>

 <!-- Keep this comment at the end of the file
 Local variables:
 mode: sgml
 sgml-omittag:t
 sgml-shorttag:t
 sgml-minimize-attributes:nil
 sgml-always-quote-attributes:t
 sgml-indent-step:1
 sgml-indent-data:t
indent-tabs-mode:nil
 sgml-parent-document:nil
 sgml-default-dtd-file:"../../manual.ced"
 sgml-exposed-tags:nil
 sgml-local-catalogs:nil
 sgml-local-ecat-files:nil
 End:
 -->