Ok, você quer rodar múltiplas versões do PHP através do nginx, o arquivo de configuração deve inclui o caminho específico onde você coloca seus scripts PHP em diferentes versões ou nomes de extensão.
No entanto, gostaria de explicar o link da pergunta do SF no seu post.
Essa resposta está dando a você uma maneira de modificar o conf
de seu nginx
, o que pressupõe que o questionador tenha experiência em nginx
.
Ao fornecer uma porta específica em conf
, o nginx fará com que o script seja executado através desse canal FastCGI.
Vamos fingir que você instalou uma versão diferente do PHP em seu servidor, e você modificou o port
em php-fpm.conf
.
Você deseja que todo o arquivo php
executado na versão 5.5.0
e php2
arquivo seja executado em 5.6.0
.
Exemplo de configuração do nginx da seguinte forma,
listen 8080;
server_name localhost;
root html;
location / {
index index.php index.php2;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME "${document_root}${fastcgi_script_name}";
include fastcgi_params;
}
location ~ \.php2$ {
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME "${document_root}${fastcgi_script_name}";
include fastcgi_params;
}
Nesse caso, php
é processado pela porta 9000
e php2
vai para 9001
Este é apenas um exemplo simples, para avançados, você pode criar duas pastas diferentes para armazenar arquivos php, por exemplo, /home/php55
e /home/php56
e, em seguida, editar seu nginx.conf
.
PARA SUA PERGUNTA EDITADA
Se você quiser adicionar servidores diferentes para processar os scripts em versões diferentes, certifique-se de fazer isso, pois o nginx pode ser um balanceador de carga e também pode lidar com esse tipo de problema.
Primeiro aplicativo
server{
listen 80;
server_name php1.localhost;
root /home/www/php5.5;
location / {
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9002; (You can change it to your private IP in the future)
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Segundo aplicativo
server{
listen 80;
server_name php2.localhost;
root /home/www/php5.6;
location / {
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9004; (You can change it to your private IP in the future)
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Usando a configuração acima, você pode facilmente mudar o resultado da versão diferente do script PHP, além disso, você pode usar o NFS (se você estiver em um ambiente * nix) para montar o disco, neste caso, você não precisará para colocar arquivos em duas pastas manualmente.
Quanto ao método de passagem Fastcgi, sugiro usar PORT em vez de Socket.
Todos nós sabemos que o Unix Socket tem um desempenho melhor devido à porta TCP usar toda a pilha de rede, mesmo na mesma máquina.
No entanto, o tempo que você economiza é muito pequeno, além disso, você pode enfrentar esse problema ao usar o Socket em um tempo de tráfego alto,
connect() to unix:/var/run/php5-fpm.sock failed or apr_socket_recv: Connection reset by peer (104)
Além disso, a porta TCP pode fornecer uma maneira mais rápida de gerenciar se você colocar o nginx e o php-fpm em servidores separados.
Estou usando um laptop pequeno para editar este post, então os códigos não são bonitos, mas eu tentei ....
EDITADO
Lembre-se de modificar seu /etc/hosts
para corresponder ao seu nome de host (nome_do_servidor em nginx.conf
)