CentOS环境下搭建Nginx与PHP环境详细配置指南

在现代Web开发中,LNMP(Linux、Nginx、MySQL、PHP)环境因其高性能和稳定性而广受欢迎。本文将详细讲解如何在CentOS系统上手动搭建Nginx和PHP环境,帮助你构建一个高效的Web服务器。

一、准备工作

    系统更新 在开始之前,确保系统是最新的。打开终端,执行以下命令:

    sudo yum update -y
    

    安装必要的工具和库 安装编译工具和依赖库:

    sudo yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel
    

二、安装Nginx

    下载Nginx源码 访问Nginx官网下载最新版本的源码,或者使用wget命令:

    wget http://nginx.org/download/nginx-1.18.0.tar.gz
    

    解压并进入源码目录

    tar -zxvf nginx-1.18.0.tar.gz
    cd nginx-1.18.0
    

    配置和编译

    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    make
    sudo make install
    

    启动Nginx 进入Nginx安装目录并启动:

    cd /usr/local/nginx
    sudo ./sbin/nginx
    

三、安装PHP

    下载PHP源码 访问PHP官网下载最新版本的源码,或者使用wget命令:

    wget http://www.php.net/get/php-7.4.10.tar.gz/from/this/mirror
    

    解压并进入源码目录

    tar -zxvf php-7.4.10.tar.gz
    cd php-7.4.10
    

    配置和编译

    ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-pear --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-zlib --with-xmlrpc --with-xsl --with-mhash --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-gettext --with-mcrypt --with-zip
    make
    sudo make install
    

    配置PHP-FPM 复制配置文件:

    sudo cp php.ini-production /usr/local/php/etc/php.ini
    sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    

    启动PHP-FPM

    sudo /usr/local/php/sbin/php-fpm
    

四、配置Nginx支持PHP

    编辑Nginx配置文件 打开Nginx配置文件:

    sudo vi /usr/local/nginx/conf/nginx.conf
    

    修改配置server块中添加以下配置:

    location ~ \.php$ {
       root           html;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/$fastcgi_script_name;
       include        fastcgi_params;
    }
    

    重启Nginx

    sudo /usr/local/nginx/sbin/nginx -s reload
    

五、测试LNMP环境

    创建测试文件 在Nginx的html目录下创建一个info.php文件:

    echo "<?php phpinfo(); ?>" | sudo tee /usr/local/nginx/html/info.php
    

六、常见问题及解决方案

    Nginx启动失败 检查/usr/local/nginx/logs/error.log文件,查看错误信息。

    PHP-FPM启动失败 检查/usr/local/php/var/log/php-fpm.log文件,查看错误信息。

    权限问题 确保Nginx和PHP-FPM运行的用户有足够的权限访问相关目录和文件。

七、安全性设置

    关闭不必要的端口 使用防火墙关闭不必要的端口,只开放80和443端口。

    设置强密码 确保所有服务(如MySQL)使用强密码。

    定期更新 定期更新系统和所有软件包,以防止安全漏洞。

八、总结

通过以上步骤,你已经在CentOS系统上成功搭建了Nginx和PHP环境。虽然手动搭建过程较为复杂,但能够让你更深入地理解各个组件的配置和运行机制。希望这篇指南对你有所帮助,祝你在Web开发的路上越走越远!