如何使用 Nginx、APC 和 PostgreSQL 设置 PHP?

如何使用 Nginx、APC 和 PostgreSQL 设置 PHP?

我使用 Ubuntu Server 10.10,我想设置一个 Web 服务器环境NginX、PHP 5.3.3、PostgreSQL 以及最好是 APC 和 PHP Suhosin。

我已经设置了 PostgreSQLapt-get install postgresql和 Nginx apt-get install nginx

但是我该如何为这些设置 PHP?我可以使用 来执行此操作apt-get install吗?还是必须下载源代码并进行编译?我更喜欢使用 来执行此操作apt-get

我想使用PHP-FPM对于 Nginx。我在网上找到的大多数教程都很旧,并且编译了 PHP,但不建议将其用于生产服务器。

如何最轻松地使用 Nginx、APC 和 PostgreSQL 设置 PHP?或者至少是 PHP-FPM + Nginx?


更新

我现在已经安装了全新的 Ubuntu Server 10.10,并执行了命令彼得建议添加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;
    }

}

答案1

从 Ubuntu 10.10 开始,使用新的 php5-fpm 包就变得很简单

以下软件包可以满足您的所有需求

  • nginx- 网络服务器
  • php5-fpm- 快速 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 标准也希望使用端口 9000,就像 php5-fpm 一样。因此,如果您使用 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;
  }
}

相关内容