Unix 系统下的 Nginx 1.4.x

Unix 系统下的 Nginx 1.4.x

本文档包括使用 PHP-FPM 为 Nginx 1.4.x HTTP 服务器安装和配置 PHP 的说明和提示。

本指南假定您已经从源代码成功构建 Nginx,并且其二进制文件和配置文件都位于 /usr/local/nginx。 如果您使用其他方式获取的 Nginx,请参考» Nginx Wiki 并对照本文档完成安装。

本文档仅包含 Nginx 服务器的基本配置,它将通过 80 端口提供 PHP 应用的处理能力。 如果您需要超出本文档范围的安装配置指导,建议您查阅 Nginx 和 PHP-FPM 的文档。

需要注意的是,本文档一律使用 ‘x‘ 来表示版本号,请根据实际情况将 ‘x‘ 替换为对应的版本号。

  1. 建议您访问 Nginx Wiki » 安装 页面以获取并在您的系统上安装 Nginx。
  2. 获取并解压 PHP 源代码:
    tar zxf php-x.x.x
    
  3. 配置并构建 PHP。在此步骤您可以使用很多选项自定义 PHP,例如启用某些扩展等。 运行 ./configure --help 命令来获得完整的可用选项清单。 在本示例中,我们仅进行包含 PHP-FPM 和 MySQL 支持的简单配置。
    cd ../php-x.x.x
    ./configure --enable-fpm --with-mysql
    make
    sudo make install
    
  4. 创建配置文件,并将其复制到正确的位置。
    cp php.ini-development /usr/local/php/php.ini
    cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
    cp sapi/fpm/php-fpm /usr/local/bin
    
  5. 需要着重提醒的是,如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击。

    将 php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0 。

    打开 php.ini:

    vim /usr/local/php/php.ini
    

    定位到 cgi.fix_pathinfo= 并将其修改为如下所示:

    cgi.fix_pathinfo=0
    
  6. 在启动服务之前,需要修改 php-fpm.conf 配置文件,确保 php-fpm 模块使用 www-data 用户和 www-data 用户组的身份运行。
    vim /usr/local/etc/php-fpm.conf
    

    找到以下内容并修改:

    ; Unix user/group of processes
    ; Note: The user is mandatory. If the group is not set, the default user‘s group
    ;       will be used.
    user = www-data
    group = www-data
    

    然后启动 php-fpm 服务:

    /usr/local/bin/php-fpm
    

    本文档未涵盖对 php-fpm 进行进一步配置的信息,如果您需要更多信息,请查阅相关文档。

  7. 配置 Nginx 使其支持 PHP 应用:
    vim /usr/local/nginx/conf/nginx.conf
    

    修改默认的 location 块,使其支持 .php 文件:

    location / {
        root   html;
        index  index.php index.html index.htm;
    }

    下一步配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:

    location ~* \.php$ {
        fastcgi_index   index.php;
        fastcgi_pass    127.0.0.1:9000;
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
    }

    重启 Nginx。

    sudo /usr/local/nginx/sbin/nginx -s stop
    sudo /usr/local/nginx/sbin/nginx
    
  8. 创建测试文件。
    rm /usr/local/nginx/html/index.html
    echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
    

    打开浏览器,访问 http://localhost,将会显示 phpinfo() 。

通过以上步骤的配置,Nginx 服务器现在可以以 SAPI 模块的方式支持 PHP 应用了。 当然,对于 Nginx 和 PHP 的配置,还有很多可用的选项, 请在对应的源代码目录执行 ./configure --help 来查阅更多配置选项。

时间: 2024-08-07 04:13:53

Unix 系统下的 Nginx 1.4.x的相关文章

2 Unix 系统下的 Nginx + PHP

Unix 系统下的 Nginx 'x' 来表示版本号,请根据实际情况将 'x' 替换为对应的版本号. 1 安装 Nginx. 2 PHP 源代码: tar zxf php-x.x.x 3 配置并构建 PHP.在此步骤您可以使用很多选项自定义 PHP,例如启用某些扩展等. 运行 ./configure --help 命令来获得完整的可用选项清单. 在本示例中,我们仅进行包含 PHP-FPM 和 MySQL 支持的简单配置. cd ../php-x.x.x ./configure --enable-

