Gdzie jest PHP.ini w Mac OS X Lion? Myślałem, że to jest w / usr / local / php5 / lib

268

Chciałem uruchomić trochę PHP bezpośrednio na moim Macu, bez komentarza httpd.conf, aktywowane udostępnianie stron internetowych, zainstalowany MySQL itp. Nie mogę znaleźć moich plików PHP, co najważniejsze, PHP.ini.

Na mojej starej maszynie znajdował się w / usr / local / php5 / lib Ale katalog php5 nie istnieje w / usr / local ..

Czy muszę dostać paczkę, czy szukam w niewłaściwym miejscu?

Z systemem OS X 10.7.3, PHP 5.3.8, Apache / 2.2.21

Orun
źródło
9
Łatwym sposobem na znalezienie lokalizacji jest uruchomienie phpinfo ();
ralfe
10
Lublocate php.ini
Pekka
12
@ralfe Należy dodać, że musisz poszukać ustawienia „Loaded Configuration File” w phpinfo () lub php --ini(uruchom w oknie terminala). Ponieważ jeśli nie ma php.ini, oba z nich zgłaszają ścieżkę pliku konfiguracyjnego jako /etc(przynajmniej w mojej instalacji OS X 10.8). Jeśli nie zostanie załadowany żaden plik konfiguracyjny, powinieneś spróbować odpowiedzieć przez mac
Jason S
/ usr / local / php5 to gdzie instalator php z entropy.ch i liip.ch install (ed) php. To nigdy nie była lokalizacja instalacji php firmy Apple.
heiglandreas
8
Zrób tophp -i | grep php.ini

Odpowiedzi:

396

Powinieneś go znaleźć w / private / etc, jeśli istnieje, w przeciwnym razie:

sudo cp /private/etc/php.ini.default /private/etc/php.ini
prochowiec
źródło
Ok, w / private / etc jest php.ini.default i sprawdzam to. ale jakiś pomysł, dlaczego nie mam mojego starego folderu php5 w usr / local? Kiedyś było tam mnóstwo plików, w tym zalecany php.ini. Czy to zmiana w nowszej wersji, PHP5, Lion czy coś innego?
Orun
PHP5 jest domyślnie dołączony do MacOS X od wersji 10.5 z powyższą lokalizacją pliku php.ini. Jeśli zainstalowałeś go ręcznie, nie powinien był zostać usunięty podczas aktualizacji do Lion; dziwne ...
Mac
2
Plik php.ini.default na moim komputerze Lion nie był zgodny ze wszystkimi ustawieniami domyślnymi, gdy nie było php.ini. Zwłaszcza krótkie_tagi były wyłączone, raportowanie błędów, błędy_logu i niektóre drobne ustawienia różniły się. Będziesz chciał porównać wyniki php -iprzed i po utworzeniu pliku php.ini.
spoulson
1
na moim komputerze Mac miałem plik na /private/etc/php.ini, ale php wydawał się ignorować wszelkie zmiany, które tam wprowadziłem, stwierdził, że używa tego w /usr/local/php5/lib/php.ini zamiast tego
Kit Ramos,
2
Ta odpowiedź wskazała mi właściwy kierunek. cp php.ini.default> php.ini i załadowana konfiguracja CLI zmieniły się w /etc/php.ini. Sprawdź php -i | grep php.ini after
bpile
407

Aby zlokalizować plik ini na komputerze, otwórz Terminal.appi uruchom następujące polecenie:

php --ini

Jeśli potrzebujesz szablonu dla Lion, spróbuj tego .

rkmax
źródło
2
W tej chwili nie mam załadowanego pliku php.ini. Zasadniczo szukam katalogu z „zalecanym” szablonem php.ini.
Orun
47

W terminalu zrobić php -i | grep php.ini. Powinien dać ci wskazówki;)

SpoBo
źródło
26

Odpowiedzi @Cronk i @Justin zbliżyły mnie do systemu Mac OS X 10.9 Mavericks. W rzeczywistości w moim systemie /etc/php.inibrakowało całkowicie pliku i dopiero po uruchomieniu phpinfo()na serwerze zauważyłem, że nie ma pliku konfiguracyjnego. Skopiowanie pliku /etc/php.ini.defaulti dodanie pełnej ścieżki do mcrypt.sobiblioteki do pliku konfiguracyjnego rozwiązało problem:

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

