Nginx, APC ve PostgreSQL ile PHP nasıl kurulur?


9

Ubuntu Server 10.10 kullanıyorum ve NginX , PHP 5.3.3, PostgreSQL ve tercihen APC ve PHP Suhosin ile bir web sunucusu ortamı kurmak istiyorum .

Zaten PostgreSQL apt-get install postgresqlve Nginx ile kurdum apt-get install nginx.

Ama bunlar için PHP'yi nasıl ayarlarım? Bunu kullanarak yapabilir miyim apt-get installveya kaynakları indirmek ve derlemek zorunda mıyım? Bunu kullanarak yapmayı tercih ederim apt-get.

Nginx için PHP-FPM kullanmak isterdim . İnternette bulduğum öğreticilerin çoğu eski ve PHP'yi derliyor, ancak bu üretim sunucuları için önerilmez.

Nginx, APC ve PostgreSQL ile PHP'yi en kolay nasıl kurabilirim? veya en azından PHP-FPM + Nginx?


GÜNCELLEME

Şimdi bir taze Ubuntu Sunucu 10.10 yüklü ve komut idam Peter önerdi ile php5-suhosinekledi. Bundan sonra Nginx iyi çalışıyor, sonra oluşturulan konfigürasyon dosyasını aşağıdaki gibi düzenlerim. Yeni yapılandırma dosyasını yeniden yükledikten sonra, Nginx bir index.htmldosya kullanarak hala iyi çalışıyor , ancak bir index.phpdosya eklediğimde çalışmayı durduruyor. Bunun PHP-FPM, APC veya PHP ile ilgili bir şey ile ilgisi olduğunu tahmin ediyorum. Ancak PHP-FPM için de yapılandırma dosyası olabilir.

İşte kullandığım Nginx için yapılandırma dosyası, çoğu varsayılan olarak oluşturulur. Yorumları atladım.

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;
    }

}

Lütfen bunu bir cevap verin ve kabul edin, böylece her ikisine birlikte birleşik çözüm olarak oy verebiliriz.
Jorge Castro

@Jorge: Bu bir cevap değil, sadece yapılandırma dosyamı çalışmıyor . Peter Smit, yorumlarla birlikte doğru çözümü yayınladı ve ben bunu bir cevap olarak kabul ettim.
Jonas

Ah benim hatam, devam et!
Jorge Castro

Yanıtlar:


8

Ubuntu 10.10'dan itibaren bu yeni php5-fpm paketi ile önemsiz

Aşağıdaki paketler ihtiyacınız olan her şeyi yapar

  • nginx - web sunucusu
  • php5-fpm - Hızlı CGI php sunucusu
  • php-apc - Php için APC paketi
  • php5-pgsql - PHP için PostgreSQL modülü
  • postgresql - PostgreSQL veritabanı sunucusu

Hep birlikte sudo apt-get install nginx php5-fpm php-apc php5-pgsql postgresql

Ayrıca apache2'nin kurulu olup olmadığını kontrol etmenizi öneririm. Öyleyse, sudo apt-get remove apache2apache ve nginx'in bağlantı noktası 80 için rekabet etmesini önlemek için bir ile silin .

Ayrıca xdebug standardının da php5-fpm gibi 9000 bağlantı noktasını kullanmak istediğini unutmayın. Eğer xdebug kullanıyorsanız, o portu örneğin 9001 olarak değiştirin

Ve bonus olarak örnek bir nginx yapılandırması (/ etc / nginx / sites-available dizinine yerleştirin ve / etc / nginx / sites-active dizinine iliştirin)

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;
  }
}

Bunu şimdi yaptım ve basit bir test.phpdosya oluşturdum , ama çalışmıyor. Tarayıcım "bozuk bağlantı" diyor ve Nginx hata günlüğünde yalnızca "favicon.ico" ile ilgili bir giriş var. Sanırım yapılandırma dosyamda bir şey var, ama gerçekten hiçbir fikrim yok ve hatayı bulmak oldukça zor.
Jonas

@Jonas Nginx ve php5-fpm henüz başlamamış olabilir. Bu durumda sudo service nginx startve sudo service php5-fpm startişi yapmalı. Elbette, verebilecekleri herhangi bir hatayı arayın.
Peter Smit

@Jonas Hata günlüğünüz favicon.ico içermemelidir, en azından empty_gif bölümünü çözümümden kopyaladıysanız içermemelidir. Ayrıca, değişiklikten sonra her zaman yeniden başlatmayı unutmayın ( sudo service nginx reload). Her şey başarısız olursa, belki yapılandırma dosyanızı sorunuza ekleyebilirsiniz.
Peter Smit

Soruyu Nginx için yapılandırma dosyamda güncelledim, PHP kurulumu ile ilgili bir sorun var gibi görünüyor. Favicon ile ilgili satırlarınızı yapılandırma dosyama ekledikten sonra artık Nginx hata günlüğünde herhangi bir hata almıyorum. Nginx .htmldosyalarla çalışır, ancak dosyalar için çalışmaz .php.
Jonas

1
@Jonas 'Temiz' yapılandırma dosyaları yapmama yardımcı olan bir sayfa wiki.nginx.org/Pitfalls , ancak anlamadığınız değişiklikleri uygulama hakkındaki uyarıyı yok saymayın .
Peter Smit
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.