PHPIniDir unter Windows 7 gebrochen?

8

Ich hatte einen Server auf einem Windows XP-Rechner mit Apache2 mit PHP und MySQL. Ich habe kürzlich ein Upgrade auf Windows 7 durchgeführt und habe Schwierigkeiten, es zum Laufen zu bringen. Apache funktioniert einwandfrei und PHP funktioniert, aber ich kann es nicht mit einer php.ini -Datei arbeiten lassen.

Wenn ich PHPIniDir auf ein Verzeichnis mit einer php.ini -Datei setze, startet der Apache-Dienst NICHT.

Wenn ich PHPIniDir auf ein Verzeichnis mit NO php.ini file setze, startet der Apache-Dienst.

Wenn ich PHPIniDir weglasse, startet der Apache-Dienst nicht.

Hat jemand eine Lösung für dieses Problem gefunden? Danke!

BEARBEITEN:

PHPIniDir "C:\Windows" #works (keine php.ini -Datei)

PHPIniDir "C:\Program Files (x86)\php\" # funktioniert nicht (enthält php.ini file)

Ich aktiviere höchstens eins zu jeder gegebenen Zeit.

    
giroy 16.12.2009, 05:47
quelle

7 Antworten

5

Ich hatte das gleiche Problem .. Ich habe es behoben. Öffnen Sie die Datei php.ini mit einem Notizblock oder einem Texteditor. Deaktivieren Sie alle Erweiterungen in der Datei php.ini. Kommentiere Erweiterungen um eins und finde heraus, welche Erweiterung das Problem verursacht.

    
Murat 01.06.2010, 07:25
quelle
10

lösche den letzten Schrägstrich:

%Vor%     
ar2r 09.02.2012 16:19
quelle
3

Dafür gibt es mehrere Gründe:

  • Alte Version von Apache und / oder PHP. Apache 2.2.13 / 2.2.14 scheint in Windows 7 genauso gut zu funktionieren wie PHP 5.2.11 / 5.3.
  • Einige der PHP-Erweiterungen können den Apache-Startfehler verursachen. Sie können entweder die Log-Dateien von Apache überprüfen oder 'display_startup_errors' in der php.ini aktivieren (wenn dies aktiviert ist, können Sie ApacheMonitor.exe verwenden, um den Apache-Dienst zu starten oder zu stoppen. Wenn ein Fehler auftritt, wird eine Nachricht angezeigt). Sie können auch alle PHP-Erweiterungen deaktivieren, und wenn es hilft, starten Sie sie nacheinander und sehen Sie, welche das Problem verursacht.
  • Imho, stellen Sie sicher, dass Sie ein Archiv von PHP heruntergeladen haben und nicht das automatische Installationsprogramm verwendet haben. Nach meiner Erfahrung haben Installateure nie gut funktioniert. Sie können immer zwei PHP-bezogene Anweisungen (PHPIniDir und LoadModule) in die Konfigurationsdatei von Apache einfügen und sicherstellen, dass PHP dir im Windows-Pfad enthalten ist. Oh, und ein Dienstfehler kann auch durch die php2apache library verursacht werden.
  • Überprüfen Sie, ob Apache / PHP / MySQL-Verzeichnisse im Windows-Pfad enthalten sind. Hier ist ein nützliches Tool: Redmond Path . Sie können dem Pfad die folgenden Verzeichnisse hinzufügen: Apache / bin dir, PHP dir, MySQL / bin dir. Es könnte helfen.
Alex Bernatskyi 16.12.2009 08:01
quelle
2

Ich hatte das gleiche Problem, Sie müssen die vollständige URL für das PHP-Modul in httpd.conf angeben.

Alle Anleitungen, die ich gefunden habe, sagen Folgendes:

%Vor%

Wenn Sie tatsächlich brauchen:

%Vor%     
Tungsten Carbide Rings 01.03.2011 10:41
quelle
1

Ich konnte nie über diese Linie hinauskommen:

  

LoadModule php5_module "C: / Programme (x86) / PHP / php5apache2_2.dll"

Schließlich habe ich in Verzweiflung einen neuen Ordner C: / PHP erstellt, diese DLL in C: / PHP kopiert und die Zeile in

geändert
  

LoadModule php5_module "C: / PHP / php5apache2_2.dll"

Und zum ersten Mal hat alles funktioniert! Vielleicht mag es einfach keine Leerzeichen im Pfad. Oder vielleicht mag es keine langen Pfadnamen. Ich weiß nicht. Es ist wahrscheinlich, dass diese Korrektur für eine bestimmte Version von Apache und PHP spezifisch ist, aber nachdem ich ungefähr 20 Stunden mit diesem Problem verbracht habe, bin ich so trüb, dass ich nicht weiß, was diese Abhängigkeit sein könnte.

    
Dave Grossman 24.08.2012 04:04
quelle
1

Ich hatte dieses Problem auch, aber ich konnte Apache wieder arbeiten lassen, indem ich alle Erweiterungen in der php.ini-Datei deaktivierte (ich hatte die ganze DLL im ext-Ordner, aber sie waren in der php.ini deaktiviert) Da ich alle php-Erweiterungen verwenden wollte, versuchte ich, nacheinander zu deaktivieren, welche Apache-Rechner abstürzten. Ich habe auch PHP im C: installiert, um "Leerzeichen / lange Pfade" zu vermeiden. Am Ende ist hier, wie meine Apache httpd.conf-Datei ist, in dem Teil von PHP:

%Vor%

Auch die Erweiterungen, die den Apache abstürzten, waren:

  • php_oci8.dll
  • php_pdo_oci.dll
  • php_pdo_oci8.dll
  • php_pdo_sqlite_external.dll
  • php_pspell.dll
  • php_sybase_ct.dll

Ich weiß wirklich nicht, was mit ihnen los ist.

Bitte beachten Sie, dass ich PHP mit dem msi-Installer (php-5.2.17-Win32-VC6-x86.msi) installiert habe und ALLE Erweiterungen installiert habe. Ich benutze auch Windows 7.

    
priki 25.01.2013 18:39
quelle
0

Alternativ zur @ ar2r-Antwort zum Löschen des letzten umgekehrten Schrägstrichs können Sie den Pfad mit (vorwärts) Schrägstrichen schreiben und es würde sogar mit einem Schrägstrich am Ende funktionieren. Aus irgendeinem Grund, das umgekehrter Schrägstrich bei verwendet, funktioniert das Ende eines Pfades in neueren Versionen von Windows nicht:

%Vor%

Beachten Sie, dass das Mischen von Vorwärts- und umgekehrten Schrägstrichen so lange funktioniert, wie der nachgestellte Schrägstrich nicht ein Backslash ist.

Dies gilt auch für andere Direktiven. Ich habe dieses Verhalten bei der Konfiguration von Alias für die Symbole des Verzeichnisindex bemerkt.

    
Alberto Martinez 06.12.2017 17:40
quelle

Tags und Links