svn commit: r54573 - head/en_US.ISO8859-1/books/handbook/network-servers
Tom Rhodes
trhodes at FreeBSD.org
Sun Oct 4 05:07:50 UTC 2020
Author: trhodes
Date: Sun Oct 4 05:07:49 2020
New Revision: 54573
URL: https://svnweb.freebsd.org/changeset/doc/54573
Log:
Update the PHP and SSL subsections of the Apache section.
PR: 240956
Reviewed by: bcr
Sponsored by: https://reviews.freebsd.org/D26386
Modified:
head/en_US.ISO8859-1/books/handbook/network-servers/chapter.xml
Modified: head/en_US.ISO8859-1/books/handbook/network-servers/chapter.xml
==============================================================================
--- head/en_US.ISO8859-1/books/handbook/network-servers/chapter.xml Sun Oct 4 03:55:59 2020 (r54572)
+++ head/en_US.ISO8859-1/books/handbook/network-servers/chapter.xml Sun Oct 4 05:07:49 2020 (r54573)
@@ -3526,7 +3526,7 @@ freebsd.org. (A)
modules.</para>
<sect3>
- <title><filename>mod_ssl</filename></title>
+ <title>SSL support</title>
<indexterm>
<primary>web servers</primary>
@@ -3535,19 +3535,59 @@ freebsd.org. (A)
<indexterm><primary>SSL</primary></indexterm>
<indexterm><primary>cryptography</primary></indexterm>
- <para>The <filename>mod_ssl</filename> module uses the
- <application>OpenSSL</application> library to provide strong
- cryptography via the Secure Sockets Layer
- (<acronym>SSLv3</acronym>) and Transport Layer Security
- (<acronym>TLSv1</acronym>) protocols. This module provides
- everything necessary to request a signed certificate from a
- trusted certificate signing authority to run a secure web
- server on &os;.</para>
+ <para>At one in point in time, support for <acronym>SSL</acronym>
+ inside of Apache required a secondary module called
+ <filename>mod_ssl</filename>. This is no longer the case and
+ the default install of Apache comes with <acronym>SSL</acronym>
+ built into the web server. An example of how to enable
+ support for <acronym>SSL</acronym> websites is available
+ in the installed file, <filename>httpd-ssl.conf</filename>
+ inside of the
+ <filename role="directory">/usr/local/etc/apache24/extra</filename>
+ directory. Inside this directory is also a sample file called
+ named <filename>ssl.conf-sample</filename>. It is recommended
+ that both files be evaluated to properly set up secure websites
+ in the Apache web server.</para>
- <para>In &os;, <filename>mod_ssl</filename> module is enabled
- by default in both the package and the port. The available
- configuration directives are explained at <uri
- xlink:href="http://httpd.apache.org/docs/current/mod/mod_ssl.html">http://httpd.apache.org/docs/current/mod/mod_ssl.html</uri>.</para>
+ <para>After the configuration of <acronym>SSL</acronym> is
+ complete, the following line must be uncommented in the main
+ <filename>http.conf</filename> to activate the changes on the
+ next restart or reload of Apache:</para>
+
+ <programlisting>#Include etc/apache24/extra/httpd-ssl.conf</programlisting>
+
+ <warning>
+ <para><acronym>SSL</acronym> version two and version three have
+ known vulnerability issues. It is highly recommended TLS version
+ 1.2 and 1.3 be enabled in place of the older SSL options.
+ This can be accomplished by setting the following options in the
+ <filename>ssl.conf</filename>:</para>
+ </warning>
+
+ <programlisting>SSLProtocol all -SSLv3 -SSLv2 +TLSv1.2 +TLSv1.3
+SSLProxyProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1</programlisting>
+
+ <para>To complete the configuration of <acronym>SSL</acronym>
+ in the web server, uncomment the following line to ensure that
+ the configuration will be pulled into Apache during restart or
+ reload:</para>
+
+ <programlisting># Secure (SSL/TLS) connections
+Include etc/apache24/extra/httpd-ssl.conf</programlisting>
+
+ <para>The following lines must also be uncommented in the
+ <filename>httpd.conf</filename> to fully support
+ <acronym>SSL</acronym> in Apache:</para>
+
+ <programlisting>LoadModule authn_socache_module libexec/apache24/mod_authn_socache.so
+LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
+LoadModule ssl_module libexec/apache24/mod_ssl.so</programlisting>
+
+ <para>The next step is to work with a certificate authority
+ to have the appropriate certificates installed on the
+ system. This will set up a chain of trust for the site
+ and prevent any warnings of self-signed certificates.</para>
+
</sect3>
<sect3>
@@ -3601,52 +3641,88 @@ freebsd.org. (A)
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, install the
- <package>www/mod_php56</package> package or port. This will
- install and configure the modules required to support
- dynamic <acronym>PHP</acronym> applications. The
- installation will automatically add this line to
- <filename>/usr/local/etc/apache2<replaceable>4</replaceable>/httpd.conf</filename>:</para>
+ <para>Support for <acronym>PHP</acronym> for
+ <application>Apache</application> and any other feature
+ written in the language, can be added
+ by installing the appropriate port.</para>
- <programlisting>LoadModule php5_module libexec/apache24/libphp5.so</programlisting>
+ <para>For all supported versions, search the package database
+ using <command>pkg</command>. Here is an example of the
+ available <acronym>PHP</acronym> packages as of the time
+ of this writing:</para>
-<!--
-I do not think this is still needed
-AddModule mod_php5.c
- <IfModule mod_php5.c>
- DirectoryIndex index.php index.html
- </IfModule>
- <IfModule mod_php5.c>
- AddType application/x-httpd-php .php
- AddType application/x-httpd-php-source .phps
- </IfModule></programlisting>
+ <screen>&prompt.root; <userinput>pkg search php</userinput></screen>
- -->
+ <para>A list will be displayed including the versions and
+ additional features they provide. The components are
+ completely modular, meaning features are enabled by
+ installing the appropriate port. To install
+ <acronym>PHP</acronym> version 7.4 for Apache, issue
+ the following command:</para>
- <para>Then, perform a graceful restart to load the
- <acronym>PHP</acronym> module:</para>
+ <screen>&prompt.root; <userinput>pkg install mod_php74</userinput></screen>
- <screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
+ <para>If any dependency packages need to be installed, they will
+ be installed as well.</para>
- <para>The <acronym>PHP</acronym> support provided by
- <package>www/mod_php56</package> is limited. Additional
- support can be installed using the
- <package>lang/php56-extensions</package> port which provides
- a menu driven interface to the available
- <acronym>PHP</acronym> extensions.</para>
+ <para>By default, <acronym>PHP</acronym> will not be
+ enabled. The following lines will need to be added to
+ the Apache configuration file located in
+ <filename role="directory">/usr/local/etc/apache24</filename>
+ to make it active:</para>
- <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
- <package>databases/php56-mysql</package>.</para>
+ <programlisting><FilesMatch "\.php$">
+ SetHandler application/x-httpd-php
+</FilesMatch>
+<FilesMatch "\.phps$">
+ SetHandler application/x-httpd-php-source
+</FilesMatch></programlisting>
- <para>After installing an extension, the
- <application>Apache</application> server must be reloaded to
- pick up the new configuration changes:</para>
+ <para>In addition, the <option>DirectoryIndex</option> in
+ the configuration file will also need to be updated
+ and Apache will either need to be restarted or reloaded
+ for the changes to take effect.</para>
+ <para>Support for many of the <acronym>PHP</acronym>
+ features may also be installed by using
+ <command>pkg</command>. For example, to install
+ support for <acronym>XML</acronym> or
+ <acronym>SSL</acronym>, install their respective
+ ports:</para>
+
+ <screen>&prompt.root; <userinput>pkg install php74-xml php74-openssl</userinput></screen>
+
+ <para>As before, the Apache configuration will need to be
+ reloaded for the changes to take effect, even in cases
+ where it was just a module install.</para>
+
+ <para>To perform a graceful restart to reload the
+ configuration, issue the following command:</para>
+
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
+
+ <para>Once the install is complete, there are two methods of
+ obtaining the installed <acronym>PHP</acronym> support modules
+ and the environmental information of the build. The first is
+ to install the full <acronym>PHP</acronym> binary and running
+ the command to gain the information:</para>
+
+ <screen>&prompt.root; <userinput>pkg install php74</userinput></screen>
+ <screen>&prompt.root; <userinput>php -i |less</userinput></screen>
+
+ <para>It is necessary to pass the output to a pager, such as
+ the <command>more</command> or <command>less</command> to
+ easier digest the amount of output.</para>
+
+ <para>Finally, to make any changes to the global configuration
+ of <acronym>PHP</acronym> there is a well documented file
+ installed into
+ <filename role="directory">/usr/local/etc/php.ini</filename>.
+ At the time of install, this file will not exist because there
+ are two versions to choose from, one is
+ <filename>php.ini-development</filename> and the other is
+ <filename>php.ini-production</filename>. These are starting
+ points to assist administrators in their deployment.</para>
</sect3>
</sect2>
More information about the svn-doc-head
mailing list