Como estou tentando mudar do Apache 2 para o Nginx, enfrentei dezenas de problemas e ainda os consertei. De qualquer forma, estou tentando fazê-los funcionar, mas sem sorte ainda. Então, estou perguntando aqui procurando ajuda / experiência anterior.
Eu usei as configurações padrão para executar o PHP e ele funciona muito bem ao executar somente arquivos PHP. mas infelizmente a URL do codeigniter não termina em * .PHP. Então eu acho que o PHP-FPM não trata meus scripts como arquivos PHP, já que o URL não termina em *.PHP
. Eu só estou adivinhando embora.
Então, existe alguma maneira possível de fazê-los trabalhar juntos? parece impossível para mim, eu tentei muitas configurações (depois de modificá-las para o meu ambiente, ofcource), mas nenhuma delas funcionava com o Codeigniter.
Espero que postar minhas configurações atuais que funcionam com arquivos php normais levará a algumas soluções.
Nota: Esse é exatamente o mesmo postado na página wiki do Nginx para a estrutura Codeigniter.
server {
server_name _;#_ to catch all requests.
root /usr/share/nginx/www;
index index.html index.php;
# set expiration of assets to MAX for caching
location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
expires max;
log_not_found off;
}
location / {
# Check if a file exists, or route it to index.php.
try_files $uri $uri/ /index.php;
}
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
usando a configuração anterior para minha configuração /sites-enabled/default
faz o PHP funcionar, mas não o codeigniter, tudo que eu obtenho são páginas brancas, e o custom 404 do codeigniter ao acessar arquivos inexistentes.
Eu também reconfigurei arquivos config.php como os seguintes:
$config['base_url'] = "http://localhost/";
$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";
Eu tentei essas configurações e muitas outras, geralmente os mesmos resultados.
Enfim, há alguns pontos que (esperançosamente) me darão uma resposta:
1. Eu tentei estas configurações no Debian 6 / Ubuntu 12.04
2. Estou executando o último php5-fpm
, nginx
de apt-get
.
3.Alguma coisa que eu notei, comentando SCRIPT_NAME
e SCRIPT_FILENAME
(no arquivo fastcgi_params
) faz com que codeigniter mostre um erro. no entanto, comentá-los na configuração atual acima não tem nenhum impacto.
4.File permissões para todos os arquivos em /usr/share
é 777
, eu sei que é inseguro, mas eu estou usando para teste somente.