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


130

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

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

回答:


141

次の方法により、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.htmindex 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 restart sudo 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;


1
追記として、/etc/php5/fpm/pool.d/www.confリッスン行をlisten = /var/run/php5-fpm.sockに編集して変更し、@ ThomasWの行を使用して、12.04で12.10+のようにUNIXソケットを使用することができます。言及した。
パワーロード14年

@Powerlord NGINXのデフォルト設定には両方の行があり、2つの違いを説明しています。PHPの実行方法を変更する必要はなく、NGINXの設定行をより速く変更するだけで、すべてが機能します。
トーマス・ウォード

しゅう 12.04では、NGINXのデフォルト設定の両方の行の説明も間違っています。12.04でのphp5-fpmの構成方法により、php5-fpmには最初のメソッドが必要です。12.10まで2番目の方法に変更されませんでした。記載されているように、ngginxでphp5-fpmを機能させるには、前のメッセージで述べたようにfpmのwww.confを変更する必要があります。
パワーロード14年

@Powerlordおっしゃるとおり、これは問題です。デフォルトの設定ファイルのドキュメントを変更することで修正できます。この問題で作成したこのバグを参照してください。バグ修正を提案する機会がまだありません。
トーマスウォード

1
これは、ubuntu 14.04では機能しません。nginxは「エラーが発生しました。探しているページが見つかりません」と言っています。
user3459110 14

46

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


papashouの答えは古い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;
}

開始(または再起動)

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情報ページが表示されます。


3
これをありがとう。もう1つの役立つリンクは、digitalocean.com / community / tutorials / です。また、MySQLをインストールする場合は、apt-get install php5-mysql(MySQL自体のインストールに加えて)実行する必要があることに注意してください。
マットブラウン14年

1
Ubuntuの16のための上記の記事の新しいバージョンがあります:digitalocean.com/community/tutorials/...
マット・ブラウン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.