Wo ist PHP.ini in Mac OS X Lion? Ich dachte, es wäre in / usr / local / php5 / lib


268

Ich wollte PHP direkt auf meinem Mac ausführen, nicht kommentierte httpd.conf, aktivierte Webfreigabe, installiertes MySQL usw. Ich kann meine PHP-Dateien nicht finden, vor allem PHP.ini.

Auf meinem alten Computer befand es sich in / usr / local / php5 / lib. Das Verzeichnis php5 existiert jedoch nicht in / usr / local.

Muss ich ein Paket bekommen oder suche ich an der falschen Stelle?

Ausführen von OS X 10.7.3, PHP 5.3.8, Apache / 2.2.21


9
Eine einfache Möglichkeit, den Speicherort zu finden, besteht darin, phpinfo () auszuführen.
Ralfe

10
Oderlocate php.ini
Pekka

12
@ralfe Es sollte hinzugefügt werden, dass Sie in phpinfo () oder php --ini(im Terminalfenster ausführen) nach der Einstellung 'Geladene Konfigurationsdatei' suchen müssen . Denn wenn es keine php.ini gibt, melden beide den Konfigurationsdateipfad als /etc(zumindest bei meiner OS X 10.8-Installation). Wenn keine Konfigurationsdatei geladen ist, sollten Sie die Antwort von Mac
Jason S

In / usr / local / php5 installiert der PHP-Installer von entropy.ch und liip.ch (ed) php. Es war noch nie der Ort der PHP-Installation von Apples.
Heiglandreas

8
Tun Sie diesphp -i | grep php.ini

Antworten:


396

Sie sollten es in / private / etc finden, wenn es existiert, sonst:

sudo cp /private/etc/php.ini.default /private/etc/php.ini

Okay, es gibt eine php.ini.default in / private / etc und ich überprüfe sie. aber eine idee warum habe ich meinen alten php5 ordner nicht in usr / local? Früher gab es dort eine Reihe von Dateien, einschließlich einer empfohlenen php.ini. Ist dies eine Änderung in einer neueren Version oder PHP5 oder Lion oder etwas anderem?
Orun

PHP5 ist in MacOS X seit 10.5 standardmäßig mit dem oben genannten Speicherort für die Datei php.ini enthalten. Wenn Sie es manuell installiert haben, sollte es während des Upgrades auf Lion nicht entfernt worden sein. seltsam ...
Mac

2
Die Datei php.ini.default auf meinem Lion-Computer stimmte nicht mit allen Standardeinstellungen überein, wenn keine php.ini vorhanden war. Insbesondere war short_tags Off, error_reporting, log_errors und einige kleinere Einstellungen waren unterschiedlich. Sie möchten Ihre Ausgabe php -ivor und nach dem Erstellen Ihrer php.ini vergleichen.
Spoulson

1
auf meinem Mac, hatte ich eine Datei auf dem /private/etc/php.ini aber php schien alle Änderungen zu ignorieren ich dort gemacht, fand sie den einen in /usr/local/php5/lib/php.ini stattdessen wurde mit
Kit Ramos

2
Diese Antwort zeigte mir die richtige Richtung. cp php.ini.default> Die Konfiguration von php.ini und CLI wurde zu /etc/php.ini. Überprüfen Sie php -i | grep php.ini after
bpile

406

Öffnen Sie Terminal.appden folgenden Befehl und führen Sie ihn aus, um die INI-Datei auf Ihrem Computer zu suchen :

php --ini

Wenn Sie eine Vorlage für Lion benötigen, versuchen Sie dies .


2
Ich habe momentan keine php.ini geladen. Grundsätzlich suche ich das Verzeichnis mit der "empfohlenen" php.ini Vorlage.
Orun

47

Im Terminal tun php -i | grep php.ini. Sollte dir ein paar Hinweise geben;)


26

Die Antworten von @Cronk und @Justin haben mich auf Mac OS X 10.9 Mavericks näher gebracht. Tatsächlich /etc/php.inifehlte auf meinem System die Datei vollständig, und erst als ich phpinfo()auf dem Webserver ausgeführt wurde, stellte ich fest, dass keine Konfigurationsdatei vorhanden war. Das Kopieren der Datei aus /etc/php.ini.defaultund das Hinzufügen des vollständig qualifizierten Pfads zur mcrypt.soBibliothek zur Konfigurationsdatei löste das Problem:

