O bloco do servidor Nginx não está funcionando

2

Aviso: Só para esclarecer, sou completamente novo no Linux, mas configurei tudo através de pesquisas no Google e pesquisas pessoais.

Eu tenho um servidor Debian Wheezy com a pilha LEMP que pretendo usar como host de um domínio.

Tenho o DNS funcionando para que, quando eu entrar no domínio, eu receba a página "bem-vindo ao nginx". O problema surge porque eu já criei o diretório que hospedará o site e o preenchai com os arquivos do site (index.php é a página principal), e também configurei o bloco do servidor (/ etc / nginx / sites- available / example.com) assim:

UPDATED Server block
server {
        listen   80;
        server_name example.com www.example.com;
        root /var/www/example.com;
        index index.php index.html index.htm;
        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /var/www/example.com;
        }

    location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
}

com um link simbólico para o diretório habilitado para sites. Mas, mesmo depois de reiniciar o serviço e / ou reiniciar a máquina, o domínio ainda exibe a mensagem "welcome to nginx". Eu tentei editar outras linhas com as respostas de problemas semelhantes no site e até agora não houve nenhuma mudança, e os logs de erro não mostram nada. O que poderia estar causando a falha na configuração?

Agradecemos antecipadamente pelas respostas

UPDATE : Aqui está o arquivo nginx.conf. Entre experimentando enquanto comentava e descomentava algumas linhas nos sites disponíveis e tentando copiar o arquivo para o diretório "sites-enabled" o domínio agora simplesmente recusa-se a carregar dando um erro "Nenhum dado recebido"

UPDATED nginx.conf
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
    worker_connections 768;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

     server_names_hash_bucket_size 64;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # Logging Settings
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # Gzip Settings
    ##

    gzip on;
    gzip_disable "msie6";
    text/javascript;


    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

UPDATE 2: Depois de verificar novamente minhas configurações, observei que as permissões foram definidas incorretamente e que o padrão estava de alguma forma substituindo o site, mesmo quando ele não estava no diretório habilitado para sites. Eu fiz backup e deletei o padrão e apenas por boa medida mudei o diretório de trabalho no bloco do servidor, movendo os arquivos do site para o que eu capturei. Funcionou e agora o site carrega. Agora eu não sei se devo apenas adicionar isso à atualização ou colocar em outra questão, mas aqui vai: O problema agora é que o site carrega o html e CSS, mas por algum motivo não o PHP, alguma idéia com naquela?. Eu vou atualizar de acordo com o que eu encontrar ou se vocês precisarem de mais informações, obrigado!

ATUALIZAÇÃO FINAL: Demorou um pouco, mas consegui saber onde estava o erro do php, comecei a vasculhar os logs e descobri que precisava instalar o php5-curl, o problema foi corrigido depois disso e agora o site funciona completamente.

    
por Aldax 30.10.2014 / 21:36

2 respostas

0

Você está usando o php CGI ou o FPM? Você só precisa de uma diretiva fastcgi_pass, mas ambas não são comentadas.

Tente criar o index.html do arquivo de índice e coloque esse arquivo na raiz do servidor. Recarregue o nginx e veja se ele serve. Adicionar o PHP complica as coisas, portanto, certifique-se de que o próprio nginx funcione primeiro. service nginx configtest é muito útil também.

Atualização: Parece que você está usando o PHP-FPM na porta 9000. Eu deixaria a linha do soquete unix comentada, e certifique-se de que o servidor possa falar com sua própria porta 9000 (TCP). No que diz respeito ao nginx, parece que está funcionando, mas o PHP pode não estar. Por padrão, ele terá seu próprio arquivo de log para o daemon do FPM e um para o script PHP (provavelmente em /var/log/ em algum lugar). Mergulhe no / etc / php5 / fpm e comece a procurar nos arquivos .ini.

    
por 30.10.2014 / 23:09
0

Dada a parte:

with a symbolic link to the sites-enabled directory

Acho que é aí que você está errado.

Em sites-enabled , você deve ter links simbólicos para sites-available configurações e não o contrário, porque é onde o nginx pesquisar por padrão (consulte nginx.conf).

O compartilhamento do seu nginx.conf pode ser útil.

    
por 30.10.2014 / 23:03