wie man den Pfad von PHP INI Windows ändert

12

Ich habe PHP heruntergeladen, es meinem Pfad hinzugefügt und ich versuche, openssl zu aktivieren

php --ini sagt mir, dass die Konfigurationsdatei c: \ windows ist, wo nichts war, ich möchte php nicht in c / windows kopieren.

Wie ändere ich das so, dass es auf meinen PHP-Ordner zeigt?

Gast
quelle

Antworten:

10

Sie müssen nichts in der Nähe des c:\windowsOrdners mit PHP zu tun haben .

Wenn Sie dies tun, wird es Sie nur durcheinander bringen, wenn Sie PHP auf eine neue Version aktualisieren.

Wenn Sie eine CD in den Ordner php --inierstellen , in dem PHP installiert ist, und eine Datei ausführen, wird die Datei php.ini aus dem Ordner gelesen, in dem Sie sich befinden.

D:\wamp\bin\php\php5.5.12>php --ini
Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File:         D:\wamp\bin\php\php5.5.12\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

Ich denke, es ist auch eine schlechte Idee, den PHP-Installationsordner auch in den Windows-Pfad zu legen.

Sie benötigen lediglich eine kleine Batch-Datei, mit der Sie Ihren PATH für die Dauer des von Ihnen verwendeten Befehlsfensters einrichten und in einen der Ordner legen können, die sich bereits im Windows-PATH befinden.

Angenommen, Sie haben PHP darin installiert, C:\phpist dies die Batch-Datei

phppath.cmd

PATH=%PATH%;C:\php
php --ini
php -v

Und Sie führen diese Batch-Datei jedes Mal aus, wenn Sie ein Befehlsfenster öffnen und PHP-Code ausführen möchten, und Ihre Umgebung wird konfiguriert. Sie können dieser Batchdatei auch andere Dinge hinzufügen, wenn Sie andere Dinge wie Composer usw. zu Ihrer Umgebung hinzufügen müssen.

RiggsFolly
quelle
Ja! Das funktioniert bei mir. PHP.ini ist besser mit PHP.exe im selben Ordner, so dass Web und CLI PHP auf dieselbe PHP.ini verweisen können.
Scott Chu
@ScottChu Nicht wirklich, es handelt sich um zwei verschiedene Umgebungen, und im wirklichen Leben möchten Sie oft unterschiedliche Konfigurationen für beide.
RiggsFolly
4

Laut Dokumentation:

Die Konfigurationsdatei (php.ini) wird beim Start von PHP gelesen. Bei den Servermodulversionen von PHP geschieht dies nur einmal, wenn der Webserver gestartet wird. Bei den CGI- und CLI-Versionen geschieht dies bei jedem Aufruf.

php.ini wird an folgenden Orten gesucht (in der Reihenfolge):

  • SAPI-Modul-spezifischer Speicherort (PHPIniDir-Direktive in Apache 2, Befehlszeilenoption -c in CGI und CLI, Parameter php_ini in NSAPI, Umgebungsvariable PHP_INI_PATH in THTTPD)
  • Die PHPRC-Umgebungsvariable. Vor PHP 5.2.0 wurde dies nach dem unten genannten Registrierungsschlüssel überprüft.
  • Ab PHP 5.2.0 kann der Speicherort der Datei php.ini für verschiedene Versionen von PHP festgelegt werden. Die folgenden Registrierungsschlüssel werden der Reihe nach untersucht: [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xyz], [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xy] und [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ x], wobei x, y und z den PHP-Major bedeuten. Neben- und Release-Versionen. Wenn in einem dieser Schlüssel ein Wert für IniFilePath enthalten ist, wird der erste gefundene als Speicherort für die php.ini verwendet (nur Windows).
  • [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP], Wert von IniFilePath (nur Windows).
  • Aktuelles Arbeitsverzeichnis (außer CLI).
  • Das Verzeichnis des Webservers (für SAPI-Module) oder das Verzeichnis von PHP (ansonsten in Windows).
  • Windows-Verzeichnis (C: \ windows oder C: \ winnt) (für Windows) oder die Kompilierungszeitoption --with-config-file-path.

Sie sollten entweder die PHPRCUmgebungsvariable oder den Registrierungsschlüssel ausprobieren [HKEY_LOCAL_MACHINE\SOFTWARE\PHP].

Cornelius
quelle
0

Ich habe alles ohne Erfolg versucht. Das Ändern der Apache httpd.conf, php.ini und mehrerer anderer Versuche führte immer zu einer geladenen Konfigurationsdatei - (keine). Schließlich habe ich alle Dateien aus dem PHP-Verzeichnis in das Verzeichnis C: \ Programme (x86) \ Apache Software Foundation \ Apache2.2 \ bin kopiert und alles begann zu funktionieren. Perfekt. Leider ist es nicht die perfekte Lösung, aber es hat funktioniert.

Gunther
quelle