配置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删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。