Php.ini'yi nerede bulabilirim?


881

Birkaç yıl önce Apache 2.2x ve PHP 5.3.1'i bir Linux sunucusuna kurdum. .Tar.gz'yi kullandım ve talimatlara göre oluşturdum (rpms ve neye sahip olduğunuz yerine). Ve her şey yolundaydı.

Bugün bir PHP kütüphanesi gibi görünen bu yüklemeniz gerekiyor . Yükleme yapmak için tüm adımları tamamladım ve ibm_db2.so dosyasını buldum$PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so

Büyük yakalamak php.ini yapılandırmak için son adımdır ama benim sistemde php.ini YOK var. Korku dehşeti. Tabii ki birileri tamir etmek için bir GUI kullanabilirsiniz böylece kullanmak istiyorum bu yeni-fangled ibm_db2 thingamagic dışında PHP iyi çalışıyor DB2. (Başarısız olan ve ibm_db2 işlevlerinin kullanılabilir olmadığını gösteren küçük bir php komut dosyası denedim).

PHP ile birkaç yılda bir uğraşmak zorundayım, bu yüzden lütfen web tabanlı GUI erişimini etkinleştirmek için neler yapabileceğim konusunda çok temel bir düzeyde beni aydınlatın DB2.


120
Zamanın% 90'ı /etc/php5/apache2/php.ini
Adam


6
Sorunun önceliği yanlış olduğu için aşağı oylama. "Sistemimde NO php.ini yok " Hayır, onu bulamadınız. Bunlardan bahsetmişken locate php.ini, dosyanın sisteminizde nerede olduğunu sadece anlar size söyleyecektir.
Yörüngedeki Hafiflik Yarışları

1
@Adam: o PHP5 değil sürece;)
Hat

2
@line evet yorumum artık çok alakalı değil, ancak upvotes miktarını fark etmedi!
Adam

Yanıtlar:


466

Bunu bulmanın en iyi yolu: bir php dosyası oluşturmak ve aşağıdaki kodu eklemek:

<?php phpinfo(); ?>

ve tarayıcıda açın, aslında okunmakta olan dosyayı gösterecektir!

OP tarafından yapılan güncellemeler:

  1. Önceden kabul edilen cevabın sizin için daha hızlı ve daha uygun olması muhtemeldir, ancak her zaman doğru değildir. Bu cevaba ilişkin yorumları görün.
  2. Lütfen bu cevapta<?php echo php_ini_loaded_file(); ?> bahsedilen daha uygun alternatifi de not edin .

11
Bu kabul edilen cevap olmalı. CLI yüklüyse ve çalışan bir apache varsa kendi ini dosyasına sahip olabilir (sistemimin yaptığı gibi). Kabul edilen yanıtı kullanmak CLI'nin apache yerine kullanmakta olduğunu döndürür.
Dan