cp /etc/php.ini.default /etc/php.ini

Fügen /etc/php.iniSie dann die folgende Zeile hinzu (unter Verwendung des richtigen Pfads zu Ihrer mcrypt.soDatei):

extension="/usr/local/Cellar/php54-mcrypt/5.4.29/mcrypt.so"

Starten Sie dann Apache2 neu:

apachectl restart

omg, du bist mein Held !! Vielen Dank für die Idee, den vollständigen Pfad von mcrypt zu verwenden!
Hese

25

Wie bereits erwähnt, php --initeilt Ihnen der Befehl mit, wo PHP die Datei php.ini erwartet.

Für eine Standardinstallation wird wahrscheinlich gesucht /etc/php.ini

Wenn Sie Macports verwendet haben, sucht PHP möglicherweise nach/opt/local/etc/php5/php.ini


7
etc ist ein Link zu privat / etc: / etc -> privat / etc
pm_labs

21

Führen Sie eine phpinfo()beliebige Datei aus und Sie erfahren, wo sie sich befindet. Hier ist ein Screenshot.

Geben Sie hier die Bildbeschreibung ein


3
Dies ist der beste Weg, da Sie möglicherweise Kopien der php.ini in anderen "Standard" -Ordnern finden, aber auf diese Weise erfahren Sie, welche tatsächlich verwendet wird. Auf diese Weise vermeiden Sie Kopfkratzer und Frustrationen, die bei Ihnen auftreten Nehmen Sie eine Änderung vor, aber PHP scheint sich dieser Änderung überhaupt nicht bewusst zu sein.
Kit Ramos

Sie können die PHP-REPL auch in Ihrer Shell öffnen, indem php -aSie dort ausführen , wo Sie sie dann ausführen phpinfo();.
Metakermit

14

Ich habe mehr als eine Instanz von PHP ausgeführt, so dass die anderen Antworten für mich nicht funktionierten. Dies tat:

Erstellen Sie eine PHP-Datei und öffnen Sie die lokale URL in Ihrem Browser:

<?php phpinfo(); ?>

Der PHP.INI-Pfad wird oben aufgelistet.


3

Dies ist ein ziemlich alter Thread, aber ich möchte eine weitere Klarstellung hinzufügen.

Wenn Sie ein System mit mehreren PHP-Installationen haben (wie meines), können die Ergebnisse, die Sie mit den Befehlszeilentools erhalten, von denen abweichen, die tatsächlich vom Webserver verwendet werden. Wenn Sie daran interessiert sind, welches PHP vom Webserver verwendet wird, verwenden Sie nur die Informationen, die von einer Webseite gesammelt wurden, die die Funktion 'phpinfo ()' verwendet.

Auf meinem System waren die Versionen, die von den beiden verschiedenen Methoden gemeldet wurden, beispielsweise:

Befehlszeile: 5.3.26

Web: 5.3.13

Auch für den Dateipfad php.ini sah es anders aus:

Befehlszeile: /private/etc/php.ini

Web: /long/path/to/the/file/php.ini

Sie können alle möglichen php.ini-Dateien folgendermaßen finden:

find / -name php.ini 2> & 1 | grep -v "verweigert" | grep -v "Verzeichnis"

(Die Elemente '2> & 1' und 'grep' beschränken die Ausgabe des Befehls nur auf nützliche Informationen, dh entfernen Sie Fehlermeldungen.)

Auf meinem System habe ich 3 INI-Dateien gefunden. Da ich daran interessiert war, was der Webserver verwendete, wusste ich, dass ich den Pfad verwenden sollte, der von den Webseitenergebnissen zurückgegeben wurde. Ich habe meine Änderungen an der dort aufgelisteten Datei php.ini vorgenommen, Apache neu gestartet und die Webseite erneut ausgeführt. Dort wurden die neuen Änderungen angezeigt.

So starten Sie Apache neu:

sudo apachectl -k Neustart

- J.


1

Ich beginne mit der 'Hallo Welt!'. Sobald diese Anzeige in meinem Browser angezeigt wird, werfe ich sie ein phpinfo();und Sie können alle Dinge sehen. Sagt Ihnen, welche Konfigurationen geladen sind, alles.

<?php
   echo 'Hello World!';

   phpinfo();

0

Sie führen php_info () aus und sehen die folgende Zeile :)

Loaded Configuration File   /Applications/XAMPP/xamppfiles/etc/php.ini
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.