mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-15 16:38:54 +00:00

Based on a patch provided by an anonymous user. git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@345755 c90b9560-bf6c-de11-be94-00142212c4b1
302 lines
10 KiB
XML
302 lines
10 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<sect1 xml:id="install.unix.apache" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Apache 1.3.x on Unix systems</title>
|
|
<para>
|
|
This section contains notes and hints specific to Apache installs
|
|
of PHP on Unix platforms. We also have <link
|
|
linkend="install.unix.apache2">instructions and notes for Apache 2
|
|
on a separate page</link>.
|
|
</para>
|
|
<para>
|
|
You can select arguments to add to the
|
|
<command>configure</command> on line 10 below from the <link
|
|
linkend="configure.about">list of core configure options</link> and
|
|
from extension specific options described at the respective
|
|
places in the manual. 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.
|
|
</para>
|
|
|
|
<example xml:id="install.unix.apache.example">
|
|
<title>
|
|
Installation Instructions (Apache Shared Module Version) for PHP
|
|
</title>
|
|
<screen>
|
|
<![CDATA[
|
|
1. gunzip apache_xxx.tar.gz
|
|
2. tar -xvf apache_xxx.tar
|
|
3. gunzip php-xxx.tar.gz
|
|
4. tar -xvf php-xxx.tar
|
|
5. cd apache_xxx
|
|
6. ./configure --prefix=/www --enable-module=so
|
|
7. make
|
|
8. make install
|
|
9. cd ../php-xxx
|
|
|
|
10. Now, configure your PHP. This is where you customize your PHP
|
|
with various options, like which extensions will be enabled. Do a
|
|
./configure --help for a list of available options. In our example
|
|
we'll do a simple configure with Apache 1 and MySQL support. Your
|
|
path to apxs may differ from our example.
|
|
|
|
./configure --with-mysql --with-apxs=/www/bin/apxs
|
|
|
|
11. make
|
|
12. make install
|
|
|
|
If you decide to change your configure options after installation,
|
|
you only need to repeat the last three steps. You only need to
|
|
restart apache for the new module to take effect. A recompile of
|
|
Apache is not needed.
|
|
|
|
Note that unless told otherwise, 'make install' will also install PEAR,
|
|
various PHP tools such as phpize, install the PHP CLI, and more.
|
|
|
|
13. Setup your php.ini file:
|
|
|
|
cp php.ini-development /usr/local/lib/php.ini
|
|
|
|
You may edit your .ini file to set PHP options. If you prefer your
|
|
php.ini in another location, use --with-config-file-path=/some/path in
|
|
step 10.
|
|
|
|
If you instead choose php.ini-production, be certain to read the list
|
|
of changes within, as they affect how PHP behaves.
|
|
|
|
14. Edit your httpd.conf to load the PHP module. The path on the right hand
|
|
side of the LoadModule statement must point to the path of the PHP
|
|
module on your system. The make install from above may have already
|
|
added this for you, but be sure to check.
|
|
|
|
LoadModule php5_module libexec/libphp5.so
|
|
|
|
15. And in the AddModule section of httpd.conf, somewhere under the
|
|
ClearModuleList, add this:
|
|
|
|
AddModule mod_php5.c
|
|
|
|
16. Tell Apache to parse certain extensions as PHP. For example,
|
|
let's have Apache parse the .php extension as PHP. You could
|
|
have any extension(s) parse as PHP by simply adding more, with
|
|
each separated by a space. We'll add .phtml to demonstrate.
|
|
|
|
AddType application/x-httpd-php .php .phtml
|
|
|
|
It's also common to setup the .phps extension to show highlighted PHP
|
|
source, this can be done with:
|
|
|
|
AddType application/x-httpd-php-source .phps
|
|
|
|
17. Use your normal procedure for starting the Apache server. (You must
|
|
stop and restart the server, not just cause the server to reload by
|
|
using a HUP or USR1 signal.)
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
|
|
<para>
|
|
Alternatively, to install PHP as a static object:
|
|
</para>
|
|
|
|
<example xml:id="install.unix.apache.example-static">
|
|
<title>
|
|
Installation Instructions (Static Module Installation for Apache) for PHP
|
|
</title>
|
|
<screen>
|
|
<![CDATA[
|
|
1. gunzip -c apache_1.3.x.tar.gz | tar xf -
|
|
2. cd apache_1.3.x
|
|
3. ./configure
|
|
4. cd ..
|
|
|
|
5. gunzip -c php-5.x.y.tar.gz | tar xf -
|
|
6. cd php-5.x.y
|
|
7. ./configure --with-mysql --with-apache=../apache_1.3.x
|
|
8. make
|
|
9. make install
|
|
|
|
10. cd ../apache_1.3.x
|
|
|
|
11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
|
|
(The above line is correct! Yes, we know libphp5.a does not exist at this
|
|
stage. It isn't supposed to. It will be created.)
|
|
|
|
12. make
|
|
(you should now have an httpd binary which you can copy to your Apache bin dir if
|
|
it is your first install then you need to "make install" as well)
|
|
|
|
13. cd ../php-5.x.y
|
|
14. cp php.ini-development /usr/local/lib/php.ini
|
|
|
|
15. You can edit /usr/local/lib/php.ini file to set PHP options.
|
|
Edit your httpd.conf or srm.conf file and add:
|
|
AddType application/x-httpd-php .php
|
|
]]>
|
|
</screen>
|
|
</example>
|
|
|
|
<para>
|
|
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 <literal>/path/to/</literal> with
|
|
the path to these applications on your systems.
|
|
</para>
|
|
<para>
|
|
<example>
|
|
<title>Example commands for restarting Apache</title>
|
|
<programlisting role="shell">
|
|
<![CDATA[
|
|
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
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
The locations of the apachectl and http(s)dctl binaries often
|
|
vary. If your system has <literal>locate</literal>,
|
|
<literal>whereis</literal> or <literal>which</literal> commands,
|
|
these can assist you in finding your server control programs.
|
|
</para>
|
|
|
|
<para>
|
|
Different examples of compiling PHP for apache are as follows:
|
|
<informalexample>
|
|
<programlisting role="shell">
|
|
<![CDATA[
|
|
./configure --with-apxs --with-pgsql
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
<para>
|
|
This will create a <filename>libphp5.so</filename> shared library
|
|
that is loaded into Apache using a LoadModule line in Apache's
|
|
&httpd.conf; file. The PostgreSQL support is embedded into this
|
|
library.
|
|
</para>
|
|
<para>
|
|
<informalexample>
|
|
<programlisting role="shell">
|
|
<![CDATA[
|
|
./configure --with-apxs --with-pgsql=shared
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
<para>
|
|
This will create a <filename>libphp5.so</filename> shared
|
|
library for Apache, but it will also create a
|
|
<filename>pgsql.so</filename> 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 <function>dl</function> function.
|
|
</para>
|
|
<para>
|
|
<informalexample>
|
|
<programlisting role="shell">
|
|
<![CDATA[
|
|
./configure --with-apache=/path/to/apache_source --with-pgsql
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
<para>
|
|
This will create a <filename>libmodphp5.a</filename> library, a
|
|
<filename>mod_php5.c</filename> and some accompanying files and
|
|
copy this into the <literal>src/modules/php5</literal> directory
|
|
in the Apache source tree. Then you compile Apache using
|
|
<literal>--activate-module=src/modules/php5/libphp5.a</literal>
|
|
and the Apache build system will create
|
|
<filename>libphp5.a</filename> and link it statically into the
|
|
<filename>httpd</filename> binary. The PostgreSQL support is
|
|
included directly into this <filename>httpd</filename> binary,
|
|
so the final result here is a single <filename>httpd</filename>
|
|
binary that includes all of Apache and all of PHP.
|
|
</para>
|
|
<para>
|
|
<informalexample>
|
|
<programlisting role="shell">
|
|
<![CDATA[
|
|
./configure --with-apache=/path/to/apache_source --with-pgsql=shared
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
</para>
|
|
<para>
|
|
Same as before, except instead of including PostgreSQL support
|
|
directly into the final <filename>httpd</filename> you will get
|
|
a <filename>pgsql.so</filename> shared library that you can load
|
|
into PHP from either the &php.ini; file or
|
|
directly using <function>dl</function>.
|
|
</para>
|
|
<para>
|
|
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
|
|
<link xlink:href="&url.apachedso;">web page on DSO support</link>.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
Apache's default &httpd.conf; currently ships with a section that looks
|
|
like this:
|
|
<informalexample>
|
|
<programlisting role="apache-conf">
|
|
<![CDATA[
|
|
User nobody
|
|
Group "#-1"
|
|
]]>
|
|
</programlisting>
|
|
</informalexample>
|
|
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.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
Make sure you specify the installed version of apxs when using
|
|
<option role="configure">--with-apxs=/path/to/apxs</option>.
|
|
You must NOT use the apxs version that is in the apache sources but the one
|
|
that is actually installed on your system.
|
|
</para>
|
|
</note>
|
|
</sect1>
|
|
|
|
<!-- 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:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|