{"id":246,"date":"2015-05-24T23:37:36","date_gmt":"2015-05-24T21:37:36","guid":{"rendered":"http:\/\/staratnight.de\/blog\/?p=246"},"modified":"2018-12-07T21:46:19","modified_gmt":"2018-12-07T19:46:19","slug":"entwicklungsumgebung-fuer-php-unter-windows-einrichten","status":"publish","type":"post","link":"https:\/\/staratnight.de\/blog\/entwicklungsumgebung-fuer-php-unter-windows-einrichten\/","title":{"rendered":"Entwicklungsumgebung f\u00fcr PHP unter Windows einrichten"},"content":{"rendered":"<p>Ich hatte einige Probleme, PHPMD &#8211; PHP Mess Detector &#8211; zum Laufen zu bekommen. Das habe ich zum Anlass genommen, mein lokales PHP einmal komplett zu l\u00f6schen und neu einzurichten.<\/p>\n<p>Das hat sich aber als gar nicht so leicht herausgestellt. Es gibt einiges zu beachten, wenn man PHP installieren m\u00f6chte, um dagegen zu entwickeln.<\/p>\n<p>Mein Ziel war es, PHP mit internem Web-Server (seit PHP 5.4 enthalten), Composer und PHPMD einzurichten, um ein Projekt mit IntellJ IDEA und dem zugeh\u00f6rigen PHP-Plugin zu entwickeln. Im Folgenden beschreibe ich, wie ich diese Umgebung eingerichtet habe.<\/p>\n<p><!--more--><\/p>\n<h1>PHP<\/h1>\n<p>Zu allererstes brauchen wir nat\u00fcrlich PHP. Das gibt es auf der Download-Seite von PHP. Aber hier tat sich schon gleich die erste T\u00fccke auf. F\u00fcr Windows gibt es 4 verschiedene Versionen. Welche also nehmen?<\/p>\n<h2>Download<\/h2>\n<p>Die Download-Seite ist hierzu finden: <a href=\"http:\/\/windows.php.net\/download\/\">http:\/\/windows.php.net\/download\/<\/a><br \/>\nDie richtige Variante ist <strong>VCxx x86 Non Thread Safe<\/strong>. Die NTS-Version reicht zu Development-Zwecken vollkommen aus. F\u00fcr PHP 7.2 ist das dann z.B.\u00a0<em>VC15 x86 Non Thread Safe<\/em><\/p>\n<p>Einfach die ZIP-Datei herunterladen und irgendwo speichern.<\/p>\n<p><strong>Wichtig:<\/strong> Ich setze IntelliJ IDEA in Version 12.x ein. Diese unterst\u00fctzt im PHP-Plugin keinen internen Webserver, wenn eine PHP-Version gr\u00f6\u00dfer als 5.4 eingesetzt wird. Ich vermute einen Bug im Plugin. Aber da Version 12 von JetBrains nicht mehr weiterentwickelt wird, erwarte ich nicht, dass sich das noch \u00e4ndert. F\u00fcr PHP 5.4. ist die richtige Variante dann <strong>VC9 x86 Non Thread Safe, <\/strong>leider noch ohne die Performance-Optimierungen, die in VC11 hinzugekommen sind.<\/p>\n<p><strong>Edit: <\/strong>Durch einen Umstieg auf IntelliJ 14.x kann ich nun den internen Webserver auch in PHP-Versionen 5.4, 5.5 und 5.6 verwenden.<\/p>\n<h2>Installieren<\/h2>\n<p>Zum Installieren einfach die ZIP-Datei in einem beliebigen Verzeichnis entpacken.<\/p>\n<p><strong>Hinweis:<\/strong> Das von mir gew\u00e4hlte Verzeichnis enth\u00e4lt keine Leer- oder Sonderzeichen. Das k\u00f6nnte zu einem Problem f\u00fchren. Am besten darauf achten und vermeiden.<\/p>\n<h2>Konfigurieren<\/h2>\n<p>Nach der Installation sind einige Einstellungen durchzuf\u00fchren:<\/p>\n<ul>\n<li><a href=\"http:\/\/staratnight.de\/blog\/systemumgebungsvariablen-unter-windows-pflegen\/\">Systemumgebungsvariablen <\/a>-&gt; Umgebungsvariablen&#8230; -&gt; PATH\n<ul>\n<li>Hier den Pfad erg\u00e4nzen, unter dem PHP installiert ist. Das ist der Pfad, in dem die Datei <em>php.exe<\/em> zu finden ist, ohne abschlie\u00dfendem Backslash (\\)<\/li>\n<\/ul>\n<\/li>\n<li>Im PHP-Pfad liegt eine Datei namens <em>php.ini-development<\/em>. Diese muss umbenannt werden in<em> php.ini<\/em>\n<ul>\n<li>In der umbenannten Datei (php.ini) sind noch ein paar Anpassungen vorzunehmen:\n<ul>\n<li>Eintrag <em>extension_dir = &#8222;ext&#8220;<\/em> aktivieren (das &#8218;;&#8216; rausnehmen)<\/li>\n<li>Eintrag <em>extension=php_openssl.dll<\/em> aktivieren (das &#8218;;&#8216; rausnehmen)<\/li>\n<li>Eintrag <em>date.timezone =<\/em> aktivieren (das &#8218;;&#8216; rausnehmen) und <em>Europe\/Berlin<\/em> eintragen (oder welche Zeitzone auch immer genutzt werden soll)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h1>PEAR<\/h1>\n<p>Nach der Installation von PHP installieren wir PEAR, das <em>PHP Extension and Application Repository, <\/em>ein Verzeichnis von Erweiterungen zu PHP. Dies werden wir sp\u00e4ter brauchen, um PHPMD verwenden zu k\u00f6nnen.<\/p>\n<h2>Download<\/h2>\n<p>Der Download des PEAR-Installers erfolgt \u00fcber folgenden Link: <a href=\"http:\/\/pear.php.net\/go-pear.phar\">http:\/\/pear.php.net\/go-pear.phar<\/a>. Diese einfach in dem Verzeichnis ablegen, in dem PEAR hinterher installiert werden soll.<\/p>\n<h2>Installieren<\/h2>\n<p>Die Installation erfolgt nun \u00fcber PHP. Deshalb ist es hier wichtig, dass der Pfad in der PATH-Systemvariable bei der PHP-Installation korrekt eingerichtet wurde. Die Installation erfolgt in folgenden Schritten:<\/p>\n<ul>\n<li>Eingabeaufforderung in dem Verzeichnis \u00f6ffnen, in dem die heruntergeladene PEAR-Datei liegt<\/li>\n<li>folgenden Befehl eingeben: <em>php go-pear.phar<br \/>\n<\/em>Es folgt das Installationsprogramm von PEAR, welches einige Nachfragen stellt<em><br \/>\n<\/em><\/p>\n<ul>\n<li>Bei der ersten Frage <em>system<\/em> eingeben<\/li>\n<li>Bei der n\u00e4chsten Nachfrage den Punkt <em>11. Name of configuration file<\/em> \u00e4ndern, wenn die Konfigurationsdatei nicht im Windows-Verzeichnis liegen soll\n<ul>\n<li>lokales PEAR-Verzeichnis eintragen<\/li>\n<\/ul>\n<\/li>\n<li>Nachfrage &#8222;Would you like to alter php.ini [Y\/n]&#8220; mit y beantworten<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/staratnight.de\/blog\/systemumgebungsvariablen-unter-windows-pflegen\/\">Systemumgebungsvariablen <\/a>-&gt; Umgebungsvariablen -&gt; PATH\n<ul>\n<li>Hier den Pfad erg\u00e4nzen, unter dem PEAR installiert ist. Das ist der Pfad, in dem die Datei <em>go-pear.phar<\/em> zu finden ist, ohne abschlie\u00dfendem Backslash (\\)<\/li>\n<\/ul>\n<\/li>\n<li>Im Installationsordner befindet sich eine neu erstellte Datei mit Namen <em>PEAR_ENV.reg. <\/em>Diese einfach aufrufen, damit werden weitere Variablen in den Umgebungsvariablen des Benutzers angelegt<\/li>\n<li>Damit diese greifen, muss der Rechner einmal neu gestartet werden. Alternativ auch einfach nur den <a href=\"http:\/\/staratnight.de\/blog\/windows-explorer-neu-starten-ohne-rechnerneustart\/\">Windows-Explorer neustarten<\/a>)<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h1>Composer<\/h1>\n<p>Als n\u00e4chstes richten wir den <em>Composer<\/em> ein. Dies ist ein Verwaltungssystem f\u00fcr Abh\u00e4ngigkeiten in PHP, vergleichbar zu NuGet in .Net oder Maven in Java. Da wir dies ben\u00f6tigen um PHPMD einfach zu installieren, aber auch f\u00fcr weitere Bibliotheken, die wir in unseren PHP-Projekten einsetzen m\u00f6chten, ist <em>Composer<\/em> hilfreich.<\/p>\n<h2>Download<\/h2>\n<p>Der <em>Composer<\/em> ist auf der Website des Projekts zu finden <a href=\"https:\/\/getcomposer.org\/download\/\">https:\/\/getcomposer.org\/download\/.<\/a> Hier gibt es f\u00fcr Windows ein eigenes Installationsprogramm im Bereich <em>Windows Installer<\/em> auf der Seite. Einfach die Datei Composer-Setup.exe herunterladen.<\/p>\n<h2>Installieren<\/h2>\n<p>F\u00fcr die Installation einfach die heruntergeladene Composer-Setup.exe aufrufen. Im folgenden wird man nach dem Pfad der PHP-Installation gefragt. Hier einfach den Pfad eintragen. Das ist der vollst\u00e4ndige Pfad zur oben installierten <em>php.exe<\/em> Datei. Also z.B. C:\\Programme\\PHP\\php.exe<\/p>\n<p>Hinweis: Bei diesem Schritt ist es wichtig, dass zuvor bei der PHP-Installation die Erweiterung <em>php_openssl.dll<\/em> aktiviert wurde, sonst wird <em>Composer<\/em> nicht installiert.<\/p>\n<p><em>Composer<\/em> muss nicht weiter eingerichtet werden, das hat das Installationsprogramm bereits f\u00fcr uns \u00fcbernommen.<\/p>\n<p>&nbsp;<\/p>\n<p>Das war es, von hier aus k\u00f6nnen wir mit der Entwicklung starten.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ich hatte einige Probleme, PHPMD &#8211; PHP Mess Detector &#8211; zum Laufen zu bekommen. Das habe ich zum Anlass genommen, mein lokales PHP&hellip;<\/p>\n","protected":false},"author":2,"featured_media":443,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,14,9],"tags":[],"class_list":["post-246","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-allgemein","category-php","category-tools"],"_links":{"self":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts\/246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/comments?post=246"}],"version-history":[{"count":11,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts\/246\/revisions"}],"predecessor-version":[{"id":497,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/posts\/246\/revisions\/497"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/media\/443"}],"wp:attachment":[{"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/media?parent=246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/categories?post=246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/staratnight.de\/blog\/wp-json\/wp\/v2\/tags?post=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}