Estou ficando frustrado com minha configuração do nginx e, portanto, estou pedindo ajuda para escrever meu arquivo de configuração para atender a vários projetos de subdiretórios na mesma raiz. Isso não é hospedagem virtual, pois todos eles usam o mesmo valor de host. Talvez um exemplo esclareça minha tentativa:
- pedido
192.168.1.1/
deve servirindex.php
de/var/www/public/
- pedido
192.168.1.1/wiki/
deve servirindex.php
de/var/www/wiki/public/
- pedido
192.168.1.1/blog/
deve servirindex.php
de/var/www/blog/public/
Esses projetos estão usando PHP e usam o fastcgi.
Minha configuração atual é muito mínima.
server {
listen 80 default;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
root /var/www;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
}
Eu tentei várias coisas com alias
e rewrite
mas não foi capaz de fazer as coisas corretamente definida para fastcgi. Parece que deve haver uma maneira mais eloquente do que escrever localização blocos e duplicar root
, index
, SCRIPT_FILENAME
, etc.
Quaisquer indicações para me levar na direção certa são apreciadas.
Respostas:
Como seus projetos não estão na mesma raiz, você deve usar vários locais para isso.
Além disso, coloque fastcgi_index no seu arquivo fastcgi_params e inclua-o no nível do servidor, para manter seus locais php tão pequenos quanto possível.
fonte
Resolve por localização + alias:
fonte
Aqui está o que eu tentei, mais detalhes em http://programmersjunk.blogspot.com/2013/11/nginx-multiple-sites-in-subdirectories.html
fonte