Domanda

E 'possibile avere più versioni di PHP in esecuzione sulla stessa macchina (come binari). Qui è il mio problema, ho bisogno di iniziare lo sviluppo su un nuovo progetto e avevo intenzione di usare PHP 5.3 per esso in modo da poter utilizzare l'ultima framework Zend e record attivo con esso.
Tuttavia la macchina in cui ho bisogno per ospitare il mio applicazione ha PHP 4.4 e ci sono diverse altre applicazioni ospitate lì. Non voglio aggiornare la versione di PHP sul server come in passato ho affrontato un sacco di problemi durante l'aggiornamento della versione di PHP e le funzioni deprecate.
Mi chiedevo se è possibile avere più versioni di PHP sulla stessa macchina e quindi in qualche modo specificare la versione che si desidera che l'applicazione per caricare (simile alle rotaie)

È stato utile?

Soluzione

Sì, è possibile. In realtà, molti server funzionano in questo modo. Si può vedere estensioni .php4 e .php5 di volta in volta indicare quale versione quel particolare script deve essere maneggiato con.

ServerFault rivolto questa domanda

PHP4 e PHP5 lungo lato di scorrimento tra loro

Altri suggerimenti

È possibile eseguire più versioni di PHP sulla stessa scatola con finestra mobile.

Un comando esempio potrebbe essere:

sudo docker run -d -p 8055:80 -v /var/www:/var/www \
  -v /etc/apache2/sites-available:/etc/apache2/sites-available \
  -v /etc/apache2/sites-enabled:/etc/apache2/sites-enabled \
  codeyourdream/apache-sendmail-php55

Ecco cosa fa questo comando:

  • Si inoltra la tua /var/www locali, /etc/apache2/sites-available e /etc/apache2/sites-enabled ai corrispondenti cartelle del contenitore Docker. Se i vostri siti web locali e / o configurazioni Apache si trovano in cartelle diverse, sostituire la prima parte del valore -v. Cioè il formato è il seguente: docker run -v /host/directory:/container/directory -other -options image_name command_to_run
  • Si inoltra la porta 8055 del computer locale alla porta 80 di container Docker
  • Si corre il contenitore da "codeyourdream / apache-sendmail-php55" immagine

Se si esegue questo comando, tutti i siti web locali dovrebbero essere disponibili tramite la porta 8055 (vale a dire gli URL tramite come http: // localsite: 8055 ) e trattate da PHP 5.5

Vedere https://codeyourdream.com/blog/how-run-multiple-php-versions-apache-one-linux-machine-using-docker per maggiori dettagli. Nota Affiliazione:. questo è il blog di mia squadra

A possiblity utilizza una versione di PHP come modulo Apache, e l'altra versione come CGI; ma un'idea che ho un po 'come migliore è quello di avere:

  • Diversi casi distinti di Apache,
  • Ognuno di ascolto su una porta diversa (per esempio, PHP 4.4 sulla porta 44000, e PHP 5.3.1 sulla porta 53100)
  • E ognuno con una diversa versione di PHP

In questo modo, si dispone di ambienti totalmente diversi, che funziona in modo indipendente l'uno dall'altro, ed è possibile configurare / modificare tutto quello che vuoi in ogni ambiente senza rischiare la rottura di tutti gli altri.

(E se non si vuole avere numeri di porta negli URL, suppongo che si può mettere un proxy di fronte a istanze di Apache distinte, quindi sembra che ci sia una sola)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top