无法让Nginx + PHP-FPM +编译PHP工作

时间:2016-01-13 23:34:47

标签: php nginx

我是一名PHP开发人员已有3年了,我终于把它作为业余爱好,在家里创建了一个Ubuntu 14.04虚拟机,用于开发个人项目和研究新事物。
我确实只是通过apt-get install一些软件包来配置Nginx + PHP + PHP-FPM环境,而不是对配置进行一些更改,确定无效......

但我想更进一步!我想编译一个特定的PHP版本,而不是apt-get的php5-fpm附带的那个...尝试过它让我头疼!由于某种原因,无法使编译的PHP与PHP-FPM一起使用...
我确实按照教程和配置环境但我真的不知道我正在做什么,所以现在我正在破坏我的VM并创建一个新的仍然使用Ubuntu 14.04,但这次我想把事情做好!

这是我想要的配置:NGINX + PHP-FPM + PHP 5.6.16(我将使用PostgreSQL作为DB,但我可以处理它)

除非你教我一些更好的东西,否则我会假装跟随步骤:

  • 从apt-get install;
  • 安装 nginx
  • 我将使用以下configure.sh脚本编译PHP 5.6.16:
#!/bin/bash

./configure \
    --prefix=/opt/php
    --enable-intl \
    --enable-opcache \
    --enable-mbstring \
    --enable-bcmath \
    --enable-soap \
    --enable-zip \
    --enable-pdo \
    --enable-ftp \
    --enable-cli \
    --enable-inline-optimization \
    --enable-exif \
    --enable-gd-native-ttf \
    --enable-libxml \
    --enable-sockets \
    --enable-calendar \
    --enable-wddx \
    --enable-pcntl \
    --enable-pthreads \
    --with-config-file-path=/etc/php/ \
    --with-config-file-scan-dir=/etc/php/conf.d/ \
    --with-curl \
    --with-pdo-mysql \
    --with-pdo-pgsql \
    --with-pdo-sqlite \
    --with-mcrypt \
    --with-pear \
    --with-openssl \
    --with-iconv \
    --with-mysql \
    --with-mysqli \
    --with-pgsql \
    --with-mssql \
    --with-zlib \
    --with-gd \
    --with-jpeg-dir=/usr \
    --with-gettext \
    --with-xmlrpc \
    --with-xsl \
    --with-tidy \
    --with-pcre-regex \
    --with-mhash \
    --with-kerberos \
    --with-pspell \
    --with-bz2 \
    --with-ldap \
    --with-libdir=lib/i386-linux-gnu \
    --enable-fpm \
    --with-fpm-user=www-data \
    --with-fpm-group=www-data

现在我该怎么做才能使PHP-FPM工作?!

我在php.net上看到,在编译PHP时启用PHP-FPM你只需要使用--enable-fpm,但仍然有些怀疑......

  • 实际上安装 PHP-FPM还是启用呢?
  • 如果只是启用,我还需要apt-get install php5-fpm吗?

请告诉我一些知识!

2 个答案:

答案 0 :(得分:1)

从PHP 5.3.3开始,php-fpm随PHP一起发布

  1. --enable-fpm只需启用它,因为它是内置的sapi模块
  2. 您无需再次单独安装
  3. $YOUR_PHP_INSTALL_DIR/sbin/php-fpm是FPM可执行文件,只需运行它,默认配置是监听127.0.0.1:9000

答案 1 :(得分:1)

  1. --enable-fpm将安装并启用php-fpm
  2. 如果您编译成功,则不需要apt-get install php5-fpm
  3. 但我猜你完成编译时不能使用php-fpm和nginx,因为默认情况下他们不会自己配置。

    php-fpm是一个守护进程,当一个请求发送到php-fpm时,它将用php处理器响应,而php-fpm监听端口使用TCP / IP,nginx通过fastcgi访问php-fpm,这意味着你可以使用多个版本的php,并使用一个nginx服务器访问它们。

    这是我的配置文件,希望它可以帮到你

    https://github.com/liujin834/php7-configure/tree/master/etc

    你可以启动nginx和php-fpm使用配置文件

    nginx -c /opt/server/etc/nginx/nginx.conf
    php-fpm -y /opt/server/etc/php/php-fpm.conf -c /opt/server/etc/php/php.ini