<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/install.pecl.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'install.pecl.windows.php',
    1 => 'Installation einer PHP-Erweiterung unter Windows',
    2 => 'Installation einer PHP-Erweiterung unter Windows',
  ),
  'up' => 
  array (
    0 => 'install.pecl.php',
    1 => 'Installation der PECL-Erweiterungen',
  ),
  'prev' => 
  array (
    0 => 'install.pecl.downloads.php',
    1 => 'Herunterladen der PECL-Erweiterungen',
  ),
  'next' => 
  array (
    0 => 'install.pecl.pear.php',
    1 => 'Kompilieren dynamischer PECL-Erweiterungen mit dem Befehl pecl',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'install/pecl.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="install.pecl.windows" class="sect1">
  <h2 class="title">Installation einer PHP-Erweiterung unter Windows</h2>
  <p class="para">
   Unter Windows gibt es zwei Möglichkeiten, eine PHP-Erweiterung zu laden:
   Entweder sie wird in PHP einkompiliert oder sie wird als DLL geladen. Eine
   vorkompilierte Erweiterung zu laden ist die einfachste und auch die
   bevorzugte Methode.
  </p>
  <p class="para">
   Um eine Erweiterung zu laden, muss sie als <var class="filename">.dll</var>-Datei
   auf dem System vorhanden sein. Alle Erweiterungen werden automatisch und
   regelmäßig von der PHP-Gruppe kompiliert (bezüglich des Downloads siehe
   nächster Abschnitt).
  </p>
  <p class="para">
   Informationen darüber, wie Erweiterungen beim Kompilieren in PHP
   eingebunden werden, sind in der Dokumentation zum
   <a href="install.windows.building.php" class="link">Erstellen aus dem Quellcode</a>
   zu finden.
  </p>
  <p class="para">
   Um eine eigenständige Erweiterung (auch DLL-Datei genannt) zu kompilieren,
   siehe die Dokumentation
   <a href="install.windows.building.php" class="link">Erstellen aus dem Quellcode</a>.
   Wenn die DLL-Datei weder in der PHP-Distribution noch in PECL enthalten
   ist, muss sie möglicherweise kompiliert werden, bevor die Erweiterung
   verwendet werden kann.
  </p>
  <div class="sect2" id="install.pecl.windows.find">
   <h3 class="title">Wo finde ich eine Erweiterung?</h3>
   <p class="para">
    PHP-Erweiterungen heißen normalerweise <var class="filename">php_*.dll</var>
    (wobei der Stern für den Namen der Erweiterung steht) und befinden sich im
    Ordner <var class="filename">PHP\ext</var>.
   </p>
   <p class="para">
    PHP wird mit den Erweiterungen ausgeliefert, die für die meisten
    Entwickler am nützlichsten sind. Sie werden als
    <em>bundled</em> Erweiterungen bezeichnet.
   </p>
   <p class="para">
    Wenn allerdings die benötigte Funktionalität von keiner der mitgelieferten
    Erweiterungen zur Verfügung gestellt wird, kann eine solche Erweiterung
    vielleicht in <a href="https://pecl.php.net/" class="link external">&raquo;&nbsp;PECL</a> gefunden werden. Die PHP Extension Community
    Library (PECL) ist eine Sammlung von PHP-Erweiterungen, die eine Liste
    aller bekannten Erweiterungen sowie einen Hosting-Service für das
    Herunterladen und Entwickeln von PHP-Erweiterungen bereitstellt.
   </p>
   <p class="para">
    Wenn eine Erweiterung für bestimmte Zwecke entwickelt wurde, kann diese
    auf PECL zur Verfügung gestellt werden, damit auch andere davon
    profitieren können, die die gleichen Anforderungen haben. Ein netter
    Nebeneffekt ist, dass dies eine gute Möglichkeit ist, Feedback,
    (hoffentlich) Dank, Fehlerberichte und sogar Korrekturen/Patches zu
    erhalten. Bevor eine Erweiterung zum Hosting in PECL eingereicht wird,
    sollte <a href="https://pecl.php.net/package-new.php" class="link external">&raquo;&nbsp;PECL submit</a> gelesen
    werden.
   </p>
  </div>

  <div class="sect2" id="install.pecl.windows.which">
   <h3 class="title">Welche Erweiterung soll ich herunterladen?</h3>
   <p class="para">
    <em>Häufig gibt es mehrere Versionen von einer DLL:</em>
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       Verschiedene Versionsnummern (zumindest die ersten beiden Nummern
       sollten übereinstimmen)
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Verschiedene Einstellungen für die Thread-Sicherheit
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Verschiedene Prozessorarchitekturen (x86, x64, ...)
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       Verschiedene Einstellungen für das Debugging
      </span>
     </li>
     <li class="listitem">
      <span class="simpara">
       <code class="literal">etc.</code>
      </span>
     </li>
    </ul>
   </p>
   <p class="para">
    Es ist zu beachten, dass die Einstellungen der Erweiterung mit den
    Einstellungen des verwendeten PHP-Programms übereinstimmen sollten. Das
    folgende PHP-Skript zeigt <em>alle</em> PHP-Einstellungen an:
   </p>
   <p class="para">
    <div class="example" id="example-1">
     <p><strong>Beispiel #1 
      Aufruf der Funktion <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span>
     </strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />phpinfo</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

    </div>
   </p>
   <p class="para">
    Alternativ können Sie Folgendes über die Befehlszeile ausführen:
    <div class="example-contents screen">
<div class="cdata"><pre>
drive:\path\to\php\executable\php.exe -i
</pre></div>
    </div>
   </p>
  </div>

  <div class="sect2" id="install.pecl.windows.loading">
   <h3 class="title">Laden einer Erweiterung</h3>
   <p class="para">
    Die übliche Methode, eine PHP-Erweiterung zu laden, besteht darin, sie in
    die Konfigurationsdatei <var class="filename">php.ini</var> einzutragen. Es ist zu beachten, dass
    bereits viele Erweiterungen in der <var class="filename">php.ini</var> enthalten sind, und dass nur
    das Semikolon entfernt werden muss, um sie zu aktivieren.
   </p>
   <p class="para">
    Es ist auch zu beachten, dass seit PHP 7.2.0 anstelle des Dateinamens der
    Erweiterung auch deren Name verwendet werden kann. Da dies unabhängig vom
    Betriebssystem gilt und insbesondere für Neueinsteiger einfacher ist, ist
    dies die empfohlene Methode, um die zu ladenden Erweiterungen anzugeben.
    Dateinamen werden aus Gründen der Kompatibilität mit früheren Versionen
    weiterhin unterstützt.
   </p>
   <div class="example-contents screen">
<div class="cdata"><pre>
;extension=php_extname.dll
</pre></div>
   </div>
   <div class="example-contents screen">
<div class="cdata"><pre>
extension=php_extname.dll
</pre></div>
   </div>
   <div class="example-contents screen">
<div class="cdata"><pre>
; Seit PHP 7.2.0 vorzuziehen:
extension=extname
zend_extension=another_extension
</pre></div>
   </div>
   <p class="para">
    Manche Webserver können allerdings etwas verwirrend sein, da sie nicht die
    <var class="filename">php.ini</var> aus der PHP-Distribution verwenden. Um herauszufinden, wo sich
    die tatsächlich verwendete <var class="filename">php.ini</var> befindet, kann der Pfad in
    <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> gesucht werden:
   </p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Configuration File (php.ini) Path  C:\WINDOWS
</pre></div>
   </div>
   <div class="example-contents screen">
<div class="cdata"><pre>
Loaded Configuration File   C:\Program Files\PHP\8.2\php.ini
</pre></div>
   </div>
   <p class="para">
    Nachdem Sie eine Erweiterung aktiviert haben, speichern Sie die <var class="filename">php.ini</var>,
    starten den Webserver neu und überprüfen die <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span>
    erneut. Die neue Erweiterung sollte nun ihren eigenen Abschnitt haben.
   </p>
  </div>

  <div class="sect2" id="install.pecl.windows.problemsolving">
   <h3 class="title">Probleme beheben</h3>
   <p class="para">
    Wenn die Erweiterung nicht in <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> erscheint,
    sollten die Logs überprüft werden, um herauszufinden, wo das Problem liegt.
   </p>
   <p class="para">
    Wenn PHP auf der Befehlszeile (CLI) verwendet wird, ist der Fehler beim
    Laden der Erweiterung direkt auf dem Bildschirm sehen.
   </p>
   <p class="para">
    Wenn PHP über einen Webserver verwendet wird, hängen Ort und Format der
    Logs von der Software ab. Da dies nichts mit PHP selbst zu tun hat,
    sollte die Dokumentation des Webservers zu Rate gezogen werden, um die
    Logs zu finden.
   </p>
   <p class="para">
    Die häufigsten Ursachen für Probleme sind die Speicherorte der DLL selbst
    und der DLLs, von denen sie abhängt, der Wert der Einstellung
    &quot;<a href="ini.core.php#ini.extension-dir" class="link">extension_dir</a>&quot; in der <var class="filename">php.ini</var>
    und falsche Einstellungen beim Kompilieren.
   </p>
   <p class="para">
    Wenn das Problem auf falsche Einstellungen beim Kompilieren zurückzuführen
    ist, wurde wahrscheinlich nicht die richtige DLL heruntergeladen.
    Versuchen Sie, die Erweiterung nochmal mit den richtigen Einstellungen
    herunterzuladen. Auch hier kann <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> eine große
    Hilfe sein.
   </p>
  </div>

 </div><?php manual_footer($setup); ?>