2011-02-04 13 views
5

Mam Linux Ubuntu 10.10 i kiedy uruchomić poniżej w terminalu:Multi pliki php.ini w moim systemie

php -i | grep php.ini 

mam załadowany Configuration File =>/etc/php5/cli/php. ini

Chociaż jeśli używam phpinfo() w przeglądarce będzie:

Loaded Configuration File /etc/php5/apache2/php.ini

Co oznacza, że ​​istnieją różne pliki ini zgodnie z php_sapi_name !!

pytanie brzmi: jak mogę ustawić to samo php.ini dla wszystkich programów klienckich (przeglądarka, cli itp.) Bez kopiowania tego samego pliku do różnych lokalizacji !?

+0

Zostaw oddzielnie indywidualne konfiguracje SAPI (ze względu na różnorodne czasy działania, które nie powinny być związek ze względów bezpieczeństwa i wydajności). Jeśli chcesz ustawić przesłonięcia, utwórz niestandardowy skrypt jako '/ etc/php5/conf.d/your.ini'. – mario

Odpowiedz

1

czasami można mieć więcej niż jeden plik php.ini do zarządzania różnych interfejsów lub stron internetowych na przykład można mieć różne php.ini dla każdej stronie masz gospodarzem na swoim serwerze, ustawiając PHPINIDir w wirtualnego hosta jak poniżej

 
<VirtualHost 10.24.11.2:80> 
ServerName foo.com 
ServerAlias www.foo.com 
PHPINIDir /var/www/html/foo 
</VirtualHost> 

jednak, jeśli chcesz, aby tylko jeden php.ini dla wszystkich interfejsów, jedynym sposobem jest użycie dowiązania jak poniżej:
ln -s /etc/php5/cli/php.ini/etc/php5 /apache2/php.ini

1

Możesz użyć dowiązań symbolicznych.

ln -s /etc/php5/cli/php.ini /etc/php5/apache2/php.ini 
2

Nie sądzę ustawieniu wszystkich różnych kontekstów php używać tego samego config to dobry pomysł na pierwszym miejscu, ale jeśli naprawdę chcesz, możesz po prostu mieć jeden php.ini i wszystkich innych być symbolicznymi linkami.

Nie sądzę, że istnieje sposób na zmianę zachowania php, który plik będzie zawierał, bez konieczności jego rekompilacji.

1

Co powiesz na zastąpienie jednego z nich dowiązaniem symbolicznym?

1

Można użyć dowiązań symbolicznych (Apache stosuje tę technikę w przypadku witryn dostępnych i obsługujących witryny). Więc przejdź do

cd /etc/php5/ 

i skopiować żądany plik php.ini tam, a następnie przejdź do CLI/i apache2/- wyjąć php.ini (mV lub rm go), a następnie uruchomić

cd /etc/php5/apache2 
mv php.ini php.ini.bkp 
ln -s php.ini ../php.ini 

To utworzy dowiązanie symboliczne do php.ini w twoich/etc/php5/apache2/i/etc/php5/cli/folders.

Uwaga: Dobrą praktyką jest mieć diff. Pliki php.ini, dla cli jest kilka rozszerzeń, które nie dają się załadować i wiele więcej. :)

+0

Och, nadal nie zwracam uwagi na ten mały pomarańczowy nagłówek mówiący mi rzeczy, podczas gdy ja zapisuję moja odpowiedź. – ludesign