phpinfo () e php -v mostra diverse versioni di PHP


18

Volevo sapere quale phpversione sto usando, quindi ho scritto lo script standard:

phpinfo();

Il che mi dà

PHP version 5.6.10

La versione corretta di PHP necessaria per la mia applicazione. Quando ho provato nel terminale:

php -i

o

php -v

Mi mostra:

PHP version 5.3.2

Di cui non ho bisogno. Quindi ho provato con:

which php

Mi mostra:

/usr/bin/php

Ora sono confuso quale versione di PHP sto usando. I file vengono caricati sul sito Web di hosting e non posso apportare modifiche ai file di configurazione come httpd.confo php.ini.

Risposte:


22

Risposta più breve.

Non fatevi prendere dal panico! Se sei preoccupato della versione di PHP utilizzata dal tuo server Apache, l'output di phpinfo()è sempre ciò a cui dovresti prestare attenzione. Il modulo Apache PHP e il binario della riga di comando PHP sono due cose diverse che non interferiscono l'una con l'altra.

In effetti è possibile compilare e caricare varie versioni di PHP che si desidera lavorare con Apache purché si registri Apache per caricarlo correttamente. L'interfaccia della riga di comando PHP non entrerà mai in gioco nel caso in cui Apache analizzi le pagine PHP.

La versione della riga di comando di PHP è semplicemente lì per attività specifiche della riga di comando e il modulo PHP per Apache non lo toccherà mai, non lo userà né ne avrà bisogno.

Risposta più lunga.

Dici questo:

Volevo sapere quale phpversione sto usando, quindi ho scritto lo script standard:

phpinfo();

Il che mi dà la versione 5.6.10 di PHP - la versione corretta di PHP necessaria per la mia applicazione. Quando ho provato nel terminale:

php -i or php -v   

Mi mostra la versione 5.3.2 di PHP di cui non ho bisogno.

La versione di PHP disponibile dalla riga di comando non ha nulla a che fare con la versione di PHP caricata come modulo. Queste sono cose completamente separate.

Quindi, se sei preoccupato per quale versione di PHP sta usando la tua applicazione web, se phpinfo()mostra la versione 5.6.10 e questo è quello che vuoi / hai bisogno, va bene al 100%.

La versione da riga di comando di PHP è un elemento di sistema completamente separato. Quindi l'unica cosa che conta è l'output di phpinfo().

Se per qualche motivo tu volessi usare una versione diversa di PHP con Apache, tutto ciò che devi fare è installare il modulo PHP Apache compilato da qualche parte e aggiungere - o modificare - questa linea nella configurazione di Apache del tuo sistema:

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

E basta regolare il percorso su libphp5.so—questo è ciò che Apache usa per analizzare PHP — quindi riavviare Apache e sei in affari.

Ad esempio, a un certo punto ho dovuto compilare PHP versione 5.1.6 dal sorgente (con supporto libreria GD) per l'uso su una macchina Ubuntu 12.04 con PHP 5.3.5. Nel file di caricamento del modulo PHP del server qui:

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

Ho avuto linee come questa:

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

Nota come viene commentata una riga libphp535.soe l'altra per non libphp516-gd.socommentata? Quello che ho fatto è stato rinominato il libphp5.somodulo Apache 5.3.5 PHP predefinito libphp535.socon il numero di versione nel nome in modo che potessi averlo lì come riferimento e quindi ho chiamato il modulo PHP 5.1.6 (con supporto libreria GD), libphp516-gd.soquindi so cosa lo è anche. In questo modo li ho entrambi disponibili fianco a fianco sul sistema.

E - come ho detto all'inizio - la versione di PHP utilizzata nella riga di comando non ha assolutamente nulla a che fare con il modulo PHP di Apache. Quindi puoi avere qualsiasi numero di versioni diverse di moduli Apache PHP sul sistema pronti all'uso; basta regolare una configurazione e riavviare Apache e dovresti essere tutto in affari per usare qualunque versione di PHP che hai specificato Apache dovrebbe usare.


24

Se hai questo problema durante l'aggiornamento da PHP5 a PHP7 su Ubuntu 14.04 con Apache, ecco cosa mi ha aiutato (il merito va qui ):

Disabilita il modulo PHP5 su Apache:

sudo a2dismod php5

Ora abilita PHP7:

sudo a2enmod php7.1

Per riflettere le modifiche è necessario il riavvio di Apache:

sudo systemctl restart apache2

questo potrebbe causare l'arresto anomalo del progetto se php.ini è diverso
KawaiKx,

assicurati anche che siano installate le librerie php per la nuova versione, intendo gd, mcrypt, xml ecc.
korwalskiy,

2

Se stai cercando di eseguire il codice PHP dal tuo server web, la versione che stai utilizzando è quella riportata da phpinfo()= 5.6.10 .

Apparentemente sul tuo server sono installate più versioni di PHP e quando accedi ed esegui phpdalla riga di comando, ottieni la versione precedente che è installata su / usr / bin / php.

Un server può avere molte versioni di PHP e il tuo sembra.

Se devi eseguire manualmente lo stesso PHP del tuo server web, allora devi trovare l'altra versione. Prova a eseguire questi comandi:

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

Uno di questi potrebbe rivelare un PHP con la stessa versione del tuo server web e quando capisci quale è, puoi usarlo al posto di quello predefinito.


0

Se posso aggiungere i miei 2 centesimi ...

Stavo aggiornando la mia versione di Nextcloud. Quando eseguo la procedura di aggiornamento, devo "sudo php" come utente apache, ma si è rifiutato di funzionare perché la versione della CLI php eseguita di default dall'utente apache era troppo vecchia. Tuttavia, phpinfo (); sul mio server visualizzato l'ultima versione di php installata.

Mi sono reso conto che è perché la variabile PATH nel file /home/apache/.bashrc è stata impostata sulla prima versione di php che avevo installato sul mio server e non è mai stata aggiornata di nuovo (compilo sempre / installo php dal sorgente su Github )

La soluzione:

Quando aggiorni php sul tuo server web e vuoi assicurarti che la versione php della CLI utilizzata sia la più recente quando sudo come utente apache, non dimenticare di cambiarla nel file .bashrc di questo utente, in questo modo:

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


-1

I passaggi per risolvere questo problema. Prima di tutto quale versione di PHP ti sta mostrando.

php -v

Ora avrai bisogno di un percorso PHP, se non lo sai, puoi contattare il tuo supporto di hosting per il percorso PHP. Nel mio caso lo era

/opt/php71/bin/php

Ora è tempo di eseguire questo comando nel terminale.

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

Questo cambierà la tua versione di PHP in PHP 7.1 Se vuoi cambiarla in 7.2 puoi provare

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

Hai fatto. Verifica con

php -v

-3

Crea un percorso variabile d'ambiente per l'ultima versione di php es: C: \ wamp64 \ bin \ php \ php7.2.4 Ora cambia la cartella della versione precedente di php .php5.6.35 con un altro numero php5.6.354 .. Quindi controlla php -v il tuo wamp server e cli php saranno uguali

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.