PHP'yi nginx'te etkinleştirmenin en kolay yolu nedir?


130

PHP'yi Ubuntu 12.04'te nginx'te etkinleştirmenin en kolay yolu nedir?

En iyi çözüm, minimum çalışma gerektiren, ideal olarak sadece bir paket kurulumudur :)

Yanıtlar:


141

Aşağıdaki yöntem Ubuntu 12.04'te hızlı bir şekilde başlamanızı sağlar:

Bağımlılıkları yükleyin:

sudo apt-get install php5-common php5-cli php5-fpm

Nginx yükleyin:

sudo apt-get install nginx

Nginx'i başlat:

sudo service nginx start

Çalıştığını test edin (bkz. "Nginx'e Hoşgeldiniz!")

sudo service nginx stop

Nginx site yapılandırmanızda (/ etc / nginx / sites kullanılabilir / varsayılan), sunucudaki satırı değiştirin {} bölümü

index index.html index.htmiçin index index.php index.html index.htm.

{} Bölümündeki sunucudaki satırların kaldırılması

listen Her ikisi de ipv4 / ipv6 için.

"Location ~ .php {" yazdığı yere gidin ve uncomment lines, şöyle görünecek şekilde:

location ~ \.php$ {
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi_params;
}

sudo service php5-fpm restart sudo service nginx restart

Varsayılan web kökünüz / usr / share / nginx / www (yapılandırma dosyası başına) konumunda bulunur. (Görmekroot /usr/share/nginx/www;

(Not: Ubuntu 12.10 veya daha yeni için, değiştirmeniz gerekir fastcgi_pass 127.0.0.1:9000;çalışması için bu satırı: fastcgi_pass unix:/var/run/php5-fpm.sock;)


1
Geç bir not olarak, 12.04'ü, 12.10+ gibi bir UNIX soketini kullanarak /etc/php5/fpm/pool.d/www.confdinleme satırını düzenleyip değiştirip listen = /var/run/php5-fpm.sockardından @ThomasW satırını kullanarak yapabilirsiniz. bahsettiniz.
Powerlord

@Powerlord NGINX varsayılan kurulumunda her iki satır vardır ve PHP'nin çalışma biçimini değiştirmek yerine sadece NGINX'teki yapılandırma satırını daha hızlı değiştirebilir ve tüm işler değiştirilebilse, ikisi arasındaki farkı açıklar.
Thomas Ward

@ThomasW. NGINX varsayılan ayarları kurulumunun her iki satırdaki açıklaması da 12.04'te yanlıştır. php5-fpm, php5-fpm'nin 12.04'te nasıl yapılandırıldığından dolayı ilk yöntemi gerektirir. İkinci yönteme 12.10'a kadar değişiklik olmadı. Php5-fpm'nin belgelenen şekilde nginx ile çalışmasını sağlamak için, önceki mesajımda belirtildiği gibi fpm'nin www.conf değerini değiştirmelisiniz.
Powerlord

@ Powerlord Haklısın, varsayılan yapılandırma dosyasındaki belgeleri değiştirerek çözülebilecek bir problem. Bu konuda yarattığım hatayı görün . Henüz bir hata düzeltme önerme şansım olmadı.
Thomas Ward

1
Bu benim için ubuntu 14.04 tarihinde çalışmıyor. nginx "Bir hata oluştu, aradığınız sayfa bulunamadı", ne yapmalı?
user3459110

46

EDIT: Matt Browne'un belirttiği gibi , bu son
yazının ilgisini çekebilir: Ubuntu 16.04'te Linux, Nginx, MySQL, PHP (LEMP yığını) Nasıl Kurulur


Papashou cevabı eski Ubuntu 12.04 üzerinde doğrudur. Ubuntu 12.10’dan bu yana, yapılandırma biraz farklı. İşte yaptığım şey:

Yüklemek

sudo apt-get install nginx php5-fpm

PHP'yi etkinleştir

Yapılandırma dosyasında aşağıdaki satırları kaldırın /etc/nginx/sites-available/default

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

#   # With php5-cgi alone:
#   fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

Başlat (veya yeniden başlat)

sudo service php5-fpm restart
sudo service nginx restart

Ölçek nginx

Bu bağlantıyı açma http://localhostgöstermesi gerekir "nginx hoş geldiniz!"

Ölçek php

Bir php dosyası oluşturun:

  • Hedef yolun çıktısı

    awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default
    

    Örneğin /usr/share/nginx/www

  • Şununla bir info.phpdosya yaz :

    echo '<?php phpinfo(); ?>' | \
        sudo tee /usr/share/nginx/www/info.php
    

    veya tek astar olarak

    echo '<?php phpinfo(); ?>' | \
        sudo tee "$(awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default)/info.php"
    

Açılış http://localhost/info.phpPHP bilgi sayfasını göstermelidir.


3
Bunun için teşekkürler. İşte başka bir faydalı link: digitalocean.com/community/tutorials/… . Ayrıca, MySQL'i kurmak istiyorsanız, çalıştırmanız gerekeceğini apt-get install php5-mysql(MySQL'in kendisini yüklemeye ek olarak) de unutmayın.
Matt Browne

1
Ubuntu 16 için yukarıdaki makalenin yeni bir sürümü var: digitalocean.com/community/tutorials/…
Matt Browne
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.