phpinfo () ve php -v, PHP'nin farklı sürümünü gösterir


20

Hangi phpsürümü kullandığımı bilmek istedim, bu yüzden standart komut dosyasını yazdım:

phpinfo();

Hangi bana verir

PHP version 5.6.10

Uygulamam için doğru PHP sürümü gerekiyor. Terminalde denediğimde:

php -i

veya

php -v

Bana gösteriyor:

PHP version 5.3.2

Hangi ihtiyacım yok. Sonra ile denedim:

which php

Bana gösteriyor:

/usr/bin/php

Şimdi hangi PHP sürümünü kullandığım karıştı. Dosyalar barındırma web sitesine yüklenir ve httpd.confveya gibi yapılandırma dosyalarında herhangi bir değişiklik yapamam php.ini.

Yanıtlar:


22

Daha kısa cevap.

Panik yapma! Apache sunucunuzun hangi PHP sürümünü kullandığı konusunda endişeleriniz varsa, çıktısı phpinfo()her zaman dikkat etmeniz gereken şeydir. Apache PHP modülü ve PHP komut satırı ikili, birbirini etkilemeyen iki farklı şeydir.

Aslında, Apache'yi düzgün yüklemek için ayarladığınız sürece Apache ile çalışmak istediğiniz çeşitli PHP sürümlerini derleyebilir ve yükleyebilirsiniz. PHP komut satırı arabirimi Apache'nin PHP sayfalarını ayrıştırması durumunda asla devreye girmeyecektir.

PHP'nin komut satırı sürümü sadece komut satırına özgü görevler için vardır ve Apache için PHP modülü buna asla dokunmaz, kullanmaz veya ihtiyaç duymaz.

Daha uzun cevap.

Bunu söyle:

Hangi phpsürümü kullandığımı bilmek istedim, bu yüzden standart komut dosyasını yazdım:

phpinfo();

Hangi bana PHP sürüm 5.6.10 - benim uygulama için gerekli doğru PHP sürümü verir . Terminalde denediğimde:

php -i or php -v   

Bana ihtiyacım olmayan PHP 5.3.2 sürümünü gösterir.

Komut satırından kullanılabilen PHP sürümünün, modül olarak yüklenen PHP sürümüyle hiçbir ilgisi yoktur. Bunlar tamamen ayrı şeyler.

Yani web uygulamanızın hangi PHP sürümünü kullandığı konusunda endişeleriniz varsa phpinfo(), 5.6.10 sürümünü gösterir ve% 100 para cezası istediğiniz / ihtiyaç duyduğunuz şey budur.

PHP'nin komut satırı sürümü tamamen ayrı bir sistem öğesidir. Yani önemli olan tek şey çıktısıdır phpinfo().

Herhangi bir nedenle Apache ile PHP'nin farklı bir sürümünü kullanmak istiyorsanız, tek yapmanız gereken derlenmiş Apache PHP modülünü bir yere kurmak ve sisteminizin Apache konfigürasyonuna bu satırı eklemek veya ayarlamaktır:

LoadModule php5_module    /path/to/php/and/the/module/for/apache2/libphp5.so

Ve libphp5.so- Apache'nin PHP'yi ayrıştırmak için kullandığı yolun yolunu ayarlayın, sonra Apache'yi yeniden başlatın ve iş başındasınız.

Örneğin, bir noktada PHP 5.3.5 çalıştıran bir Ubuntu 12.04 makinesinde kullanılmak üzere PHP versiyon 5.1.6'yı kaynaktan (GD kütüphane desteği ile) derlemek zorunda kaldım. Sunucunun PHP modülü yükleme dosyasındaki:

/etc/apache2/mods-available/php5.load

Bunun gibi çizgiler vardı:

# LoadModule php5_module        /usr/lib/apache2/modules/libphp535.so
LoadModule php5_module        /usr/lib/apache2/modules/libphp516-gd.so

Bir satırın nasıl yorumlandığına libphp535.sove diğer satırın yorumlandığına dikkat edin libphp516-gd.so? Benim yaptığım varsayılan PHP 5.3.5 değiştirildi olduğu libphp5.soiçin Apache modülü libphp535.soPHP 5.1.6 (GD kütüphanesi desteği ile) modülü adında o zaman orada referans için var ve bu yüzden adına sürüm numarasına sahip libphp516-gd.sone olduğunu biliyorum de öyle. Bu şekilde her ikisini de sistemde yan yana kullanabilirim.

