插件窝 干货文章 如何在LNMP中配置PHP环境

如何在LNMP中配置PHP环境

PHP 配置 fpm 文件 410    来源:    2025-05-04

LNMP环境中PHP配置指南

LNMP (Linux + Nginx + MySQL + PHP) 是一种常见的Web服务器架构组合。以下是配置PHP环境的详细步骤:

1. 安装PHP

对于Ubuntu/Debian系统:

sudo apt update
sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip

对于CentOS/RHEL系统:

sudo yum install epel-release
sudo yum install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip

2. 配置PHP-FPM

主要配置文件位置:

  • /etc/php/{version}/fpm/php.ini (主配置文件)
  • /etc/php/{version}/fpm/pool.d/www.conf (进程池配置)

常用配置修改:

; 在php.ini中
max_execution_time = 30
memory_limit = 128M
post_max_size = 8M
upload_max_filesize = 2M
date.timezone = Asia/Shanghai

进程池配置调整(www.conf):

listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10

3. 配置Nginx与PHP-FPM集成

在Nginx的server配置中添加PHP处理:

server {
    listen 80;
    server_name example.com;
    root /var/www/html;
    index index.php index.html index.htm;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

4. 常用管理命令

# 启动PHP-FPM
sudo systemctl start php7.4-fpm

# 设置开机启动
sudo systemctl enable php7.4-fpm

# 重启PHP-FPM
sudo systemctl restart php7.4-fpm

# 检查状态
sudo systemctl status php7.4-fpm

5. 验证安装

创建测试文件 /var/www/html/info.php

<?php phpinfo(); ?>

访问 http://your-server-ip/info.php 应该能看到PHP信息页面。

6. 安全建议

  1. 生产环境中应删除或限制访问phpinfo页面
  2. 禁用危险函数: ini disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
  3. 限制PHP文件访问目录: ini open_basedir = /var/www/html:/tmp

7. 常见问题解决

问题1:502 Bad Gateway - 检查PHP-FPM是否运行 - 检查Nginx配置中的fastcgi_pass路径是否正确 - 检查sock文件的权限

问题2:PHP脚本不执行 - 确保Nginx配置正确处理.php文件 - 检查文件权限(www-data用户需要有读取权限)

问题3:内存不足 - 调整php.ini中的memory_limit值 - 优化PHP-FPM进程池配置

按照以上步骤配置后,您的LNMP环境中的PHP应该可以正常工作。根据实际应用需求,可能还需要安装额外的PHP扩展模块。