Linux怎么安装PHP运行环境_Linux下PHP-FPM安装与扩展加载【步骤】
发布时间 - 2025-12-27 00:00:00 点击率:次Linux下配置PHP-FPM需分三步:一、用apt/dnf安装PHP及FPM并验证服务状态;二、手动编译时配置--enable-fpm等参数并启动;三、通过pecl安装Redis、启用OPcache等扩展,最后用phpinfo()和Nginx验证。
如果您需要在Linux系统中搭建PHP运行环境,特别是配置PHP-FPM以支持Web服务(如Nginx),则需完成PHP核心安装、PHP-FPM启用及常用扩展加载。以下是具体操作步骤:
一、通过包管理器安装PHP及PHP-FPM
使用系统原生包管理器可快速部署稳定版本的PHP与PHP-FPM,适用于CentOS/RHEL或Ubuntu/Debian等主流发行版,避免手动编译带来的依赖复杂性。
1、对于Ubuntu 22.04或Debian 12:
执行 sudo apt update && sudo apt install php-fpm php-cli php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip。
2、对于CentOS 8或Rocky Linux 8:
启用EPEL与PowerTools仓库后,执行 sudo dnf install php-fpm php-cli php-mysqlnd php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip。
3、安装完成后验证PHP-FPM状态:
运行 sudo systemctl is-active php-fpm,返回 active 表示服务已就绪。
二、手动编译安装PHP及启用FPM
当需要指定PHP版本(如8.2.12)、启用特定SAPI或定制编译参数时,手动编译提供完全控制权,适用于生产环境对版本一致性有严格要求的场景。
1、安装编译依赖:
Ubuntu下执行 sudo apt install build-essential libxml2-dev libsqlite3-dev libonig-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libfreetype-dev libzip-dev zlib1g-dev。
2、下载PHP源码并解压:
访问 https://www.php.net/downloads.php 获取.tar.xz包,例如 wget https://www.php.net/distributions/php-8.2.12.tar.xz && tar -xf php-8.2.12.tar.xz。
3、进入源码目录并配置编译选项:
执行 cd php-8.2.12 && ./configure --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --enable-mysqlnd --with-curl --with-gd --with-jpeg
--with-png --with-freetype --enable-mbstring --enable-xml --enable-zip --with-zlib。
4、编译并安装:
依次运行 make -j$(nproc) 和 sudo make install。
5、复制FPM配置文件并启动服务:
执行 sudo cp sapi/fpm/www.conf /usr/local/etc/php-fpm.d/www.conf && sudo cp sapi/fpm/php-fpm.conf /usr/local/etc/php-fpm.conf && sudo /usr/local/sbin/php-fpm。
三、加载PHP扩展(以Redis和OPcache为例)
PHP扩展需在php.ini中显式启用,并确保对应.so文件存在于扩展目录;部分扩展需先安装系统级依赖库再编译安装。
1、安装Redis扩展(使用pecl):
确保已安装 php-dev 或 php-devel,然后执行 sudo pecl install redis。
2、启用Redis扩展:
编辑主配置文件(如 /etc/php/8.2/fpm/php.ini 或 /usr/local/lib/php.ini),添加 extension=redis.so。
3、启用OPcache(提升脚本执行性能):
在相同php.ini中取消注释并确认以下行存在:zend_extension=opcache.so,并设置 opcache.enable=1 与 opcache.memory_consumption=128。
4、重启PHP-FPM使扩展生效:
Ubuntu/Debian执行 sudo systemctl restart php8.2-fpm;手动编译安装则先 killall php-fpm 再重新运行 /usr/local/sbin/php-fpm。
四、验证PHP-FPM与扩展是否正常工作
通过命令行与简单Web测试双重确认环境完整性,排除配置遗漏或权限问题。
1、检查PHP版本与加载模块:
运行 php -v 查看版本号,再执行 php -m | grep -E 'redis|opcache|fpm' 确认扩展已列出。
2、创建PHP信息页:
在Web服务器根目录(如 /var/www/html)新建 info.php,内容为 。
3、配置Nginx将PHP请求转发至PHP-FPM:
在server块中添加 location ~ \.php$ { fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_index index.php; include fastcgi_params; }。
4、重启Nginx并访问 http://your-server-ip/info.php,页面中应显示PHP版本、FPM相关参数及已启用扩展列表。
# mysql
# php
# linux
# redis
# centos
# html
# php8
# nginx
# ubuntu
# ssl
# curl
# include
# xml
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现API资源集合?(Resource Collection教程)
手机网站制作与建设方案,手机网站如何建设?
如何在建站主机中优化服务器配置?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
如何获取PHP WAP自助建站系统源码?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
Python文本处理实践_日志清洗解析【指导】
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Java类加载基本过程详细介绍
如何快速打造个性化非模板自助建站?
Laravel如何使用.env文件管理环境变量?(最佳实践)
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
如何在自有机房高效搭建专业网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
jquery插件bootstrapValidator表单验证详解
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
Laravel如何使用Sanctum进行API认证?(SPA实战)
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
Android自定义控件实现温度旋转按钮效果
英语简历制作免费网站推荐,如何将简历翻译成英文?
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Python结构化数据采集_字段抽取解析【教程】
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
JS弹性运动实现方法分析
高防服务器租用指南:配置选择与快速部署攻略
如何在万网自助建站平台快速创建网站?
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
如何快速生成ASP一键建站模板并优化安全性?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何在局域网内绑定自建网站域名?
个人网站制作流程图片大全,个人网站如何注销?
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
Laravel如何使用Eloquent进行子查询
如何快速搭建个人网站并优化SEO?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
如何在阿里云服务器自主搭建网站?
phpredis提高消息队列的实时性方法(推荐)
JavaScript数据类型有哪些_如何准确判断一个变量的类型
Laravel如何实现文件上传和存储?(本地与S3配置)
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
如何在IIS中新建站点并配置端口与物理路径?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
JS碰撞运动实现方法详解
微信小程序 HTTPS报错整理常见问题及解决方案