Ve - başlangıçta söylediğim gibi - komut satırında kullanılan PHP sürümünün Apache PHP modülü ile hiçbir ilgisi yoktur. Böylece sistemde kullanıma hazır Apache PHP modüllerinin istediğiniz kadar farklı sürümüne sahip olabilirsiniz; bir yapılandırmayı ayarlayın ve Apache'yi yeniden başlatın ve Apache'nin belirtmesi gereken PHP sürümünü kullanmak için işinizde olmalısınız.


26

Apache ile Ubuntu 14.04'te PHP5'ten PHP7'ye yükseltme yaparken bu sorunla karşılaşırsanız, bana yardımcı olan şey (kredi buraya gelir ):

Apache'de PHP5 modülünü devre dışı bırak:

sudo a2dismod php5

Şimdi PHP7'yi etkinleştirin:

sudo a2enmod php7.1

Değişiklikleri yansıtmak için Apache'nin yeniden başlatılması gerekir:

sudo systemctl restart apache2

php.ini farklı ise bu proje çökebilir
KawaiKx

Ayrıca yeni sürüm için php kütüphanelerinin yüklü olmasını sağlamak, gd, mcrypt, xml vb demek
korwalskiy

2

Web sunucunuzdan PHP kodu çalıştırmaya çalışıyorsanız, kullandığınız sürüm phpinfo()= 5.6.10 ile bildirilen sürümdür .

Sunucunuzda PHP'nin birden çok sürümü yüklü ve phpkomut satırında oturum açıp çalıştırdığınızda , / usr / bin / php dizinine yüklenmiş olan eski sürümü alıyorsunuz.

Bir sunucu PHP'nin birçok sürümüne sahip olabilir ve sizinki gibi görünüyor.

Web sunucunuzla aynı PHP'yi manuel olarak yürütmeniz gerekiyorsa, diğer sürümü bulmanız gerekir. Şu komutları çalıştırmayı deneyin:

/usr/local/bin/php -v
/opt/local/bin/php -v
/opt/bin/php -v

Bunlardan biri, web sunucunuzla aynı sürüme sahip bir PHP ortaya çıkarabilir ve hangisinin olduğunu anladığınızda, bunu varsayılan yerine kullanabilirsiniz.


0

2 sentimi ekleyebilirsem ...

Nextcloud sürümümü yükseltiyordum. Yükseltme yordamını çalıştırdığımda, apache kullanıcısı olarak "sudo php" yapmak zorundayım, ancak apache kullanıcısı tarafından varsayılan olarak çalıştırılan php CLI sürümü çok eski olduğu için çalıştırmayı reddetti. Ancak, phpinfo (); sunucumda yüklü en son php sürümü görüntülendi.

Bunun /home/apache/.bashrc dosyasındaki PATH değişkeninin sunucumda kurduğum php'nin ilk sürümüne ayarlanmış olması ve bir daha asla güncellenmemesi ( Github'daki kaynaktan php'yi derlemem / yüklemem )

Çözüm:

Web sunucunuzda php'yi güncellediğinizde ve apache kullanıcısı olarak sudo kullandığınızda kullanılan CLI php sürümünün en güncel olduğundan emin olmak istediğinizde, bu kullanıcının .bashrc dosyasında aşağıdaki gibi değiştirmeyi unutmayın:

PATH=$PATH:/var/www/html: /usr/local/php7.1.32/bin export PATH


-1

Bunu düzeltmek için adımlar. Her şeyden önce hangi PHP sürümü size gösteriyor.

php -v

Şimdi bir PHP yoluna ihtiyacınız olacak, bilmiyorsanız, PHP yolu için barındırma desteğinizle iletişime geçebilirsiniz. Benim durumumda

/opt/php71/bin/php

Şimdi, bu komutu terminalde çalıştırma zamanı.

alias php='/opt/php71/bin/php'

Bu, PHP sürümünüzü PHP 7.1 olarak değiştirecektir. 7.2 olarak değiştirmek isterseniz deneyebilirsiniz

alias php='/opt/php72/bin/php'

Bitirdiniz. İle doğrulayın

php -v

-3

Php son sürümü için bir ortam değişkeni yolu oluşturun örn: C: \ wamp64 \ bin \ php \ php7.2.4 Şimdi önceki php sürüm klasörünüzü .php5.6.35 başka bir numaraya php5.6.354 değiştirin .. Sonra php -v wamp'ınızı kontrol edin server ve cli php aynı olacak

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.