Następnie /etc/php.inidodaj następujący wiersz (używając poprawnej ścieżki do mcrypt.sopliku):

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

Następnie uruchom ponownie Apache2:

apachectl restart
Peter Gluck
źródło
omg, jesteś moim bohaterem !! dziękuję za pomysł użycia pełnej ścieżki mcrypt!
Hese
25

Jak już wspomniano, php --inipolecenie powie ci, gdzie PHP spodziewa się znaleźć plik php.ini.

Do standardowej instalacji prawdopodobnie będzie szukał /etc/php.ini

Jeśli korzystałeś z Macports, PHP może szukać/opt/local/etc/php5/php.ini

Joat
źródło
7
etc to link do prywatnego / etc: / etc -> private / etc
pm_labs
21

Uruchom phpinfo()z dowolnego pliku i powie ci, gdzie on jest. Oto zrzut ekranu.

wprowadź opis zdjęcia tutaj

Robert Rocha
źródło
3
jest to najlepszy sposób, ponieważ możesz znaleźć kopie pliku php.ini w innych „domyślnych” folderach, ale w ten sposób dowiesz się, z którego faktycznie korzysta, dzięki czemu unikniesz drapania głowy i frustracji, która pojawia się, gdy dokonać zmiany, ale php wydaje się być całkowicie nieświadomy tej zmiany.
Kit Ramos,
Możesz także otworzyć php REPL w swojej powłoce, uruchamiając php -atam, gdzie następnie phpinfo();.
metakermit
14

Mam uruchomioną instancję PHP więcej niż jeden raz, więc inne odpowiedzi nie działały dla mnie. To spowodowało:

Utwórz plik PHP i otwórz jego lokalny adres URL w przeglądarce:

<?php phpinfo(); ?>

Ścieżka PHP.INI zostanie wyświetlona blisko góry.

Justin
źródło
3

To raczej stary wątek, ale chciałbym dodać dodatkowe wyjaśnienie.

Jeśli masz system, który ma wiele instalacji PHP (tak jak moja), wyniki uzyskiwane przy użyciu narzędzi wiersza poleceń MOGĄ BYĆ inne niż te, które są faktycznie używane przez serwer WWW. Jeśli interesuje Cię, z jakiego PHP korzysta serwer WWW, korzystaj tylko z informacji zebranych ze strony internetowej korzystającej z funkcji „phpinfo ()”.

Na przykład w moim systemie wersjami zgłoszonymi za pomocą dwóch różnych metod były:

Wiersz polecenia: 5.3.26

Sieć: 5.3.13

W przypadku ścieżki do pliku php.ini też było inaczej:

Wiersz polecenia: /private/etc/php.ini

Sieć: /long/path/to/the/file/php.ini

Możesz znaleźć wszystkie możliwe pliki php.ini, używając tego:

znajdź / -name php.ini 2> i 1 | grep -v "odmowa" | grep -v „katalog”

(elementy „2> & 1” i „grep” ograniczają wyjście polecenia do przydatnych informacji, tj. pozbywają się komunikatów o błędach)

W moim systemie znalazłem 3 pliki INI. Ponieważ byłem zainteresowany tym, z czego korzysta serwer WWW, wiedziałem, że powinienem użyć ścieżki zwróconej z wyników strony internetowej. Dokonałem zmian w pliku php.ini, który był tam wymieniony, zrestartowałem apache i ponownie uruchomiłem stronę internetową; nowe zmiany zostały tam pokazane.

Aby ponownie uruchomić apache:

sudo apachectl -k restart

- J

Cronk
źródło
1

Zaczynam od „Hello World!”, Kiedy tylko wyświetlę to w przeglądarce, wrzucam phpinfo();tam i można zobaczyć wszystkie rzeczy. Mówi, które konfiguracje są załadowane, wszystko.

<?php
   echo 'Hello World!';

   phpinfo();
CenterOrbit
źródło
0

Uruchamiasz php_info () i widzisz poniżej linię :)

Loaded Configuration File   /Applications/XAMPP/xamppfiles/etc/php.ini
Quy Le
źródło