在UNIX系统下使用IO库程序

在上一篇文章中,我们已经可以在UNIX下编译一个hello world 程序了.今天介绍UNIX系统下,如何在程序中使用IO库. 主体流程分为以下三步:(代码参考的是:<<C++ Primer>>) 第一步:新建文件,并命名为“Progr1.cpp” 第二步:在Progr1.cpp中写好main函数,并使用cin ,cout 这两个IO库函数.代码如下 #include <iostream>//告诉编译器要使用 iostream 库.尖括号里的名字是一个.头文件.程序使

在UNIX系统下联合编译flex 和bison 程序

flex 是一款词法解析开程序,而bison是一款语法解析开源程序.他们配合使用,就可以完成某些计算机脚本语言的语言的解析,如sql.这次我主要介绍flex 和bison在unix系统下的编译. 先看flex 代码: %{ #include "fb1-5.tab.h"//该文件由bison后面的bison生成.主要定义了token 的值.和yylval变量 %} %% "+" { return ADD; }//匹配上“+”,就返回token ADD,yylval 此

MD5做为文件名。机器唯一码有电脑的CPU信息和MAC地址,这两个信息需要在linux或unix系统下才能获取吧。

可以采用机器(电脑)唯一码 + 上传IP + 当前时间戳 + GUID ( + 随机数),然后MD5做为文件名.机器唯一码有电脑的CPU信息和MAC地址,这两个信息需要在linux或unix系统下才能获取吧. //获取电脑的CPU信息function OnlyU(){        $a = '';        $b = array();        if(function_exists('exec')){                if(mailto:[email protected]

Linux(CentOS)系统下设置nginx开机自启动

Nginx 是一个很强大的高性能Web和反向代理服务器.下面介绍在linux下安装后,如何设置开机自启动.首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令:vi /etc/init.d/nginx 在脚本中添加如下命令:*************************************************************************************************************************

在Linux/Unix系统下用iconv命令处理文本文件中文乱码问题

iconv命令是运行于linux/unix平台的文件编码装换工具.当我们在linux/unix系统shell查看文本文件时,常常会发现文件的中文是乱码的,这是由于文本文件的编码与当前操作系统设置的编码不同而引起的,这时可以使用iconv进行编码转换,从而解决乱码问题. 解决文本文件乱码问题分3步:1.确定文件编码,2.确定iconv是否支持此编码的转换,3.确定Linux/Unix操作系统编码,4.转换文件编码为与系统编码一致:下面通过对test.txt文件来举例. 1. 使用file命令来确定

Linux系统下 安装nginx时出现提示的错误:configure: error: You need a C++ compiler for C++ support.

Linux下安装nginx #./configure--prefix=/usr/local/nginx 如果提示缺少pcre库, 则从http://www.pcre.org/ 下载 (wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.bz2) 假设解压在/usr/local/src/pcre-8.37 假设安装在/usr/local/pcre 配置: ./configure --prefix=/usr

UNIX 系统下退出 git commit 编辑器

如果是 Emacs 编辑器,输入 Ctrl X + Ctrl S(保存),再输入Ctrl X + Ctrl C(退出) 如果是VIM编辑器,输入 ESC + :wq UNIX 系统默认打开的是 Emacs 编辑器(大概?) 参考:https://stackoverflow.com/questions/13239368/git-how-to-close-commit-editor/13239389 原文地址:https://www.cnblogs.com/truelycloud/p/1035612

Linux系统下的Nginx的日志设置

(本文内所有centos的系统命令使用斜杠加粗的形式表示,方便各位阅读) 我想不少人跟我一样,在最开始接触Linux的时候,从心底是很反感的,明明放着windows那么图文并茂的系统不用,偏偏要搞这个黑乎乎的系统界面,总觉得有一种重返DOS的感觉.而且最重要的是,Windows的配置是在软件界面里,对着配置的地方点点鼠标或者选择一下地址栏等等,比较容易上手.而且windows的编辑界面都支持ctrl+z这个撤销命令,要是一些配置不小心被自己碰了,只要不关界面大不了就ctrl+z就能还原成原始的样