Nginx no Debian 8 dev setup. PHP via PHP FPM não funciona

2

ATUALIZAÇÃO: Ok, agora posso dizer com alegria que o que você vê abaixo é a receita para uma configuração automatizada do PHP e Nginx dev (com domínios automáticos) e todos os problemas que tive agora estão resolvidos.

Eu instalei o seguinte, sudo apt-get nginx php5 php5-fpm dnsmasq no Debian 8, Jessie. Eu instalei o dnsmasq para que eu possa ter domínios com o nome dos meus sites de desenvolvimento. Eu fiz um arquivo .conf em /etc/dnsmasq.d contendo

address=/dev/127.0.0.1

e essa parte da configuração está funcionando bem, qualquer domínio .dev resolve para localhost, que está sendo atendido pelo Nginx.

Agora, na parte do servidor do ambiente de desenvolvimento e o que tentei até agora (os blocos do servidor estão abaixo da lista de verificação). Atualização: tudo é bom! Tudo está funcionando agora!

Lista de verificação "coisas que já fiz até agora:

  • Agora tenho a configuração em funcionamento (esta é a minha última edição neste post). Eu encontrei algumas dicas úteis em um artigo do Sitepoint (website). Então, eu dei algumas permissões para o pai das minhas pastas do site de desenvolvimento, sendo chgrp -R www-data / var / www e fiz chmod -Rg + rw / var / www e também chmod g + s / var / www Este último chmod é o melhor! Adicionar o SGID (g + s) significa que quaisquer novos diretórios dev adicionados em / var / www serão automaticamente propriedade do www-data colocando mais automação nesta configuração de desenvolvimento
  • Eu recarreguei o php5-fpm e o Nginx cada vez que fiz alterações na configuração, e ambos estão funcionando bem.
  • Atualizar. Agora que a nova configuração está rodando rápido cgi, eu também já fiz, sudo apt-get php5-cgi spawn-fcgi
  • adicionei usuários josh (meu principal usuário), raiz e usuário www-data (Nginx) ao grupo chamado www-data
  • Para php5-fpm eu fiz o check-in em /etc/php5/fpm/pool.d/www.conf e vi que a instalação padrão tinha me dado esses atributos de usuário, user = www-data group = www-data, e estes escutam atributos listen.owner = www-data listen.group = www-data
  • Eu fiz o seguinte link simbólico: ln -s /etc/nginx/sites-available/local_dev.conf /etc/nginx/sites-enabled/

Eu segui um tutorial de instalação do Nginx dev by goodrobot.com, que não estava usando PHP; Então, eu combinei as partes principais desse tutorial com parte de um tutorial de ambiente PHP não-dev de Christophe em scaleyourcode.com

Isso é o que eu criei para os blocos de servidores no arquivo conf em /etc/nginx/sites-available (da combinação de idéias dos dois tutoriais). Novamente, o problema é que minha página index.php não está sendo exibida. (Se eu adicionar um arquivo index.html ao índice abaixo no bloco do servidor e, em seguida, servir um arquivo index.html, ele funcionará bem) .Update. Eu desfeito esse arquivo Frankenconfig que eu fiz e tenho um novo e os detalhes logo abaixo. Tudo agora é bom!

ATUALIZAR, TRABALHANDO! Eu publiquei um novo arquivo de configuração uma versão ligeiramente modificada de um que o usuário denji (no Github) colocou no Github intitulado 'dnsmasq'. Essa versão também tem blocos para o PHPmyadmin, que eu não preciso. Eu também adicionei fastcgi_param SCRIPT_FILENAME $ document_root / $ fastcgi_script_name; para o local ~ bloco .php porque antes disso não iria funcionar na minha configuração. Eu também removi o cifrão que estava na frente da localização ~ .php (sinal de cifrão estava aqui, não é bom) para que quando eu usar qualquer um dos itens abaixo em um servidor real ao vivo, o sinal $ não se tornará um passe livre para hackers. / p>

  server {
  index index.php;
  set $basepath "/var/www";

  set $domain $host;

  # check one name domain for simple application
  if ($domain ~ "^(.[^.]*)\.dev$") {
    set $domain $1;
    set $rootpath "${domain}";
    set $servername "${domain}.dev";
  }

  # check multi name domain to multi application
  if ($domain ~ "^(.*)\.(.[^.]*)\.dev$") {
    set $subdomain $1;
    set $domain $2;
    set $rootpath "${domain}/${subdomain}/www/";
    set $servername "${subdomain}.${domain}.dev";
  }

  server_name $servername;

  access_log "/var/log/nginx/server.${servername}.access.log";
  error_log "/var/log/nginx/server.dev.error.log";

  root $basepath/$rootpath;

  # check file exist and send request sting to index.php 
  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  # allow php only in root index.php
  #location ~ "^/index\.php" {
  # allow execute all php files
  location ~ \.php {
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;   
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
  }

    location ~ /\.ht {
    deny all;
  }

  # disallow access to git configs path
    location ~ /\.git {
    deny all;
  }

  }
    
por Usefulness 02.10.2015 / 11:06

0 respostas