Como configurar o PHP com Nginx, APC e PostgreSQL?

9

Eu uso o Ubuntu Server 10.10 e gostaria de configurar um ambiente de servidor web com NginX , PHP 5.3.3, PostgreSQL e preferencialmente APC e PHP Suhosin.

Eu já configurei o PostgreSQL com apt-get install postgresql e Nginx com apt-get install nginx .

Mas como eu configuro o PHP para isso? Posso fazer isso usando apt-get install ou preciso baixar os fontes e compilá-los? Eu preferiria fazer isso usando apt-get .

Eu gostaria de usar o PHP-FPM para o Nginx. A maioria dos tutoriais encontrados na Internet é antiga e compila o PHP, mas isso não é recomendado para servidores de produção.

Como é mais fácil configurar o PHP com Nginx, APC e PostgreSQL? ou pelo menos PHP-FPM + Nginx?

UPDATE

Eu já instalei um novo Ubuntu Server 10.10 e executei o comando Peter sugeriu com php5-suhosin adicionado. Depois que o Nginx funcionar bem, edito o arquivo de confirmação gerado como abaixo. Depois de recarregar o novo arquivo de configuração, o Nginx ainda funciona bem usando um arquivo index.html , mas quando eu adiciono um arquivo index.php , ele para de funcionar. Eu acho que isso tem a ver com o PHP-FPM, o APC ou algo relacionado ao PHP. Mas pode ser o arquivo de configuração para o PHP-FPM também.

Aqui está o arquivo de configuração para o Nginx que estou usando, a maior parte é gerado por padrão. Eu pulei os comentários.

server {

    listen 80;
    listen [::]:80 default ipv6only=on;

    server_name localhost;

    access_log /var/log/nginx/localhost.access.log;

    location /favicon.ico {
        empty_gif;
    }

    location / {
        root     /var/www;
        index    index.php index.html index.htm;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

}
    
por Jonas 25.10.2010 / 14:26

1 resposta

8

A partir do Ubuntu 10.10 isto é trivial com o novo pacote php5-fpm

Os seguintes pacotes fazem tudo que você precisa

  • nginx - o servidor da web
  • php5-fpm - Servidor PHP Fast-CGI
  • php-apc - O pacote APC para php
  • php5-pgsql - Módulo PostgreSQL para PHP
  • postgresql - O servidor de banco de dados do PostgreSQL

Todos juntos sudo apt-get install nginx php5-fpm php-apc php5-pgsql postgresql

Sugiro também verificar se o apache2 está instalado. Em caso afirmativo, exclua-o com um sudo apt-get remove apache2 para evitar que o apache e o nginx concorram com a porta 80.

Note também que o padrão xdebug também deseja usar a porta 9000, assim como o php5-fpm. Então, se você usar xdebug, altere essa porta por exemplo para 9001

E como bônus um exemplo de configuração do nginx (coloque-o em / etc / nginx / sites-available e crie um link simbólico para / etc / nginx / sites-enabled)

server {
  listen 80;
  server_name site.com;
  access_log /data/log/www/site.com/access.log;
  error_log /data/log/www/site.com/error.log;

  root /data/www_data/site.com/public;
  index index.php;

  location = /favicon.ico {
    empty_gif;
    #return 204;
  }

  location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass 127.0.0.1:9000;
  }
}
    
por Peter Smit 25.10.2010 / 17:44