web-dev-qa-db-ja.com

nginxでPHPを有効にする最も簡単な方法は何ですか?

Ubuntu 12.04のnginxでPHPを有効にする最も簡単な方法は何ですか?

最適なソリューションは、最小限の作業、理想的にはパッケージのインストールのみを要求するものです:)

130
sorin

次の方法により、Ubuntu 12.04で迅速に開始できます。

依存関係をインストールします。

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

Nginxをインストールします。

Sudo apt-get install nginx

Nginxを開始します。

Sudo service nginx start

動作していることをテストします(「Welcome to nginx!」を参照)

Sudo service nginx stop

Nginxサイト構成(/ etc/nginx/sites-available/default)で、サーバーの{}セクションの行を変更します

index index.html index.htmからindex index.php index.html index.htmへ。

サーバー{}セクションの行のコメントを解除します

listen ipv4/ipv6の両方。

「location〜.php {」と表示されている行までスクロールし、次のように行をコメント解除します。

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 restartSudo service nginx restart

デフォルトのWebルートは/ usr/share/nginx/wwwにあります(構成ファイルごと)。 (root /usr/share/nginx/www;を参照

(注:Ubuntu 12.10以降では、fastcgi_pass 127.0.0.1:9000;行を次のように置き換えて機能させる必要があります:fastcgi_pass unix:/var/run/php5-fpm.sock;

141
papashou

EDIT:Matt Browne が指摘したように、この最近の投稿に興味があるかもしれません:
Linux、Nginx、MySQL、PHP(LEMPスタック)をUbuntu 16.04にインストールする方法


papashou's answer は、古いUbuntu 12.04では正しいです。 Ubuntu 12.10以降、構成は少し異なります。ここに私がやったことがあります:

インストール

Sudo apt-get install nginx php5-fpm

PHPを有効にする

構成ファイル/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;
}

Start(または再起動)

Sudo service php5-fpm restart
Sudo service nginx restart

テストnginx

このリンクを開くとhttp://localhostが表示されます "Welcome to nginx!"

テストphp

PHPファイルを作成します。

  • ターゲットパスは、

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

    例えば/usr/share/nginx/www

  • info.phpファイルを次のように記述します。

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

    またはワンライナーとして

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

http://localhost/info.phpを開くと、PHP情報ページが表示されます。

46
olibre