Do not speak Portuguese? Translate this site with Google or Bing Translator
Várias versões do PHP com Nginx

Posted on: September 05, 2020 12:03 AM

Posted by: Renato

Categories: PHP nginx ubuntu linux

Views: 3299

Como instalar várias versões do PHP com Nginx no Ubuntu 18.04 e 16.04

Geralmente, o gerenciador de hospedagem na web usa um servidor separado para cada implementação de aplicativo da versão PHP. O que aumenta o custo de hospedagem. Como alternativa, você pode executar vários contêineres Docker para várias versões de PHP.

Este tutorial ajuda você com a instalação e configuração de dois VirtualHost no servidor da web Nginx com diferentes versões de PHP. O primeiro VirtualHost funcionará com PHP 5.6 e outro VirtualHost será executado com PHP 7.2. Então, basta seguir este tutorial. Você também pode usar mais de duas versões de PHP com Nginx conforme necessário, mas este tutorial cobre apenas duas.

 

Instalação PHP

Para a instalação das versões do PHP, usamos o PPA mantido aqui. Use os dois comandos abaixo para adicionar o PPA ao seu sistema.

sudo apt install python-software-properties
sudo add-apt-repository ppa:ondrej/php

Para este tutorial, usei PHP 5.6 e PHP 7.2 para configurá-lo com o servidor web Nginx. Para usar as várias versões do PHP, usaremos PHP FPM e FastCGI. Vamos instalar os seguintes pacotes em seu sistema.

 

apt update
sudo apt install php5.6 php5.6-fpm
sudo apt install php7.2 php7.2-fpm

Você também pode precisar instalar módulos PHP adicionais. Para o tutorial, apenas os pacotes acima são necessários.

Após a instalação, os serviços php-fpm serão iniciados automaticamente. Use os comandos a seguir para garantir que ambos os serviços estejam em execução.

sudo systemctl status php5.6-fpm
sudo systemctl status php7.2-fpm

Nginx Installation

Instalação Nginx

Os pacotes do servidor web Nginx estão disponíveis no repositório oficial do Ubuntu. Inicie o terminal em seu sistema ou faça login com ssh para sistemas remotos. Execute os comandos a seguir para instalar a versão mais recente disponível do servidor da web Nginx.

sudo apt update 
sudo apt install nginx

Configuração Nginx

Prepare-se para a configuração de sites no servidor Nginx. Para fins de teste, estou configurando dois sites para trabalhar com duas versões diferentes de PHP. Primeiro, crie dois diretórios em seu servidor.

sudo mkdir /var/www/php56
sudo mkdir /var/www/php72

Agora, crie e index.php contendo a função phpinfo () .

echo "" > /var/www/php56/index.php
echo "" > /var/www/php72/index.php

Depois disso, crie blocos de servidor para ambos os sites no Nginx. A versão mais recente do Nginx mantém os arquivos de configuração do bloco do servidor no diretório / etc / nginx / sites-available. Crie um arquivo para o primeiro host virtual e edite em seu editor de texto favorito.

sudo vim /etc/nginx/sites-available/php56.example.com

Adicione o seguinte conteúdo. Certifique-se de usar o nome do servidor e o caminho do diretório corretos de acordo com sua configuração. Este site está configurado para funcionar com PHP 5.6.

 

# Application with PHP 5.6
#
server {
	listen 80;

	root /var/www/php56;
	index index.php;
	server_name php56.example.com;

	location ~* \.php$ {
		# With php-fpm unix sockets
		fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
		include         fastcgi_params;
		fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
		fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
	}
}

Da mesma forma, crie um segundo arquivo de configuração VirtualHost para trabalhar com PHP 7.2. Edite o arquivo de configuração no editor de texto:

sudo vim /etc/nginx/sites-available/php72.example.com

 

Adicione o seguinte conteúdo ao arquivo com ServerName e DocumentRoot adequados.

 

# Application with PHP 7.2
#
server {
	listen 80;

	root /var/www/php72;
	index index.php;
	server_name php72.example.com;

	location ~* \.php$ {
		# With php-fpm unix sockets
		fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
		include         fastcgi_params;
		fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
		fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
	}
}

Tudo bem, você criou os dois sites em seu Nginx. Mas eles ainda não estão ativos. O Nginx mantém os sites ativos no diretório / etc / nignx / sites-enabled. Você pode simplesmente criar um link simbólico para ambos os arquivos de configuração neste diretório ou usar o comando abaixo para fazer o mesmo.

 

sudo ln -s /etc/nginx/sites-available/php56.example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/php72.example.com /etc/nginx/sites-enabled/

 

Depois de fazer todas as alterações, reinicie o Nginx para recarregar as novas alterações nas configurações.

 

sudo systemctl restart nginx.service

Sua configuração foi concluída agora. Vá para a próxima etapa para testar sua configuração.

1) vim /etc/hosts
2) add below 2 lines , save and exit.
127.0.0.1 php56.example.com
127.0.0.1 php72.example.com

Configuração de teste

Tudo feito. Você pode acessar os dois sites em seu navegador da web favirote. Você verá que php56.example.com mostra a versão PHP 5.6 e php72.example.com mostra o PHP 7.2 como configuração.

 

 

Parabéns, Seu sistema está pronto para hospedar sites com diferentes versões de PHP. Feliz hospedagem.

- https://tecadmin.net/install-multiple-php-version-nginx-ubuntu/

 

 


0

Share

Donate to Site


About Author

Renato

Developer

Add a Comment
Comments 1 Comments
  • Parbriz Ford Fiesta 2004
    Parbriz Ford Fiesta 2004 - há 3 anos
    My brother recommended I may like this website. He was totally right. This post truly made my day. You can not consider just how much time I had spent for this information! Thanks!

Blog Search


Categories

OUTROS (16) Variados (109) PHP (133) Laravel (171) Black Hat (3) front-end (29) linux (114) postgresql (39) Docker (28) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (56) devops (25) nodejs (5) npm (3) nvm (1) git (8) firefox (1) react (7) reactnative (5) collections (1) javascript (7) reactjs (8) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (1) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (2) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (12) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (5) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (3) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (43) Kubernetes (3) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (2) jwt (5) security (2) translate (1) kube (2) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (3) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (3) Architecture (4) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (2) autorizacao (2) authentication (4) authorization (3) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1) Curisidades (1) Samurai (1) KubeCon (1) GitOps (1) Axios (1) Fetch (1) Deepin (1) vue (4) nuxt (1) PKCE (1) Oauth2 (2) webhook (1) TypeScript (1) tailwind (1) gource (2)

New Articles



Get Latest Updates by Email