<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Installation</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="openssl.requirements.html">Requirements</a></div> <div class="next" style="text-align: right; float: right;"><a href="openssl.configuration.html">Runtime Configuration</a></div> <div class="up"><a href="openssl.setup.html">Installing/Configuring</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="openssl.installation" class="section"> <h2 class="title">Installation</h2> <p class="para"> To use PHP's OpenSSL support you must also compile PHP <strong class="option configure">--with-openssl[=DIR]</strong> . </p> <p class="para"> The OpenSSL library also has additional requirements for normal operation at run-time. Most notably, OpenSSL requires access to a random or pseudo-random number generator; on most Unix and Unix-like platforms (including Linux), this means that it must have access to a <em>/dev/urandom</em> or <em>/dev/random</em> device. </p> <blockquote class="note"><p><strong class="note">Note</strong>: <strong>Note to Win32 Users</strong><br /> <p class="para"> In order for this extension to work, there are <acronym title="Dynamic Link Library">DLL</acronym> files that must be available to the Windows system <span class="envar">PATH</span>. For information on how to do this, see the <acronym title="Frequently Asked Questions">FAQ</acronym> entitled "<a href="faq.installation.html#faq.installation.addtopath" class="link">How do I add my PHP directory to the PATH on Windows</a>". Although copying DLL files from the PHP folder into the Windows system directory also works (because the system directory is by default in the system's <span class="envar">PATH</span>), this is not recommended. <em class="emphasis">This extension requires the following files to be in the <span class="envar">PATH</span>:</em> <var class="filename">libeay32.dll</var>, or, as of OpenSSL 1.1, <var class="filename">libcrypto-*.dll</var> </p> <p class="para"> Additionally, if you are planning to use the key generation and certificate signing functions, you will need to install a valid <var class="filename">openssl.cnf</var> file on your system. We include a sample configuration file in our win32 binary distributions, in the <var class="filename">extras/openssl</var> directory. </p> <p class="para"> PHP will search for the <var class="filename">openssl.cnf</var> using the following logic: <ul class="itemizedlist"> <li class="listitem"> <span class="simpara">the <em>OPENSSL_CONF</em> environmental variable, if set, will be used as the path (including filename) of the configuration file. </span> </li> <li class="listitem"> <span class="simpara">the <em>SSLEAY_CONF</em> environmental variable, if set, will be used as the path (including filename) of the configuration file. </span> </li> <li class="listitem"> <span class="simpara">The file <var class="filename">openssl.cnf</var> will be assumed to be found in the default certificate area, as configured at the time that the openssl DLL was compiled. This is usually means that the default filename is <var class="filename">c:\usr\local\ssl\openssl.cnf</var>. </span> </li> </ul> </p> <span class="simpara"> In your installation, you need to decide whether to install the configuration file at <var class="filename">c:\usr\local\ssl\openssl.cnf</var> or whether to install it someplace else and use environmental variables (possibly on a per-virtual-host basis) to locate the configuration file. Note that it is possible to override the default path from the script using the <code class="parameter">configargs</code> of the functions that require a configuration file. </span> </p></blockquote> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="openssl.requirements.html">Requirements</a></div> <div class="next" style="text-align: right; float: right;"><a href="openssl.configuration.html">Runtime Configuration</a></div> <div class="up"><a href="openssl.setup.html">Installing/Configuring</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>