商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > nginx php php-fpm 配置,Nginx + PHP/PHP-FPM安装配置示例

nginx php php-fpm 配置,Nginx + PHP/PHP-FPM安装配置示例

  发布于2026-07-21 阅读(0)

扫一扫,手机访问

配置LNMP环境(Linux + Nginx + MySQL + PHP)是很多后端开发者都会遇到的场景。这里以CentOS系统为例,演示如何通过编译安装的方式,将Nginx和PHP-FPM搭建起来。整个过程不依赖RPM包,适合需要定制化组件或对性能有更高要求的场景。下面直接上步骤。

(1) 编译安装Nginx

Nginx的rewrite模块依赖pcre,gzip模块依赖zlib,SSL模块依赖openssl。所以先通过yum把这三个开发库装好:

yum install pcre-devel zlib-devel openssl-devel -y

然后下载Nginx源码并编译。这里以1.6.2版本为例,你可以根据需要更换版本号:

wget http://nginx.org/download/nginx-1.6.2.tar.gz
tar -zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2 && ./configure \
  --with-http_ssl_module \
  --with-http_stub_status_module \
  --with-http_gzip_static_module \
  --with-http_gunzip_module
make
make install

配置时明确开启了SSL、状态页、静态gzip以及gunzip解压支持,这些在生产环境中都很实用。

(2) 安装PHP及PHP-FPM

PHP-FPM是PHP的FastCGI进程管理器,早期需要单独打补丁,现在PHP 5.4+已经内置了,不过编译时仍需要显式开启。从PHP官网下载源码:

wget http://cn2.php.net/get/php-5.5.22.tar.gz/from/this/mirror -O php-5.5.22.tar.gz
tar -zxvf php-5.5.22.tar.gz
cd php-5.5.22 && ./configure --enable-fpm
make && make install

如果编译过程中报错提示缺少xml2相关,请先安装libxml2和libxml2-devel:

yum install libxml2 libxml2-devel -y

注意:这里的PHP版本是5.5.22,实际项目中建议使用官方维护的最新稳定版。

(3) 配置PHP-FPM

PHP-FPM安装完成后,默认的配置文件模板存放在/usr/local/etc目录下。需要复制一份作为实际配置:

cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf

默认情况下,PHP-FPM会监听127.0.0.1:9000,这就是Nginx转发请求时要指向的地址。如果端口被占用,可以在配置文件中修改listen指令。

(4) 配置Nginx支持PHP

编辑Nginx的站点配置文件(通常是/usr/local/nginx/conf/nginx.conf),在server块中添加一个location,用于处理所有以.php结尾的请求:

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}

这里的关键是SCRIPT_FILENAME参数,它告诉PHP-FPM要执行的脚本路径。如果路径不对,PHP文件会返回空白或404。Nginx的FastCGI模块详细参数可以参考官方文档:http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html

(5) 启动Nginx和PHP-FPM

一切就绪后,依次启动PHP-FPM和Nginx:

php-fpm && /usr/local/nginx/sbin/nginx

启动后可以通过ps aux | grep php-fpmps aux | grep nginx确认进程是否正常运行。如果一切正常,在/usr/local/nginx/html下创建一个简单的index.php文件写入,然后访问服务器IP,就能看到PHP的信息页面了。

以上就是编译安装Nginx和PHP-FPM的核心流程。实际部署时,可能还需要考虑MySQL的安装、PHP扩展的加载、防火墙端口开放等问题,但基础框架已经搭好了。

本文转载于:https://blog.csdn.net/weixin_39723899/article/details/115135211 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。
  • using namespace 使用中遇到的问题怎么解决 正版软件
    using namespace 使用中遇到的问题怎么解决
    命名空间的基本概念与常见引入问题在C++等编程语言中,命名空间(namespace)是一种将代码标识符(如变量、函数、类名)封装在特定名称下的机制,其主要目的是避免命名冲突,尤其是在大型项目或使用多个第三方库时。使用“using namespace”指令可以将指定命名空间中的所有名称引入当前作用域,
    10天前 0
  • c语言函数递归 实操经验总结:这些技巧很实用 正版软件
    c语言函数递归 实操经验总结:这些技巧很实用
    理解递归的基本原理在C语言中,递归是一种函数调用自身的编程技术。要掌握它,首先需要理解其核心思想:将一个复杂的大问题,分解为一个或几个与原问题相似但规模更小的子问题,直到子问题足够简单,可以直接求解。这个过程通常包含两个关键部分:递归出口和递归体。递归出口定义了问题何时不再继续分解,即最简单、可直接
    10天前 0
  • c语言函数递归 怎么选?常见方案对比分析 正版软件
    c语言函数递归 怎么选?常见方案对比分析
    递归函数的基本概念与适用场景在C语言编程中,递归是一种函数调用自身的编程技巧。它并非适用于所有问题,但在处理某些具有自相似结构的问题时,能提供极其清晰和优雅的解决方案。递归的核心思想是将一个大规模问题分解为一个或多个同类型但规模更小的子问题,直到子问题简单到可以直接求解。典型的适用场景包括树形结构的
    10天前 0
  • Objective-C 内存管理入门:从 alloc 到 dealloc 的生命周期详解 正版软件
    Objective-C 内存管理入门:从 alloc 到 dealloc 的生命周期详解
    理解内存管理的基石在Objective-C的编程世界中,内存管理是开发者必须掌握的核心技能之一。它直接关系到应用的性能、稳定性与资源利用效率。与一些采用自动垃圾回收机制的语言不同,Objective-C在很长一段时间里,依赖一套基于引用计数的、需要开发者部分介入的管理规则。这套规则的核心思想是明确的
    10天前 0
  • 如何正确使用 dealloc 以避免 iOS 应用中的内存泄漏 正版软件
    如何正确使用 dealloc 以避免 iOS 应用中的内存泄漏
    理解 dealloc 的角色与时机在 iOS 应用开发中,内存管理是保障应用性能与稳定性的基石。dealloc 方法是 Objective-C 中对象生命周期结束时的关键回调,它标志着对象即将被系统回收内存。正确理解其触发时机至关重要:当一个对象的引用计数降为零时,运行时系统会自动调用该对象的 de
    10天前 0