was bedeutet "(include_path = '.: / usr / share / pear: / usr / share / php')"?

9

Ich habe Dateistruktur auf EC2 wie: aber mit einigen Dateireferenzierungsproblemen konfrontiert.

%Vor%

Ich habe versucht, Dateireferenzierung als:

%Vor%

aber cron läuft nicht.Es gibt einen Fehler in der Mail als

%Vor%     
ketul shah 08.08.2013, 06:17
quelle

6 Antworten

7

Wenn Sie sich die PHP-Konstante PATH_SEPARATOR ansehen, sehen Sie, dass sie ":" für Sie ist .

Wenn Sie die Zeichenkette ".: / usr / share / pear: / usr / share / php" mit diesem Zeichen zerlegen, erhalten Sie 3 Teile

  • . (dies ist das aktuelle Verzeichnis, in dem sich Ihr Code befindet)
  • / usr / teilen / Birne
  • / usr / teilen / ph

Alle Versuche, () / require () -Dinge einzuschließen, sehen in diesen Verzeichnissen in dieser Reihenfolge aus.

Es zeigt Ihnen, dass in der Fehlermeldung Sie wissen lassen, wo es die Datei NICHT finden konnte, die Sie anfordern wollten ()

Für Ihre erste Anforderung, wenn diese in Ihrer index.php enthalten ist, brauchen Sie nicht die Dir-Sachen, tun Sie einfach:

%Vor%     
Uberfuzzy 08.08.2013 06:38
quelle
5

Lösung des Problems

wie von Uberfuzzy [echte Ursache des Problems] erwähnt

Wenn Sie sich die PHP-Konstante [PATH_SEPARATOR] [1] ansehen, sehen Sie, dass sie für Sie ":" ist.

Wenn Sie die Zeichenfolge ".: / usr / share / pear: / usr / share / php" mit diesem Zeichen zerlegen, erhalten Sie 3 Teile

  • . (dies ist das aktuelle Verzeichnis, in dem sich Ihr Code befindet)
  • / usr / teilen / Birne
  • / usr / teilen / ph

Alle Versuche, () / require () -Dinge einzuschließen, sehen in diesen Verzeichnissen in dieser Reihenfolge aus.

Es zeigt Ihnen, dass in der Fehlermeldung Sie wissen lassen, wo es die Datei NICHT finden konnte, die Sie anfordern wollten ()

Das war die Ursache für Fehler.

Jetzt zur Lösung kommen

  1. Schritt 1 : Finden Sie Ihre php.ini-Datei mit dem Befehl php --ini (in meinem Fall: /etc/php5/cli/php.ini )
  2. Schritt 2 : Finde include_path in vi mit esc und drücke dann /include_path dann enter
  3. Schritt 3 : Kommentieren Sie die Zeile, wenn sie kommentiert wurde und fügen Sie Ihr Serververzeichnis hinzu. Ihr Pfad sollte wie folgt aussehen: include_path = ".:/usr/share/php:/var/www/<directory>/"
  4. Schritt 4: Neustart von Apache sudo service apache2 restart

Das ist es. Hoffe es hilft.

    
Abhishek Goel 07.12.2014 06:27
quelle
1

Tatsächlich besteht die Lösung darin, die php.ini-Datei zu öffnen, die Zeile include_path zu bearbeiten und ändere es entweder komplett in

%Vor%

oder hängen Sie das

an %Vor%

zum aktuellen Wert von include_path.

Es wird weiter erklärt in: Ссылка

    
Ivan Aranibar 30.07.2014 10:41
quelle
1

Ich hatte ein ähnliches Problem. Nur um jemandem mit dem gleichen Problem zu helfen:

Mein Fehler war das Benutzerdateiattribut für die Dateien in / var / www. Nach dem Wechsel zurück zum Benutzer "www-data" war das Problem weg.

    
Gaston 13.07.2015 10:57
quelle
0

Das sind nur die Verzeichnisse, in denen Sie sehen, wo PHP nach Ihrer Datei gesucht hat. Stellen Sie sicher, dass cron1.php existiert, wo Sie denken, dass es tut. Und stellen Sie sicher, dass Sie wissen, wo dirname(__FILE__) und $_SERVER['DOCUMENT_ROOT'] zeigen, wo Sie erwarten würden.

Dieser Wert kann in Ihrer php.ini Datei angepasst werden.

    
castis 08.08.2013 06:18
quelle
0

Ich hatte den gleichen Fehler beim Einbinden der Datei aus dem root meines Projekts in codeigniter . Ich habe das in common.php meines Projekts verwendet.

%Vor%

Ich habe es in

geändert %Vor%

Geht jetzt gut.

    
Bugfixer 07.11.2015 05:54
quelle

Tags und Links