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

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@261612 c90b9560-bf6c-de11-be94-00142212c4b1
187 lines
6.7 KiB
XML
187 lines
6.7 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!-- $Revision: 1.10 $ -->
|
|
<sect1 xml:id="install.unix.apache2" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Apache 2.0 on Unix systems</title>
|
|
<para>
|
|
This section contains notes and hints specific to Apache 2.0 installs
|
|
of PHP on Unix systems.
|
|
</para>
|
|
|
|
&warn.apache2.compat;
|
|
|
|
<para>
|
|
You are highly encouraged to take a look at the
|
|
<link xlink:href="&url.apache2.docs;">Apache Documentation</link> to get
|
|
a basic understanding of the Apache 2.0 Server.
|
|
</para>
|
|
|
|
&install.snippet.apache2.compat;
|
|
|
|
<para>
|
|
Download the most recent version of <link xlink:href="&url.apache;">
|
|
Apache 2.0</link> and a fitting PHP version from the above mentioned places.
|
|
This quick guide covers only the basics to get started with Apache 2.0
|
|
and PHP. For more information read the
|
|
<link xlink:href="&url.apache2.docs;">Apache Documentation</link>.
|
|
The version numbers have been omitted here, to ensure the
|
|
instructions are not incorrect. You will need to replace the
|
|
'NN' here with the correct values from your files.
|
|
</para>
|
|
<example>
|
|
<title>
|
|
Installation Instructions (Apache 2 Shared Module Version)
|
|
</title>
|
|
<screen>
|
|
<![CDATA[
|
|
1. gzip -d httpd-2_0_NN.tar.gz
|
|
2. tar xvf httpd-2_0_NN.tar
|
|
3. gunzip php-NN.tar.gz
|
|
4. tar -xvf php-NN.tar
|
|
5. cd httpd-2_0_NN
|
|
6. ./configure --enable-so
|
|
7. make
|
|
8. make install
|
|
|
|
Now you have Apache 2.0.NN available under /usr/local/apache2,
|
|
configured with loadable module support and the standard MPM prefork.
|
|
To test the installation use your normal procedure for starting
|
|
the Apache server, e.g.:
|
|
/usr/local/apache2/bin/apachectl start
|
|
and stop the server to go on with the configuration for PHP:
|
|
/usr/local/apache2/bin/apachectl stop.
|
|
|
|
9. cd ../php-NN
|
|
|
|
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 2 and MySQL support. Your
|
|
path to apxs may differ, in fact, the binary may even be named apxs2 on
|
|
your system.
|
|
|
|
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
|
|
|
|
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
|
|
|
|
cp php.ini-dist /usr/local/lib/php.ini
|
|
|
|
You may edit your .ini file to set PHP options. If you prefer having
|
|
php.ini in another location, use --with-config-file-path=/some/path in
|
|
step 10.
|
|
|
|
If you instead choose php.ini-recommended, 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.
|
|
|
|
For PHP 4:
|
|
|
|
LoadModule php4_module modules/libphp4.so
|
|
|
|
For PHP 5:
|
|
|
|
LoadModule php5_module modules/libphp5.so
|
|
|
|
15. Tell Apache to parse certain extensions as PHP. For example, let's have
|
|
Apache parse .php files as PHP. Instead of only using the Apache AddType
|
|
directive, we want to avoid potentially dangerous uploads and created
|
|
files such as exploit.php.jpg from being executed as PHP. Using this
|
|
example, you could have any extension(s) parse as PHP by simply adding
|
|
them. We'll add .phtml to demonstrate.
|
|
|
|
<FilesMatch \.php$>
|
|
SetHandler application/x-httpd-php
|
|
</FilesMatch>
|
|
|
|
Or, if we wanted to allow .php, .php2, .php3, .php4, .php5, .php6, and
|
|
.phtml files to be executed as PHP, but nothing else, we'd use this:
|
|
|
|
<FilesMatch "\.ph(p[2-6]?|tml)$">
|
|
SetHandler application/x-httpd-php
|
|
</FilesMatch>
|
|
|
|
And to allow .phps files to be executed as PHP source files, add this:
|
|
|
|
<FilesMatch "\.phps$">
|
|
SetHandler application/x-httpd-php-source
|
|
</FilesMatch>
|
|
|
|
16. Use your normal procedure for starting the Apache server, e.g.:
|
|
|
|
/usr/local/apache2/bin/apachectl start
|
|
|
|
- OR -
|
|
|
|
service httpd restart
|
|
|
|
]]>
|
|
|
|
</screen>
|
|
</example>
|
|
<para>
|
|
Following the steps above you will have a running Apache2 web server with
|
|
support for PHP as a <literal>SAPI</literal> module. Of course there are
|
|
many more configuration options available Apache and PHP. For more
|
|
information type <command>./configure --help</command> in the corresponding
|
|
source tree. If you wish to build a multithreaded version of Apache2, you
|
|
must overwrite the standard MPM-Module <filename>prefork</filename> either
|
|
with <filename>worker</filename> or <filename>perchild</filename>. To do
|
|
so append to your configure line in step 6 above either the option
|
|
<option role="configure">--with-mpm=worker</option> or
|
|
<option role="configure">--with-mpm=perchild</option>. Before doing so,
|
|
please beware the consequences and have at least a fair understand of what
|
|
the implications. For more information, read the Apache documentation
|
|
regarding <link xlink:href="&url.apache2.mpm;">MPM-Modules</link>.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
If you want to use content negotiation, read the
|
|
<link linkend="faq.installation.apache.multiviews">Apache MultiViews
|
|
FAQ</link>.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
To build a multithreaded version of Apache your system must support threads.
|
|
This also implies to build PHP with experimental
|
|
Zend Thread Safety (ZTS). Therefore not all extensions might be available.
|
|
The recommended setup is to build Apache with the standard
|
|
<filename>prefork</filename> MPM-Module.
|
|
</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:"../../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
|
|
-->
|