Unter normalen Umständen kann die Seite von phpinfo() angezeigt werden. Beginnen wir mit den Problemen, die nach der Anzeige dieser Seite auftreten.
Überprüfen
Sie zunächst, ob der Pfad Ihrer php.ini korrekt
ist Datei, aber nach dem Neustart des Servers Warum funktioniert nichts?
A: Dieses Problem betrifft hauptsächlich die folgenden Situationen.
Der erste Grund ist, dass die vom System gelesene php.ini-Datei nicht mit der php.ini-Datei übereinstimmt, die Sie zu diesem Zeitpunkt geändert haben. Sie können den aktuellen PHP-Server-Lesungswert über die Option „Pfad der Konfigurationsdatei (php.ini)“ überprüfen phpinfo() Welche php.ini ist
2. Wenn Sie den Dateizugriffsort von php.ini ändern möchten, können Sie sich an der Suchreihenfolge von php.ini orientieren, wie unten gezeigt:
a) Der vom SAPI-Modul angegebene Speicherort (PHPIniDir-Direktive in Apache 2, Befehlszeilenoption -c in CGI und CLI, php_ini-Parameter in NSAPI, Umgebungsvariable PHP_INI_PATH in THTTPD)
b) HKEY_LOCAL_MACHINESOFTWAREPHPIniFilePath (Speicherort der Windows-Registrierung)
c) PHPRC-Umgebungsvariable d) Aktuelles Arbeitsverzeichnis (für CLI)
e) Das Webserververzeichnis (für SAPI-Modul) oder das Verzeichnis, in dem sich PHP befindet (andere Fälle unter Windows)
f) Windows-Verzeichnis (C:windows oder C:winnt) oder der Speicherort, der durch die Kompilierzeitoption --with-config-file-path 3 angegeben wird. Allgemeiner Ansatz: Durch Festlegen der PHPRC-Umgebungsvariablen
a) Vorgang: Klicken Sie mit der rechten Maustaste auf „Arbeitsplatz“ -> „Eigenschaften“ -> „Erweitert“ -> „Umgebungsvariablen“. b) Erstellen Sie unter „Systemvariablen“ eine neue Umgebungsvariable mit „Der Variablenname ist PHPRC und der Variablenwert ist der Dateipfad Ihrer php.ini-Datei.“ "
Der zweite Grund ist: PHP hat die entsprechende Erweiterungsbibliothek nicht gefunden. 1. Überprüfen Sie den Speicherort der von PHP gefundenen Erweiterungsbibliothek: Sie können ihn in der Option extension_dir von phpinfo() sehen. 2. Ändern Sie die Datei extension_dir in
php.ini Dritter Grund: Es gibt keinen vollständigen Neustart von IIS
1. Änderungen an php.ini müssen vollständig neu gestartet werden, damit sie wirksam werden, nicht nur die aktuelle Site.
2. Geben Sie cmd ein, stoppen Sie den Server: net stop iisadmin; starten Sie den Server: net start w3svc
F: Warum kann ich die MySql-Erweiterungsbibliothek in meinem PHP nicht aktivieren?
A: In PHP5.0 und höher ist MySQL nicht standardmäßig aktiviert, daher müssen wir es manuell aktivieren.
1. Um MySql in PHP auszuführen, müssen Sie die dynamische Linkbibliothek php_mysql.dll in php.ini aktivieren. Außerdem müssen Sie auf die MySQL-Client-Linkbibliothek zugreifen, d. h. auf die Datei libmysql.dll Die dynamische Linkbibliothek php_mysql.dll muss über die Verbindungsbibliothek im Windows-Systempfad abgelegt werden. Sie können libmysql.dll in das Verzeichnis system32 kopieren oder hinzufügen ein neuer Pfad zur Umgebungsvariablen PATH.
3. Empfohlener Ansatz: Legen Sie PATH fest, um zukünftige PHP-Upgrades zu erleichtern. Fügen Sie einfach den Ordner hinzu, in dem sich „libmysql.dll“ nach PATH in der Systemumgebungsvariablen befindet. Denken Sie daran, sie durch „;“ zu trennen. 4. [Fall] Kürzlich konnte der Server die MySql-Erweiterungsbibliothek nicht finden, was dazu führte, dass das Programm nicht ausgeführt werden konnte. Löschen Sie daher alle Dateien und konfigurieren Sie den PHP-Server neu. Aber am Ende konnte ich bei der Installation von MySql die MySql-Erweiterungsbibliothek nicht aktivieren.
Die in phpinfo() gefundenen Informationen lauten wie folgt:
PFAD:c:php
PHPRC:C:php
Erweiterungsverzeichnis:c:phpext
Darüber hinaus habe ich die Aktivierung anderer Bibliotheken wie msql, gd2, xml getestet und sie können in phpinfo () normal angezeigt werden, was beweist, dass PHP die dynamische Linkbibliothek php_mysql.dll finden kann und eine weitere Bedingung für den Betrieb von MySql ist Um den MySQL-Client abfragen zu können, ist die Datei libmysql.dll das Problem.
Ich suchte nach der Datei libmysql.dll auf dem Laufwerk C und stellte fest, dass sich eine Datei in den Ordnern system32 und php befand. Nachdem ich ein Backup erstellt hatte, versuchte ich, die Datei libmysql.dll in system32 zu löschen, und stellte fest, dass sie gesperrt war nicht gelöscht werden, aber es konnte umbenannt werden. Ich habe den Namen beiläufig geändert und IIS neu gestartet, und der Server lief normal.
Ein zusätzlicher Punkt: Wenn der Pfad der Konfigurationsdatei (php.ini) als C:Windows angezeigt wird
, bedeutet dies, dass die Datei php.ini nicht gelesen wurde.
Außerdem habe ich festgestellt, dass es bei der Verwendung von IIS zur Integration von PHP zwei Möglichkeiten gibt: ISAPI- und CGI-Modus.
In beiden Fällen können wir die PHPInfo-Seite sehen
, aber im ISAPI-Modus können die Umgebungsvariablen nicht gelesen werden, also die Umgebungsvariable PHPRC ist festgelegt. Der php.ini-Pfad kann nicht gefunden werden.
Verwenden Sie einfach CGI, sodass Sie nicht viele Dateien in die Systemdatei kopieren müssen.