Finish editorial pass through Apache chapter.

Update mod_php to reflect the new port.
Comment out some of the mod_php config until it can be confirmed as
required--the new port does not add these lines and I suspect they were
only needed in Apache 1.x.
Add some references.

Sponsored by:	iXsystems
This commit is contained in:
Dru Lavigne 2014-04-16 17:32:06 +00:00
parent ba0eb3136d
commit 51b6ff17ff
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44582

View file

@ -4498,21 +4498,21 @@ DocumentRoot <replaceable>/www/someotherdomain.tld</replaceable>
</sect3>
<sect3>
<title><filename>mod_perl2</filename></title>
<title><filename>mod_perl</filename></title>
<indexterm>
<primary>mod_perl2</primary>
<primary>mod_perl</primary>
<secondary>Perl</secondary>
</indexterm>
<para>The
<filename>mod_perl2</filename> module makes it possible
<filename>mod_perl</filename> module makes it possible
to write <application>Apache</application> modules
in <application>Perl</application>. In addition, the persistent interpreter embedded
in the server avoids the overhead of starting an external
interpreter and the penalty of <application>Perl</application> start-up time.</para>
<para>The <filename>mod_perl2</filename> can be installed using the
<para>The <filename>mod_perl</filename> can be installed using the
<package>www/mod_perl2</package> package or
port. Documentation for using this module can be found at
<uri
@ -4521,7 +4521,7 @@ DocumentRoot <replaceable>/www/someotherdomain.tld</replaceable>
<sect3>
<info>
<title><application>mod_php</application></title>
<title><filename>mod_php</filename></title>
<authorgroup>
<author>
@ -4539,57 +4539,27 @@ DocumentRoot <replaceable>/www/someotherdomain.tld</replaceable>
<secondary>PHP</secondary>
</indexterm>
<para><acronym>PHP</acronym>, also known as
<quote>PHP: Hypertext Preprocessor</quote> is a
<para><firstterm>PHP: Hypertext Preprocessor</firstterm>
(<acronym>PHP</acronym>) is a
general-purpose scripting language that is especially suited
for Web development. Capable of being embedded into
<acronym>HTML</acronym> its syntax draws upon C, &java;, and
Perl with the intention of allowing web developers to write
for web development. Capable of being embedded into
<acronym>HTML</acronym>, its syntax draws upon
<application>C</application>, &java;, and
<application>Perl</application> with the intention of allowing web developers to write
dynamically generated webpages quickly.</para>
<para>To gain support for <acronym>PHP</acronym>5 for the
<application>Apache</application> web server, begin by
installing the <package>lang/php5</package>
port.</para>
<para>If the <package>lang/php5</package>
port is being installed for the first time, available
<literal>OPTIONS</literal> will be displayed automatically.
If a menu is not displayed, i.e., because the
<package>lang/php5</package> port has been installed some
time in the past, it is always possible to bring the
options dialog up again by running:</para>
<screen>&prompt.root; <userinput>make config</userinput></screen>
<para>in the port directory.</para>
<para>In the options dialog, check the
<literal>APACHE</literal> option to build
<application>mod_php5</application> as a loadable module for
the <application>Apache</application> web server.</para>
<note>
<para>A lot of sites are still using <acronym>PHP</acronym>4
for various reasons (i.e., compatibility issues or already
deployed web applications). If the
<application>mod_php4</application> is needed instead of
<application>mod_php5</application>, then please use the
<package>lang/php4</package> port. The
<package>lang/php4</package> port
supports many of the configuration and build-time options
of the <package>lang/php5</package>
port.</para>
</note>
<para>This will install and configure the modules required
<application>Apache</application> web server,
install the <package>www/mod_php5</package> package or
port. This will install and configure the modules required
to support dynamic <acronym>PHP</acronym> applications.
Check to ensure the following sections have been added to
<filename>/usr/local/etc/apache22/httpd.conf</filename>:</para>
The installation will automatically add this line to
<filename>/usr/local/etc/apache2<replaceable>4</replaceable>/httpd.conf</filename>:</para>
<programlisting>LoadModule php5_module libexec/apache/libphp5.so</programlisting>
<programlisting>AddModule mod_php5.c
<programlisting>LoadModule php5_module libexec/apache24/libphp5.so</programlisting>
<!--
I don't think this is still needed
AddModule mod_php5.c
&lt;IfModule mod_php5.c&gt;
DirectoryIndex index.php index.html
&lt;/IfModule&gt;
@ -4597,31 +4567,24 @@ DocumentRoot <replaceable>/www/someotherdomain.tld</replaceable>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
&lt;/IfModule&gt;</programlisting>
<para>Once completed, a simple call to the
<command>apachectl</command> command for a graceful
restart is needed to load the <acronym>PHP</acronym>
-->
<para>Then, perform a graceful
restart to load the <acronym>PHP</acronym>
module:</para>
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
<para>For future upgrades of <acronym>PHP</acronym>, the
<command>make config</command> command will not be required;
the selected <literal>OPTIONS</literal> are saved
automatically by the &os; Ports framework.</para>
<para>The <acronym>PHP</acronym> support in &os; is extremely
modular so the base install is very limited. It is very
easy to add support using the
<para>The <acronym>PHP</acronym> support provided by
<package>www/mod_php5</package>
is limited. Additional
support can be installed using the
<package>lang/php5-extensions</package>
port. This port provides a menu driven interface to
<acronym>PHP</acronym> extension installation.
Alternatively, individual extensions can be installed using
the appropriate port.</para>
port which provides a menu driven interface to the available
<acronym>PHP</acronym> extensions.</para>
<para>For instance, to add support for the
<application>MySQL</application> database server to
<acronym>PHP</acronym>5, simply install the port
<para>Alternatively, individual extensions can be installed using
the appropriate port. For instance, to add <acronym>PHP</acronym> support for the
<application>MySQL</application> database server, install
<filename>databases/php5-mysql</filename>.</para>
<para>After installing an extension, the
@ -4640,15 +4603,11 @@ DocumentRoot <replaceable>/www/someotherdomain.tld</replaceable>
<secondary>dynamic</secondary>
</indexterm>
<para>In the last decade, more businesses have turned to the
Internet in order to enhance their revenue and increase
exposure. This has also increased the need for interactive
web content. While some companies, such as &microsoft;,
have introduced solutions into their proprietary products,
the open source community answered the call. Modern options
for dynamic web content include Django, Ruby on Rails,
<application>mod_perl2</application>, and
<application>mod_php</application>.</para>
<para>In addition to <application>mod_perl</application> and
<application>mod_php</application>, other languages are
available for creating dynamic web content. These include
<application>Django</application> and
<application>Ruby on Rails</application>.</para>
<sect3>
<title>Django</title>
@ -4656,54 +4615,54 @@ DocumentRoot <replaceable>/www/someotherdomain.tld</replaceable>
<indexterm><primary>Python</primary></indexterm>
<indexterm><primary>Django</primary></indexterm>
<para>Django is a BSD licensed framework designed to allow
<para><application>Django</application> is a BSD-licensed framework designed to allow
developers to write high performance, elegant web
applications quickly. It provides an object-relational
mapper so that data types are developed as Python objects,
and a rich dynamic database-access API is provided for those
objects without the developer ever having to write SQL. It
mapper so that data types are developed as <application>Python</application> objects.
A rich dynamic database-access <acronym>API</acronym> is provided for those
objects without the developer ever having to write <acronym>SQL</acronym>. It
also provides an extensible template system so that the
logic of the application is separated from the HTML
logic of the application is separated from the <acronym>HTML</acronym>
presentation.</para>
<para>Django depends on <application>mod_python</application>,
<application>Apache</application>, and an SQL database
engine. The &os; Port will install all of
these pre-requisites with the appropriate
flags.</para>
<para>Django depends on <filename>mod_python</filename>,
and an <acronym>SQL</acronym> database
engine. In &os;, the <package>www/py-django</package> port
automatically installs <filename>mod_python</filename> and
supports the <application>PostgreSQL</application>,
<application>MySQL</application>, or
<application>SQLite</application> databases, with the default
being <application>SQLite</application>. To change the
datbase engine, type <command>make config</command> within
<filename>/usr/ports/www/py-django</filename>, then install
the port.</para>
<example xml:id="network-www-django-install">
<title>Installing Django with
<application>Apache2</application>,
<application>mod_python3</application>, and
<application>PostgreSQL</application></title>
<para>Once <application>Django</application> is installed,
the application will need a project directory along
with the <application>Apache</application> configuration in order to
use the embedded <application>Python</application>
interpreter. This interpreter is used to
call the application for specific <acronym>URL</acronym>s on the site.</para>
<screen>&prompt.root; <userinput>cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQL</userinput></screen>
</example>
<para>Once Django and these pre-requisites are installed,
the application will need a Django project directory along
with the Apache configuration to use the embedded Python
interpreter. This will be the interpreter to
call the application for specific URLs on the site.</para>
<example xml:id="network-www-django-apache-config">
<title>Apache Configuration for Django/mod_python</title>
<para>A line must be added to the apache
<filename>httpd.conf</filename> file to configure Apache
to pass requests for certain URLs to the web
application:</para>
<para>To configure <application>Apache</application> to pass
requests for certain <acronym>URL</acronym>s to the web
application, add the following to
<filename>httpd.conf</filename>, specifying the full path to
the project directory:</para>
<screen>&lt;Location "/"&gt;
SetHandler python-program
PythonPath "['/dir/to/the/django/packages/'] + sys.path"
PythonPath "['<replaceable>/dir/to/the/django/packages/</replaceable>'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonAutoReload On
PythonDebug On
&lt;/Location&gt;</screen>
</example>
<para>Refer to <uri
xlink:href="https://docs.djangoproject.com/en/1.6/">https://docs.djangoproject.com/en/1.6/</uri>
for more information on how to use
<application>Django</application>.</para>
</sect3>
<sect3>
@ -4711,13 +4670,17 @@ DocumentRoot <replaceable>/www/someotherdomain.tld</replaceable>
<indexterm><primary>Ruby on Rails</primary></indexterm>
<para>Ruby on Rails is another open source web framework that
provides a full development stack and is optimized to make
<para><application>Ruby on Rails</application> is another open source web framework that
provides a full development stack. It is optimized to make
web developers more productive and capable of writing
powerful applications quickly. It can be installed easily
from the ports system.</para>
powerful applications quickly. On &os;, tt can be installed
using the <package>www/rubygem-rails</package> package or
port.</para>
<screen>&prompt.root; <userinput>cd /usr/ports/www/rubygem-rails; make all install clean</userinput></screen>
<para>Refer to <uri
xlink:href="http://rubyonrails.org/documentation">http://rubyonrails.org/documentation</uri>
for more information on how to use <application>Ruby on
Rails</application>.</para>
</sect3>
</sect2>
</sect1>