0

Ich habe zwei PHP-Versionen auf einem Windows Server - v5 und v7. Das Problem ist, dass PHP 7 die php.ini von PHP 5 zu verwenden versucht:Wie erzwinge PHP, um die richtige php.ini zu nehmen?

$ php -v 
PHP 7.0.2 (cli) (built: Jan 6 2016 12:59:59) (NTS) 
Copyright (c) 1997-2015 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies 
$ php --ini 
Configuration File (php.ini) Path: C:\Windows 
Loaded Configuration File:   D:\path\to\php5\php.ini 
Scan for additional .ini files in: (none) 
Additional .ini files parsed:  (none) 

Wie die richtigen php.ini für PHP 7 setzen?

+0

Zeigt 'echo% path%' 'D: \ pfad \ zu \ php5'? – AbraCadaver

+0

@AbraCadaver Es zeigt beides - den Pfad für PHP5 und den Pfad für PHP7: '... D: \ Pfad \ zu \ php7 \ ext \; D: \ Pfad \ zu \ php5 \ ext \; D: \ Pfad \ zu \ php7 \; D: \ Pfad \ zu \ php5 \; D: \ Pfad \ zu \ php5; ... '. – automatix

Antwort

1

Die folgende Handbuch Seite beschreibt, wie PHP seine Konfigurationsdatei in Windows findet:

http://php.net/manual/en/configuration.file.php

SAPI-Modul bestimmten Ort (PHPIniDir Direktive in Apache 2, -c Befehlszeilenoption in CGI und CLI, php_ini Parameter in NSAPI, PHP_INI_PATH Umgebungsvariable in THTTPD)

Die PHPRC Umgebung Variable. Vor PHP 5.2.0 wurde dies nach dem unten erwähnten Registrierungsschlüssel überprüft. Ab PHP 5.2.0 kann der Speicherort der php.ini-Datei für verschiedene PHP-Versionen festgelegt werden.

Die folgenden Registrierungsschlüssel werden in der Reihenfolge geprüft: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] und [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], wo x, y und z die PHP major, minor bedeuten und Release-Versionen. Wenn in einem dieser Schlüssel ein Wert für IniFilePath vorhanden ist, wird der zuerst gefundene als Speicherort der php.ini (nur Windows) verwendet.

[HKEY_LOCAL_MACHINE\SOFTWARE\PHP], Wert von IniFilePath (nur Windows).

Aktuelles Arbeitsverzeichnis (außer CLI).

Das Verzeichnis des Webservers (für SAPI-Module) oder Verzeichnis von PHP (sonst in Windows).

Windows-Verzeichnis (C:\windows oder C:\winnt) (für Windows) oder --with-config-file-path Kompilierung Option.

+0

Danke für den Hinweis! Ich habe meine Registrierung überprüft, aber dort gibt es keine Einträge für PHP. (Nur "PHP Manager", aber es ist etwas für IIS.) – automatix

+0

Ich habe gestern viele Dinge ausprobiert, um es zum Laufen zu bringen. Es hat mir geholfen, die 'PHPRC'-Umgebungsvariable auf' D: \ path \ to \ php7' zu setzen. Ich frage mich, warum die 'v5' trotzdem funktioniert. Aber wie auch immer, beide Versionen scheinen jetzt in Ordnung zu sein. – automatix

+0

Nun, wenn es jetzt "OK zu sein scheint", warum nicht deine eigene Frage beantworten? Genau * was, * endlich, hat den Trick gemacht? –