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.