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

Jon*_*nas 9 server installation php apt nginx

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

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

但是我如何为这些设置 PHP?我可以使用apt-get install还是必须下载源代码并编译它?我更愿意使用apt-get.

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

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


更新

现在我已经安装了一个新的Ubuntu服务器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;
    }

}
Run Code Online (Sandbox Code Playgroud)

Pet*_*mit 8

从 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;
  }
}
Run Code Online (Sandbox Code Playgroud)