Muszę włączyć pdo_mysql w moim środowisku EasyPhp, więc poszedłem do pliku php.ini i odkomentowałem następujący wiersz:
extension=php_pdo_mysql.dll
Niestety nadal mam ten sam problem. Korzystam z CLI, więc przypuszczam, że muszę zlokalizować plik php.ini używany przez CLI. Jak mogę to znaleźć?
Odpowiedzi:
Po prostu uruchom
php --ini
i poszukajLoaded Configuration File
w danych wyjściowych lokalizacjiphp.ini
używanej przez Twój CLIźródło
sudo find / -iname php.ini
i/etc/php/7.0/apache2/php.ini
znajduje właściwe miejsce właściwego pliku konfiguracyjnego php.ini mojego komputera, którego nie znalezionophp --ini
lubphp -i | grep php.ini
(oba znaleziono/etc/php/7.0/cli/php.ini
)Możesz uzyskać pełny,
phpinfo()
używając:I tam jest
php.ini
używany plik:W systemie Windows użyj
find
zamiast tego:źródło
Configuration File
Linia phpinfo () pokazuje ostatnie miejsce gdzie php szukał pliku ini. Może to być albo miejsce, w którym znalazł taki plik, albo ostatnia opcja, którą jest% SYSTEMROOT% w systemie Windows.php -i | find "Configuration file"
powinien działać w systemie Windows. Zdecydowanie nie tak potężny jak grep, alefind
wykona podstawowe wyszukiwanie ciągów. Oczywiście, jeśli php -i zrzuci swoje wyjście do stderr, prawdopodobnie jesteś SOL.find
rozróżnia małe i wielkie litery, więc musi być doskonały (php -i | find "Configuration File"
) lub rozróżniać małe i wielkie litery (php -i | find /i "Configuration file"
- zwróć uwagę na/i
flagę).php --ini
jako alternatywy; dostępne od PHP 5.2.3 :)Możesz użyć get_cfg_var ('cfg_file_path') do tego:
W przeciwieństwie do phpinfo () pokaże, czy w ogóle nie znalazł / nie użył php.ini.Możesz po prostu ustawić lokalizację pliku php.ini . Używasz wersji wiersza polecenia, więc używając
-c
parametru możesz określić lokalizację, npźródło
Uruchom
php --ini
w swoim terminalu, otrzymasz wszystkie szczegóły dotyczące plików INIAby uzyskać więcej, użyj polecenia pomocy
php --help
Wyświetli wszystkie możliwe opcje.źródło
Czasami rzeczy nie zawsze są takie, jakie się wydają, jeśli chodzi o pliki konfiguracyjne w ogóle. Więc tutaj stosuję moje zwykłe metody badania, które pliki są otwierane przez proces.
Używam bardzo wydajnego i przydatnego programu wiersza polecenia o nazwie strace, aby pokazać mi, co naprawdę dzieje się za moimi plecami!
Strace wykopuje wywołania jądra (systemowe), które wykonuje twój program i zrzuca dane wyjściowe do pliku określonego przez -o
Łatwo jest używać grep do wyszukiwania wystąpień php.ini w tym dzienniku. To dość oczywiste, patrząc na typową odpowiedź, aby zobaczyć, co się dzieje.
źródło
php -i
dało mi nieprawidłowe wyniki, ale ten jest w porządku. Dziękuję Ci!Jeśli chcesz załadować wszystkie pliki konfiguracyjne, powie ci to:
Niektóre systemy ładują rzeczy z więcej niż jednego pliku ini. W moim systemie Ubuntu wygląda to tak:
źródło
W systemie OSX Mavericks uruchomione:
Zwrócony:
W
/etc/
katalogu było:(a także
php-fpm.conf.default
)Udało mi się skopiować
php.ini.default
dophp.ini
dodajdate.timezone = "US/Central"
do góry (po prawej poniżej[php]
), a problem został rozwiązany.(Przynajmniej komunikat o błędzie zniknął.)
źródło
Jeśli chcesz przekazać to do innej aplikacji, możesz zrobić coś takiego:
zwraca tylko ścieżkę.
php -c $(php --ini | grep Loaded | cut -d" " -f12)
przejdzie w pliku konfiguracyjnym (przydatne dlafpm
)źródło
Z tego, co pamiętam, kiedy korzystałem z EasyPHP, plik php.ini znajduje się w
C:\Windows\
lubC:\Windows\System32
źródło
Zrobić
Spowoduje to wyświetlenie wszystkich nazwanych plików
php.ini
.Dowiedz się, którego zazwyczaj używasz
apache2/php.ini
źródło
W swoim pliku php.ini ustaw katalog rozszerzenia, np .:
Zobaczysz w tobie folder PHP, jest folder ext ze wszystkimi bibliotekami DLL i rozszerzeniami.
źródło
Zapisz dane wyjściowe phpinfo CLI w pliku lokalnym:
źródło
W kontenerze dokowanym phpmyadmin / phpmyadmin nie ma pliku php.ini. Ale są dwa pliki: php.ini-debug i php.ini-production
Aby rozwiązać problem, po prostu zmień nazwę jednego z plików na php.ini i zrestartuj kontener dokera.
źródło
W wierszu poleceń nie ma pliku php.ini. Musisz skopiować plik z
...EasyPHP-<<version>>\apache\php.ini
do...EasyPHP-<<version>>\php\php.ini
niż edytować plik w katalogu phpOdniesienie:
źródło