jak zmienić ścieżkę okna php ini

12

Pobrałem php, dodałem go do mojej ścieżki i próbuję włączyć openssl

php --ini mówi mi, że plik konfiguracyjny to c: \ windows, którego tam nie było, nie chcę kopiować php do c / windows.

Jak mogę to zmienić, aby wskazywało na folder php?

Gość
źródło

Odpowiedzi:

10

Nie musisz nic robić z PHP gdziekolwiek w pobliżu c:\windowsfolderu.

Jeśli to zrobisz, będzie to tylko bałagan podczas aktualizacji PHP do nowej wersji.

Jeśli wykonasz dysk CD do folderu, w którym zainstalowany jest PHP i zrobisz php --inito, odczyta plik php.ini z folderu, w którym się znajdujesz.

D:\wamp\bin\php\php5.5.12>php --ini
Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File:         D:\wamp\bin\php\php5.5.12\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

Myślę, że złym pomysłem jest również umieszczenie folderu instalacyjnego PHP w PATH systemu Windows.

Wystarczy mały plik wsadowy, który skonfiguruje ŚCIEŻKĘ na czas korzystania z okna poleceń i umieści ją w jednym z folderów, który jest już w ŚCIEŻCE okna.

Zakładając, że zainstalowałeś w C:\phptym PHP, to plik wsadowy

phppath.cmd

PATH=%PATH%;C:\php
php --ini
php -v

Następnie wystarczy uruchomić ten plik wsadowy za każdym razem, gdy otwierasz okno poleceń i chcesz uruchomić kod PHP, a środowisko zostanie skonfigurowane. Możesz również dodać inne rzeczy do tego pliku wsadowego, gdy potrzebujesz innych rzeczy dodanych do środowiska, takich jak Composer itp.

RiggsFolly
źródło
Tak! To działa dla mnie. PHP.ini jest lepszy z PHP.exe w tym samym folderze, dzięki czemu Web i CLI PHP mogą odnosić się do tego samego PHP.ini.
Scott Chu,
@ScottChu Nie do końca, są to 2 różne środowiska i w rzeczywistości często potrzebujesz różnych konfiguracji dla obu.
RiggsFolly
4

Według dokumentacji:

Plik konfiguracyjny (php.ini) jest odczytywany podczas uruchamiania PHP. W przypadku wersji serwerowych PHP, dzieje się to tylko raz, gdy serwer WWW jest uruchamiany. W przypadku wersji CGI i CLI dzieje się to przy każdym wywołaniu.

Plik php.ini jest wyszukiwany w następujących lokalizacjach (w kolejności):

  • Lokalizacja specyficzna dla modułu SAPI (dyrektywa PHPIniDir w Apache 2, -c opcja wiersza poleceń w CGI i CLI, parametr php_ini w NSAPI, zmienna środowiskowa PHP_INI_PATH w THTTPD)
  • Zmienna środowiskowa PHPRC. Przed PHP 5.2.0 było to sprawdzane po kluczu rejestru wymienionym poniżej.
  • Począwszy od PHP 5.2.0, lokalizację pliku php.ini można ustawić dla różnych wersji PHP. Następujące klucze rejestru są sprawdzane w kolejności: [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xyz], [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xy] i [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ x], gdzie x, y i z oznaczają PHP, wersje pomniejsze i wydania. Jeśli w dowolnym z tych kluczy znajduje się wartość IniFilePath, pierwszy znaleziony zostanie użyty jako lokalizacja pliku php.ini (tylko Windows).
  • [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP], wartość IniFilePath (tylko Windows).
  • Aktualny katalog roboczy (oprócz CLI).
  • Katalog serwera WWW (dla modułów SAPI) lub katalog PHP (w innym przypadku w systemie Windows).
  • Katalog Windows (C: \ windows lub C: \ winnt) (dla Windows) lub opcja czasu kompilacji --with-config-file-path.

Powinieneś wypróbować PHPRCzmienną środowiskową lub klucz rejestru [HKEY_LOCAL_MACHINE\SOFTWARE\PHP].

Cornelius
źródło
0

Próbowałem wszystkiego bez powodzenia. zmienił apache httpd.conf, php.ini i kilka innych prób, zawsze skutkowało załadowaniem pliku konfiguracji - (brak). Na koniec skopiowałem wszystkie pliki z katalogu php do katalogu C: \ Program Files (x86) \ Apache Software Foundation \ Apache2.2 \ bin i wszystko zaczęło działać. Doskonale. Niestety nie jest to idealne rozwiązanie, ale zadziałało.

Gunther
źródło