2
@Dan Evet, haklısın. Bu soruya kabul edilen cevabı değiştiriyorum çünkü bahsettiğiniz problem uygulamada (daha önce kabul edilen cevabı yorumlayan) biriyle de karşılaştı. (Bu arada, eğer soruyu
büyücü

2
Bu benim kurulumumda çalışmıyor. Tipo? Olmalı<?php phpinfo(); ?>
svenyonson

9
php -r \@phpinfo\(\)\;php -r \@phpinfo\(\)\; | grep 'PHP Version' -m 1belirli bilgileri çekmek için çalışıyor
jgraup

@zylstra Deneyin:<?php echo php_ini_loaded_file(); ?>
Ateş Goral

834

Komut satırında şunları yürütün:

php --ini

Gibi bir şey alacaksınız:

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_sqlite.ini,
/etc/php5/cli/conf.d/sqlite.ini,
/etc/php5/cli/conf.d/sqlite3.ini,
/etc/php5/cli/conf.d/xdebug.ini,
/etc/php5/cli/conf.d/xsl.ini

Bu benim yerel cihazımdan. Ancak, ikinci satır ilginç olanıdır. Bahsedilen bir şey yoksa, ilkine bir göz atın. PHP'nin aradığı yol budur php.ini.

phpinfo()Bir komut dosyasında kullanarak aynı bilgileri yazabilir ve bir tarayıcı ile çağırabilirsiniz. Çıktının ilk bloğunda belirtilmiştir. php -ikomut satırı için aynı şeyi yapar, ancak oldukça rahatsız edici.


5
en eski ve daha önce en basit cevabı kabul etmek (SO beni kabul etmeden önce bir süre beklemeye zorlar). muhtemelen bilgi arayan bir sonraki kişiye yardımcı olacak genişleme için teşekkürler. benim için 2. satır (none) dedi ve ilk satırdaki yola bir php.ini dosyası yerleştirdikten sonra her şey iyi çalıştı. Teşekkürler!
necromancer

12
Bu komutu kullandım ve beni yönlendirdiği php.ini dosyasını düzenledim ve PHP ayarlarım değişmiyordu ve bana doğru php.ini dosyasını vermediğini fark ettim. Ben phpinfo () PHP işlevini kullanarak denedim ve bana düzenlemek için gerekli php.ini gerçek doğru konumunu vermek. Bence bu çok önemli ve umarım bu birisine yardım eder.
ortak kullanım tarihi

3
/etc/php5/apache2/php.ini
Adam

@thecommonthread Uygulamada karşılaştığınız sorunu belirttiğiniz için teşekkür ederiz. Kabul edilen cevabı bir .phpdosya oluşturmayı vurgulayan biriyle değiştirdim . Bu arada, soru hakkında yorum yaparsanız bildirim alırım ve sorunu daha erken çözebilirim.
büyücü

5
@Pacerier Bunun farklı PHP kurulumlarıyla bir ilgisi yoktur, ancak farklı SAPI'ler farklı ini dosyaları kullanabilir. Apache modülünü kullanmıyorum ama hatırladığım kadarıyla benzer bir phpinfo.phpdosyanın etrafında bir yol olmadığını düşünüyorum . FPM ile en azından kullanabilirsiniz php5-fpm -i | grep '\.ini'. Genellikle bunu iki veya üç kez kullanırsınız ve günün sonunda dosyaların nerede olduğunu bilirsiniz ;)
KingCrunch

133

Bu benim için çalışıyor:

php -i | grep 'php.ini'

Şuna benzer bir şey görmelisiniz:

Loaded Configuration File => /usr/local/lib/php.ini

ps Sadece php.inin yolunu almak için

php -i | grep /.+/php.ini -oE

5
Orada Bu sadece, işleri olan bir php.inisorun tam olarak hangi: yok varsa, hala nerede yenisini koymak için bakmak için nerede olduğunu bilmek, ya yoktur.
KingCrunch

Ben hiç php.ini dosyası olmayan bir durumla karşılaşmadım.
coderama

Bu komutu Configuration File (php.ini) Path => /usr/libçalıştırmak <?php phpinfo(); ?>bana verir , ama koşmak bana verir Loaded Configuration File: /etc/php.ini. Yani, phpinfo()benim durumumda daha güvenilirdi.
Leo Galleguillos

2
Bu tamamen doğru değil. PHP dilini kullanan her çerçevenin kendi php.ini dosyası vardır. Komut satırından bu satırı çağırırsanız, muhtemelen /var/php5/cli/php.ini gibi bir web ortamında PHP çalıştırırken kullanılan dosya olmayan bir şey alırsınız. Bu dosya için apache2 klasörüne bakmalısınız.
Andrea Moro

63

Komut penceresi yazın

php --ini

Size yolu gibi bir şey gösterecek

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         /usr/local/lib/php.ini

Yukarıdaki komut işe yaramazsa bunu kullanın

echo phpinfo();

33

Bu komut onu bulmanıza yardımcı olmalıdır

php -r "phpinfo();" | grep php.ini

1
Bunu diğer cevaplardan daha çok seviyorum. Oluşturmam, bu içeriklerle bir php dosyası bulmam ve sayfayı tarayıcıya yüklemem gerekmez.
Andrew Allbright

29

php.iniLinux'ta dosya yolunu bulmak için aşağıdaki komutları kullanın .

[root@AnyDirectory ~]# locate php.ini
/etc/php.ini
/etc/php.ini.rpmnew
/usr/share/doc/php-common-5.4.45/php.ini-development
/usr/share/doc/php-common-5.4.45/php.ini-production


ya da başka bir şekilde dene

[root@AnyDirectory ~]# php --ini
yol sonucunu gösterir


11
Bu, herhangi bir php.ini php -i | grep 'php.ini'bulduğu ve PHP kurulumunuzun hangisini kullandığını size söylemediği için , bu gibi yöntemlerden daha düşüktür . Ayrıca, veritabanı güncel olmadığında da yanlış sonuçlar verebilir . locate
lxg


22

PHP, hangi yapılandırma dosyasının yüklendiğini göstermek için iki yerel işlevle birlikte gelir:

Kurulumunuza bağlı olarak Apache ve CLI farklı ini dosyaları kullanabilir. İşte iki çözüm:

Apache:

Aşağıdakileri bir php dosyasına ekleyin ve tarayıcınızda açın

print php_ini_loaded_file();
print_r(php_ini_scanned_files());

CLI:

Terminalinize kopyalayıp yapıştırın:

php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'

Yetersiz takdir, kapsamlı ve (neredeyse) doğru cevap. Neredeyse doğru cevaba geçtim ama php_ini_loaded_fileher zaman mevcut olmayabilir.
büyücü

@zylstra php sürümünüz neydi? php_ini_loaded_filedemek php sürümü için dokümanlar > = 5.2.4
necromancer

@necromancer Emin değilim. Hangi sistemi kontrol ettiğimi unuttum. : /
zylstra

8
find / -name php.ini

Hey ... benim için çalıştı!


3
birincisi, biraz zaman alıyor; ikiden fazla, eğer birden fazlasınız varsa, hangisinin kullanımda olduğunu nasıl anlarsınız?
necromancer

1
Doğru, php --iniçalışıyor, ama bu sadece başka bir seçenek :) Genellikle bir /etc/php5/cli/php.ini /etc/php5/apache2/php.ini /etc/php5/cgi/php.inive genellikle hangisini istediğiniz oldukça açıktır. (cli, apache, cgi)
Banned_User

