web-dev-qa-db-ja.com

Nginx、APC、PostgreSQLでPHPを設定する方法は?

Ubuntu Server 10.10を使用しており、 NginX 、PHP 5.3.3、PostgreSQL、できればAPCおよびPHP Suhosinを使用してWebサーバー環境をセットアップしたい。

apt-get install postgresqlでPostgreSQLを、apt-get install nginxでNginxを既に設定しています。

しかし、これらのPHPを設定するにはどうすればよいですか? apt-get installを使用してこれを実行できますか、ソースをダウンロードしてコンパイルする必要がありますか?私はapt-getを使用してそれをしたいと思います。

Nginxには PHP-FPM を使用したいと思います。私がインターネットで見つけたほとんどのチュートリアルは古く、PHPをコンパイルしますが、実稼働サーバーにはお勧めしません。

Nginx、APC、PostgreSQLでPHPを最も簡単に設定するにはどうすればよいですか?または少なくともPHP-FPM + Nginx?


UPDATE

新しいUbuntu Server 10.10をインストールし、コマンド Peterが提案 を追加してphp5-suhosinを実行しました。 Nginxが正常に動作した後、生成された構成ファイルを次のように編集します。新しい設定ファイルをリロードした後、Nginxはindex.htmlファイルを使用して引き続き正常に動作しますが、index.phpファイルを追加すると動作しなくなります。これは、PHP-FPM、APC、またはPHP関連の何かに関係していると思います。ただし、PHP-FPMの構成ファイルでもあります。

私が使用しているNginxの構成ファイルは次のとおりです。そのほとんどはデフォルトで生成されます。コメントをスキップしました。

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

}
9
Jonas

Ubuntu 10.10以降では、これは新しいphp5-fpmパッケージでは簡単です

次のパッケージは必要なすべてを行います

  • nginx-ウェブサーバー
  • php5-fpm-Fast-CGI phpサーバー
  • php-apc-phpのAPCパッケージ
  • php5-pgsql-PHP用のPostgreSQLモジュール
  • postgresql-PostgreSQLデータベースサーバー

すべて一緒にSudo apt-get install nginx php5-fpm php-apc php5-pgsql postgresql

また、Apache2がインストールされているかどうかを確認することをお勧めします。その場合は、Sudo apt-get remove Apache2で削除して、Apacheとnginxがポート80を奪い合うのを防ぎます。

また、xdebug標準では、php5-fpmと同様にポート9000を使用することも必要です。したがって、xdebugを使用する場合、そのポートをたとえば9001に変更します

ボーナスとして、nginxの設定例(/ etc/nginx/sites-availableに配置し、/ etc/nginx/sites-enabledにシンボリックリンクします)

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;
  }
}
8
Peter Smit