This section contains notes and hints specific to Apache
installs of PHP, both for Unix and Windows
versions. We also have
instructions and notes for Apache 2 on a separate
page.
You can select arguments to add to the configure on line 10 below from the Complete list of configure
options. The version numbers have been omitted here, to
ensure the instructions are not incorrect. You will need to
replace the 'xxx' here with the correct values from your
files.
Depending on your Apache install and Unix variant,
there are many possible ways to stop and restart the
server. Below are some typical lines used in restarting the
server, for different apache/unix installations. You should
replace /path/to/ with the path to
these applications on your systems.
1. Several Linux and SysV variants: /etc/rc.d/init.d/httpd restart 2. Using apachectl scripts: /path/to/apachectl stop /path/to/apachectl start 3. httpdctl and httpsdctl (Using OpenSSL), similar to apachectl: /path/to/httpsdctl stop /path/to/httpsdctl start 4. Using mod_ssl, or another SSL server, you may want to manually stop and start: /path/to/apachectl stop /path/to/apachectl startssl |
Different examples of compiling PHP for apache are as
follows:
This will create a
libphp4.so shared library that is loaded into Apache
using a LoadModule line in Apache's
httpd.conf file. The PostgreSQL support is embedded
into this libphp4.so library.
This will create a
libphp4.so shared library for Apache, but it will also
create a pgsql.so shared library
that is loaded into PHP either by using the extension
directive in php.ini file or by
loading it explicitly in a script using the dl()
function.
This will create a
libmodphp4.a library, a
mod_php4.c and some accompanying files and copy this
into the src/modules/php4
directory in the Apache source tree. Then you compile
Apache using
--activate-module=src/modules/php4/libphp4.a and the
Apache build system will create
libphp4.a and link it statically into the httpd binary. The PostgreSQL support is
included directly into this httpd
binary, so the final result here is a single httpd binary that includes all of Apache
and all of PHP.
Same as before, except instead of including PostgreSQL
support directly into the final
httpd you will get a
pgsql.so shared library that you can load into PHP
from either the php.ini file or
directly using dl().
When choosing to build PHP in different ways, you
should consider the advantages and drawbacks of each
method. Building as a shared object will mean that you can
compile apache separately, and don't have to recompile
everything as you add to, or change, PHP. Building PHP into
apache (static method) means that PHP will load and run
faster. For more information, see the Apache
webpage on DSO support.
Unless you change that to "Group nogroup" or something like that ("Group daemon" is also very common) PHP will not be able to open files.
注: Apache's default http.conf currently ships with a section that looks like this:
注: Make sure you specify the installed version of apxs when using --with-apxs=/path/to/apxs. You must NOT use the apxs version that is in the apache sources but the one that is actually installed on your system.
There are two ways to set up PHP to work with Apache
1.3.x on Windows. One is to use the CGI binary (php.exe),
the other is to use the Apache module DLL. In either case
you need to stop the Apache server, and edit your srm.conf or
httpd.conf to configure Apache to work with PHP.
It is worth noting here that now the SAPI module has
been made more stable under windows, we recommend it's use
above the CGI binary, since it is more transparent and
secure.
Although there can be a few variations of configuring
PHP under Apache, these are simple enough to be used by the
newcomer. Please consult the Apache Docs for further
configuration directives.
If you unziped the PHP package to c:\php\ as described
in the Manual
Installation Steps section, you need to insert these
lines to your Apache configuration file to set up the CGI
binary:
ScriptAlias /php/
"c:/php/"
AddType
application/x-httpd-php .php .phtml
Action
application/x-httpd-php "/php/php.exe"
|
If you would like to use PHP as a module in Apache, be
sure to move php4ts.dll to the
windows/system (for Windows 9x/Me) or winnt/system32 (for
Windows NT/2000/XP) directory, overwriting any older file.
Then you should add the following two lines to you Apache
conf file:
LoadModule php4_module
c:/php/sapi/php4apache.dll
AddType
application/x-httpd-php .php .phtml
After changing the configuration file, remember to
restart the server, for example, NET
STOP APACHE followed by NET START
APACHE, if you run Apache as a Windows Service, or use
your regular shortcuts.
注: You may find after using the windows installer for Apache that you need to define the AddModule directive for mod_php4.c in the configuration file (httpd.conf). This is done by adding AddModule mod_php4.c to the AddModule list, near the beginning of the configuration file. This is especially important if the ClearModuleList directive is defined. Failure to do this may mean PHP will not be registered as an Apache module.
There are 2 ways you can use the source code
highlighting feature, however their ability to work depends
on your installation. If you have configured Apache to use
PHP as an ISAPI module, then by adding the following line
to your configuration file you can use this feature: AddType application/x-httpd-php-source
.phps
If you chose to configure Apache to use PHP as a CGI
binary, you will need to use the
show_source() function. To do this simply create a
PHP script file and add this code:
?php show_source ("original_php_script.php");
? . Substitute
original_php_script.php with the name of the file you
wish to show the source of.
注: On Win-Apache all backslashes in a path statement such as "c:\directory\file.ext", must be converted to forward slashes, as "c:/directory/file.ext".