Diskte tüm php.ini dosyasını bulmamız amaçlanmadığından, bu iyi bir çözüm değildir.

4

Aşağıdaki gibi bir şey kullanarak yapılandırma dosyalarınız hakkında daha fazla bilgi alabilirsiniz:

$ -> php -i | ack config # Use fgrep -i if you don't have ack

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini


2

Bu çözümlerden birini deneyin

  1. Terminal tipinizde find / -name "php.ini"

  2. Terminal tipinizde php -i | grep php.ini. Dosya yolunu şu şekilde göstermelidir:Configuration File (php.ini) Path => /etc

  3. Eğer php dosyalarınızdan birine erişebiliyorsanız, onu bir düzenleyicide (not defteri) açın ve <?php yeni bir satıra sonra aşağıdaki kodu ekleyin phpinfo();Bu size php.ini konumunu söyleyecektir
  4. Ayrıca etkileşimli modda php ile konuşabilirsiniz. Sadece tip php -a) (terminal ve tip phpinfo olarak; php başlatıldıktan sonra.

1, 2 ve 4 numaralı noktalar birden çok yükleme sorununa açıktır; zaten harika cevaplar var. burada hiçbir şey eklemeyen bir cevap eklemenize gerek yok.
büyücü

@necromancer sorunlarınızı ayrıntılı olarak açıklar, böylece birisi için yararlı olur. Kötü ve kullanışsız cevaplar için oy ve aşağı oy kullandık ve topluluk karar verecek.
cherankrish

-1

Php.ini dosyasını bulmak için birkaç geçerli yol vardır, ancak bu sayfada bir bash komut dosyasında bir şey yapmak istediğiniz için geldiyseniz:

path_php_ini="$(php -i | grep 'Configuration File (php.ini) Path' | grep -oP '(?<=\=\>\s).*')" echo ${path_php_ini}


1
bunun yerine bkz: stackoverflow.com/a/24342463/621338 dışarı çıkmak yerine, metin değişirse kırılgan, php sadece dosya adını yazdırabilir ve yukarıdaki gibi karmaşık şeyler olmadan bash betiğinde kullanabilirsiniz.
büyücü
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.