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 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803
|
<chapter id="installation">
<title>Installation</title>
<abstract>
<para>
This chapter will guide you through the configuration and
installation of PHP3. Prerequisite knowledge and software:
<itemizedlist>
<listitem><simpara>Basic UNIX skills (being able to operate "make"
and a C compiler)</simpara></listitem>
<listitem><simpara>An ANSI C compiler</simpara></listitem>
<listitem><simpara>A web server (obviously)</simpara></listitem>
</itemizedlist>
</para>
</abstract>
<sect1 id="install-unix">
<title>Installing From Source on UNIX</title>
<sect2>
<title>Downloading Source</title>
<simpara>
The source code for the latest version can be found at
<literal><ulink
url="http://www.php.net">http://www.php.net</ulink></literal>.
</simpara>
</sect2>
<sect2>
<title>Quick Installation Instructions (Apache Module Version)</title>
<para>
<informalexample>
<programlisting>
1. gunzip apache_1.3.x.tar.gz
2. tar xvf apache_1.3.x.tar
3. gunzip php-3.0.x.tar.gz
4. tar xvf php-3.0.x.tar
5. cd apache_1.3.x
6. ./configure --prefix=/www
7. cd ../php-3.0.x
8. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
9. make
10. make install
11. cd ../apache_1.3.x
12. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
13. make
14. make install
Instead of this step you may prefer to simply copy the httpd binary overtop
of your existing binary. Make sure you shut down your server first though.
15. cd ../php-3.0.x
16. cp php3.ini-dist /usr/local/lib/php3.ini
You can edit /usr/local/lib/php3.ini file to set PHP options.
If you prefer this file in another location, use --with-config-file=/path in step 8.
17. Edit your httpd.conf or srm.conf file and add:
AddType application/x-httpd-php3 .php3
You can choose any extension you wish here. .php3 is simply the one we suggest.
18. Use your normal procedure for starting the Apache server.
</programlisting>
</informalexample>
</para>
</sect2>
<sect2>
<title>Configuration</title>
<para>
There are two ways of configuring PHP3.
<itemizedlist>
<listitem>
<para>
Using the "setup" script that comes with PHP3. This script
asks you a series of questions (almost like the "install"
script of PHP/FI 2.0) and runs "configure" in the end. To run
this script, type <command>./setup</command>.
<para>
This script will also create a file called "do-conf", this
file will contain the options passed to configure. You can
edit this file to change just a few options without having to
re-run setup. Then type <command>./do-conf</command> to run
configure with the new options.
</listitem>
<listitem>
<para>
Running configure by hand. To see what options you have, type
<command>./configure --help</command>.
</listitem>
</itemizedlist>
<para>
Details about some of the different configuration options are
listed below.
<sect2 id="with-apache">
<title>Apache module</title>
<para>
To build PHP3 as an Apache module, answer "yes" to "Build as an Apache
module?" (the <option><link linkend="with-apache">
--with-apache</link>=<replaceable>DIR</replaceable></option>
option to configure) and specify the Apache distribution base
directory. If you have unpacked your Apache distribution in
<filename class=directory>/usr/local/www/apache_1.2.4</filename>,
this is your Apache distribution base directory. The default
directory is <filename
class=directory>/usr/local/etc/httpd</filename>.
<sect2 id="with-fhttpd">
<title>fhttpd module</title>
<para>
To build PHP3 as an fhttpd module, answer "yes" to "Build as an fhttpd
module?" (the <option><link linkend="with-fhttpd">
--with-fhttpd</link>=<replaceable>DIR</replaceable></option>
option to configure) and specify the fhttpd source base directory.
The default directory is <filename
class=directory>/usr/local/src/fhttpd</filename>. If you are running
fhttpd, building PHP as a module will give better performance,
more control and remote execution capability.
<sect2>
<title>CGI version</title>
<para>
The default is to build PHP3 as a CGI program. If you are
running a web server PHP3 has module support for, you should
generally go for that solution for performance reasons. However,
the CGI version enables Apache users to run different
PHP3-enabled pages under different user-ids. Please make sure
you read through the <link linkend="config-security">Security chapter</link>
if you are going to run PHP as a CGI.
<sect2>
<title>Database Support Options</title>
<para>
PHP3 has native support for a number of databases (as well as
ODBC):
</para>
<sect3 id="with-adabas">
<title>Adabas D</title>
<synopsis>
<option>--with-adabas<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Compiles with Adabas D support. The parameter is the Adabas D
install directory and defaults to <filename
class=directory>/usr/local/adabasd</filename>.
<simpara>
<ulink url="http://www.adabas.com/">Adabas home page</ulink>
</sect3>
<sect3 id="with-dbase">
<title>dBase</title>
<synopsis>
<option>--with-dbase</option>
</synopsis>
<simpara>
Enables the bundled DBase support. No external libraries are
required.
</sect3>
<sect3 id="with-filepro">
<title>filePro</title>
<synopsis>
<option>--with-filepro</option>
</synopsis>
<simpara>
Enables the bundled read-only filePro support. No external
libraries are required.
</sect3>
<sect3 id="with-msql">
<title>mSQL</title>
<synopsis>
<option>--with-msql<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Enables mSQL support. The parameter to this option is the mSQL
install directory and defaults to <filename
class=directory>/usr/local/Hughes</filename>. This is the
default directory of the mSQL 2.0 distribution.
<command>configure</command> automatically detects which mSQL
version you are running and PHP3 supports both 1.0 and 2.0, but
if you compile PHP3 with mSQL 1.0, you can only access mSQL 1.0
databases, and vice-versa.
<simpara>
See also <link linkend="ini.sect.msql">mSQL Configuration</link>
Directives in the <link linkend="php3.ini">configuration file</link>.
<simpara>
<ulink url="http://www.hughes.com.au">mSQL home page</ulink>
</sect3>
<sect3 id="with-mysql">
<title>MySQL</title>
<synopsis>
<option>--with-mysql<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Enables MySQL support. The parameter to this
option is the MySQL install directory and defaults to <filename
class=directory>/usr/local</filename>. This is the default
installation directory of the MySQL distribution.
<simpara>
See also <link linkend="ini.sect.mysql">MySQL Configuration</link>
Directives in the <link linkend="php3.ini">configuration file</link>.
<simpara>
<ulink url="http://www.tcx.se">MySQL home page</ulink>
</sect3>
<sect3 id="with-iodbc">
<title>iODBC</title>
<synopsis>
<option>--with-iodbc<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Includes iODBC support. This feature was first developed for
iODBC Driver Manager, a freely redistributable ODBC driver manager
which runs under many flavors of UNIX. The parameter to this option is
the iODBC installation directory and defaults to <filename
class=directory>/usr/local</filename>.
<simpara>
<ulink url="http://users.ids.net/~bjepson/freeODBC/">FreeODBC home
page</ulink>
</sect3>
<sect3 id="with-openlink">
<title>OpenLink ODBC</title>
<synopsis>
<option>--with-openlink<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Includes OpenLink ODBC support. The parameter to this option is
the OpenLink ODBC installation directory and defaults to
<filename class=directory>/usr/local/openlink</filename>.
<simpara>
<ulink url="http://www.openlinksw.com/">OpenLink Software's home
page</ulink>
</sect3>
<sect3 id="with-oracle">
<title>Oracle</title>
<synopsis>
<option>--with-oracle<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Includes Oracle support. Has been tested and should be working
at least with Oracle versions 7.0 through 7.3. The parameter is
the <envar>ORACLE_HOME</envar> directory. You do not have to
specify this parameter if your Oracle environment has been set
up.
<simpara>
<ulink url="http://www.oracle.com">Oracle home page</ulink>
</sect3>
<sect3 id="with-pgsql">
<title>PostgreSQL</title>
<synopsis>
<option>--with-pgsql<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Includes PostgreSQL support. The parameter is the PostgreSQL base
install directory and defaults to <filename
class=directory>/usr/local/pgsql</filename>.
<simpara>
See also <link linkend="ini.sect.pgsql">Postgres Configuration</link>
Directives in the <link linkend="php3.ini">configuration file</link>.
<simpara>
<ulink url="http://www.postgreSQL.org/">PostgreSQL home page</ulink>
</sect3>
<sect3 id="with-solid">
<title>Solid</title>
<synopsis>
<option>--with-solid<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Includes Solid support. The parameter is the Solid install
directory and defaults to <filename
class=directory>/usr/local/solid</filename>.
<simpara>
<ulink url="http://www.solidtech.com">Solid home page</ulink>
</sect3>
<sect3 id="with-sybase">
<title>Sybase</title>
<synopsis>
<option>--with-sybase<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Includes Sybase support. The parameter is the Sybase install
directory and defaults to <filename
class=directory>/home/sybase</filename>.
<simpara>
See also <link linkend="ini.sect.sybase">Sybase Configuration</link>
Directives in the <link linkend="php3.ini">configuration file</link>.
<simpara>
<ulink url="http://www.sybase.com">Sybase home page</ulink>
</sect3>
<sect3 id="with-sybase-ct">
<title>Sybase-CT</title>
<synopsis>
<option>--with-sybase-ct<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Includes Sybase-CT support. The parameter is the Sybase-CT
install directory and defaults to <filename
class=directory>/home/sybase</filename>.
<simpara>
See also <link linkend="ini.sect.sybct">Sybase-CT Configuration</link>
Directives in the <link linkend="php3.ini">configuration file</link>.
</sect3>
<sect3 id="with-velocis">
<title>Velocis</title>
<synopsis>
<option>--with-velocis<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Includes Velocis support. The parameter is the Velocis install
directory and defaults to <filename
class=directory>/usr/local/velocis</filename>.
<simpara>
<ulink url="http://www.raima.com">Velocis home page</ulink>
</sect3>
<sect3 id="with-custom-odbc">
<title>A custom ODBC library</title>
<synopsis>
<option>--with-custom-odbc<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Includes support for an arbitrary custom ODBC library. The parameter
is the base directory and defaults to
<filename class=directory>/usr/local</filename>.
<simpara>
This option implies that you have defined CUSTOM_ODBC_LIBS when
you run the configure script. You also must have a valid odbc.h header
somewhere in your include path. If you don't have one, create it and
include your specific header from there. Your header may also require
some extra definitions, particularly when it is multiplatform. Define
them in CFLAGS.
<simpara>
For example, you can use Sybase SQL Anywhere on QNX as following:
<literal>
CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50
</literal>
</sect3>
<sect3 id="disable-unified-odbc">
<title>Unified ODBC</title>
<synopsis>
<option>--disable-unified-odbc</option>
</synopsis>
<simpara>
Disables the Unified ODBC module, which is a common interface to
all the databases with ODBC-based interfaces, such as Solid and
Adabas D. It also works for normal ODBC libraries. Has been tested with
iODBC, Solid, Adabas D and Sybase SQL Anywhere. Requires that one
(and only one) of these modules or the Velocis module is enabled, or a
custom ODBC library specified. This option is only applicable
if one of the following options is used:
<link linkend="with-iodbc">--with-iodbc</link>,
<link linkend="with-solid">--with-solid</link>,
<link linkend="with-adabas">--with-adabas</link>,
<link linkend="with-velocis">--with-velocis</link>, or
<link linkend="with-adabas">--with-custom-odbc</link>,
<simpara>
See also <link linkend="ini.sect.uodbc">Unified ODBC Configuration</link>
Directives in the <link linkend="php3.ini">configuration file</link>.
</sect3>
<sect3 id="with-ldap">
<title>LDAP</title>
<synopsis>
<option>--with-ldap<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Includes <acronym>LDAP</acronym> (Lightweight Directory Access
Protocol) support. The parameter is the LDAP base install
directory, defaults to <filename
class=directory>/usr/local/ldap</filename>.
<simpara>
More information about LDAP can be found in
<ulink url="ftp://ftp.isi.edu/in-notes/rfc1777.txt">RFC1777</ulink>
and <ulink url="ftp://ftp.isi.edu/in-notes/rfc1778.txt">RFC1778</ulink>.
</sect3>
</sect2>
<sect2>
<title>Other configure options</title>
<sect3 id="enable-maintainer-mode">
<title>--enable-maintainer-mode</title>
<synopsis>
<option>--enable-maintainer-mode</option>
</synopsis>
<simpara>
Turns on extra dependencies and compiler warnings used by some
of the PHP3 developers.
</sect3>
<sect3 id="with-system-regex">
<title>--with-system-regex</title>
<synopsis>
<option>--with-system-regex</option>
</synopsis>
<simpara>
Uses the system's regular expression library rather than the
bundled one. If you are building PHP3 as a server module, you
must use the same library when building PHP3 as when linking the server.
Enable this if the system's library provides special features you need.
It is recommended that you use the bundled library if possible.
</sect3>
<sect3 id="with-config-file-path">
<title>--with-config-file-path</title>
<synopsis>
<option>--with-config-file-path=DIR</option>
</synopsis>
<simpara>
The path used to look for <link linkend="php3.ini">the php3.ini
file</link> when PHP starts up.
</sect3>
<sect3 id="with-exec-dir">
<title>--with-exec-dir</title>
<synopsis>
<option>--with-exec-dir<replaceable>=DIR</replaceable></option>
</synopsis>
<simpara>
Only allow running of executables in DIR when in safe mode.
Defaults to <filename class=directory>/usr/local/bin</filename>.
This option only sets the default, it may be changed with the
<link linkend="ini.safe-mode-exec-dir">safe_mode_exec_dir</link>
directive in the <link linkend="php3.ini">configuration file</link>
later.
</sect3>
<sect3 id="disable-debug">
<title>--disable-debug</title>
<synopsis>
<option>--disable-debug</option>
</synopsis>
<simpara>
Does not include debug information in the library or executable.
The debug information makes it easier to pinpoint bugs, so it is
a good idea to leave debug on as long as PHP3 is in alpha or
beta state.
</sect3>
<sect3 id="enable-safe-mode">
<title>--enable-safe-mode</title>
<synopsis>
<option>--enable-safe-mode</option>
</synopsis>
<simpara>
Enables "safe mode" by default. This imposes several restrictions
on what PHP can do, such as opening only files within the document
root. Read the <link linkend="config-security">Security chapter</link>
for more more information. CGI users should always enable secure mode.
This option only sets the default, it may be enabled or disabled with
the <link linkend="ini.safe-mode">safe_mode</link> directive in the
<link linkend="php3.ini">configuration file</link> later.
</sect3>
<sect3 id="enable-track-vars">
<title>--enable-track-vars</title>
<synopsis>
<option>--enable-track-vars</option>
</synopsis>
<simpara>
Makes PHP3 keep track of where GET/POST/cookie variables come
from in the arrays HTTP_GET_VARS, HTTP_POST_VARS and
HTTP_COOKIE_VARS.
This option only sets the default, it may be enabled or disabled with
the <link linkend="ini.track-vars">track_vars</link> directive in the
<link linkend="php3.ini">configuration file</link> later.
</sect3>
<sect3 id="enable-magic-quotes">
<title>--enable-magic-quotes</title>
<synopsis>
<option>--enable-magic-quotes</option>
</synopsis>
<simpara>
Enable magic quotes by default.
This option only sets the default, it may be enabled or disabled with
the <link linkend="ini.magic-quotes-runtime">magic_quotes_runtime</link>
directive in the <link linkend="php3.ini">configuration file</link>
later. See also the <link linkend="ini.magic-quotes-gpc">
magic_quotes_gpc</link> and the <link
linkend="ini.magic-quotes-sybase">magic_quotes_sybase</link> directives.
</sect3>
<sect3 id="enable-debugger">
<title>--enable-debugger</title>
<synopsis>
<option>--enable-debugger</option>
</synopsis>
<simpara>
Enables the internal PHP3 debugger support. This feature is
still in an experimental state. See also the <link
linkend="ini.sect.debugger">Debugger Configuration</link> directives
in the <link linkend="php3.ini">configuration file</link>.
</sect3>
<sect3 id="enable-discard-path">
<title>--enable-discard-path</title>
<synopsis>
<option>--enable-discard-path</option>
</synopsis>
<simpara>
If this is enabled, the PHP CGI binary can safely be placed
outside of the web tree and people will not be able to
circumvent .htaccess security.
Read the <link linkend="config-security-cgi-shell">section in
the security chapter</link> about this option.
</sect3>
<sect3 id="enable-bcmath">
<title>--enable-bcmath</title>
<synopsis>
<option>--enable-bcmath</option>
</synopsis>
<simpara>
Enables <command>bc</command> style arbitrary precision math
functions. See also the <link linkend="ini.sect.bcmath">bcmath.scale
</link> option in the <link linkend="php3.ini">configuration file</link>.
</sect3>
<sect3 id="enable-force-cgi-redirect">
<title>--enable-force-cgi-redirect</title>
<synopsis>
<option>--enable-force-cgi-redirect</option>
</synopsis>
<simpara>
Enable the security check for internal server redirects. You
should use this if you are running the CGI version with Apache.
<simpara>
When using PHP as a CGI binary, PHP by default always first
checks that it is used by redirection (for example under Apache,
by using Action directives). This makes sure that the PHP
binary cannot be used to bypass standard web server
authentication procedures by calling it directly, like <filename
role=url>http://my.host/cgi-bin/php/secret/doc.html</filename>.
This example accesses <filename
role=url>http://my.host/secret/doc.html</filename> but does not
honour any security settings enforced by httpd for directory
<filename role=dir>/secret</filename>.
<simpara>
Not enabling option disables the check and enables bypassing httpd
security and authentication settings. Do this only if your
server software is unable to indicate that a safe redirection
was done and all your files under your document root and
user directories may be accessed by anyone.
<simpara>
Read the <link linkend="config-security-cgi-force">section in
the security chapter</link> about this option.
</sect3>
<sect3 id="disable-short-tags">
<title>--disable-short-tags</title>
<synopsis>
<option>--disable-short-tags</option>
</synopsis>
<simpara>
Disables the short form <literal><? ?></literal> PHP3
tags. You must disable the short form if you want to use PHP3
with <acronym>XML</acronym>. With short tags disabled, the only
PHP3 code tag is <literal><?php ?></literal>.
This option only sets the default, it may be enabled or disabled with
the <link linkend="ini.short-open-tag">short_open_tag</link> directive
in the <link linkend="php3.ini">configuration file</link> later.
</sect3>
<sect3 id="enable-url-includes">
<title>--enable-url-includes</title>
<synopsis>
<option>--enable-url-includes</option>
</synopsis>
<simpara>
Makes it possible to run code on other HTTP or FTP servers directly
from PHP3 with <link linkend="function.include">include()</link>.
See also the <link linkend="ini.include-path">include_path</link> option
in the <link linkend="php3.ini">configuration file</link>.
</sect3>
<sect3 id="disable-syntax-hl">
<title>--disable-syntax-hl</title>
<synopsis>
<option>--disable-syntax-hl</option>
</synopsis>
<simpara>
Turns off syntax highlighting.
</sect3>
<sect3>
<title>CPPFLAGS and LDFLAGS</title>
<para>
To make the PHP3 installation look for header or library files in
different directories, modify the <envar>CPPFLAGS</envar> and
<envar>LDFLAGS</envar> environment variables, respectively. If
you are using a sensible shell, you should be able to do
<command>LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure
</command>
</sect3>
</sect2>
<sect2>
<title>Building</title>
<simpara>
When PHP3 is configured, you are ready to build the CGI
executable or the PHP3 library. The command
<command>make</command> should take care of this. If it fails
and you can't figure out why, see the <link
linkend="install-problems">Problems section</link>.
<sect3> <!--not sure-->
<title>VPATH</title>
<simpara>
</sect3>
</sect2>
<sect2>
<title>Testing</title>
<simpara>
If you have built PHP3 as a CGI program, you may test your build
by typing <command>make test</command>. It is always a good idea
to test your build. This way you may catch a problem with PHP3
on your platform early instead of having to struggle with it
later.
</sect2>
<sect2>
<title>Benchmarking</title>
<simpara>
If you have built PHP3 as a CGI program, you may benchmark your build
by typing <command>make bench</command>. Note that if safe mode is on
by default, the benchmark may not be able to finish if it takes longer
then the 30 seconds allowed. This is because the
<function>set_time_limit</function> can not be used in safe mode. Use
the <link linkend="ini.max-execution-time">max_execution_time</link>
to control this time for you own scripts. <command>make bench</command>
ignores the <link linkend="php3.ini">configuration file</link>.
</sect2>
</sect1>
<sect1 id="install-windows95-nt">
<title>Installing PHP on Windows95/NT</title>
<sect2>
<title>Apache/NT and Stronghold/NT</title>
<simpara>
Follow the instructions for configuration under Unix.
</sect2>
<sect2>
<title>IIS and MS-PWS</title>
<simpara>
You can access php scripts simply by putting the php.exe file
into your scripts directory and using a url such as:
<filename role=url>http://my.server/scripts/php.exe/page.php</filename>
<simpara>
Redirection If you would like to use a url like:
<filename role=url>http://my.server/page.php</filename> you will
have to edit your registry.
<note><simpara>
Disclaimer: Be sure you make a backup of your registry before
editing it. The PHP Development Team is not responsible for
damaged registries. If you damage your registry, you may not be
able to restart your computer without reinstalling your OS!
</simpara></note>
<simpara>
You can edit your registry by running regedit.exe. To do this,
choose Run... from the Start menu, and type
<command>regedit</command> then click on OK. The registry
setting you need to edit is:
<database>HKEY_LOCAL_MACHINE:System:CurrentControlSet:Services:W3Svc:Parameters:ScriptMap</database>.
Add a new string value here with the extension you would like to
use for your php scripts, and make the value data the path to the
php executable: <literal>.phtm3 "c:\webshare\scripts\php.exe"</literal>
<simpara>
For the ISAPI version of PHP, use something like: <literal>.phtm
"c:\webshare\scripts\php3_isapi.dll"</literal>
<simpara>
You must also make any directories containing php scripts
executable. This is done in the IIS administrator. Consult your
IIS documentation for more information.
<simpara>
For other servers consult your server documentation.
<simpara>
PHP.INI File Under Windows, PHP will look for php3.ini
automaticaly, first under the windows os directory
(<filename>c:\windows</filename> or
<filename>c:\winnt</filename>) then in the directory in which the
PHP executable resides. Alternately, you can set the environment
variable <envar>PHPRC=\pathto\php3.ini</envar>, though this does
not work with all servers (apache for one).
</sect2>
</sect1>
<sect1 id="install-problems">
<title>Problems?</title>
<sect2>
<title>Read the FAQ</title>
<simpara>
Some problems are more common than others. The most common ones
are listed in the PHP3 FAQ, found at <ulink
url="&url.php3.faq;">&url.php3.faq;</ulink>
</sect2>
<sect2>
<title>Bug reports</title>
<simpara>
If you think you have found a bug in PHP3, please report it. The
PHP3 developers probably don't know about it, and unless you
report it, chances are it won't be fixed. A form for reporting
bugs is available on the PHP3 network of sites, the main form is
at <ulink url="&url.php3.bugs;" >&url.php3.bugs;</ulink>.
</sect2>
<sect2>
<title>Other problems</title>
<simpara>
If you are still stuck, someone on the PHP3 mailing list may be
able to help you. You should check out the archive first, in
case someone already answered someone else who had the same
problem as you. The archive is available at <ulink
url="&url.php3.archive;">&url.php3.archive;</ulink>. To
subscribe to the PHP3 mailing list, send an empty mail to <ulink
url="mailto:&email.php3.subscribe;">&email.php3.subscribe;</ulink>.
The mailing list address is <literal>&email.php3;</literal>.
<simpara>
If you want to get help on the mailing list, please try to be
precise and give the necessary details about your environment
(which operating system, what PHP version, what web server, if
you are running PHP as CGI or a server module, etc.), and
preferably enough code to make others able to reproduce and test
your problem.
<sect1 id="install-security">
<title>Security</title>
<simpara>
PHP is a powerful tool. As with many other powerful tools, it is
possible to shoot yourself in the foot with it. PHP has
functionality that, if carelessly used, may cause security
problems on your system. The best way of preventing this is to
always know what you are doing. Read the <link
linkend="config-security">Security chapter</link> for more
information.
</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
sgml-parent-document:nil
sgml-default-dtd-file:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
|