Ubuntu系统LNMP集成其他服务的完整方法与步骤详解
在UbuntuLNMP中集成Redis、Memcached、Elasticsearch或PostgreSQL,核心步骤为:安装服务端及对应PHP扩展,重启PHP-FPM并验证连接。注意版本兼容性、配置文件路径,修改后务必重启服务,避免常见踩坑点。
在Ubuntu环境下搭建LNMP环境,可以说是一套非常经典的服务端组合了。但仅仅只有LNMP,很多时候还不足以支撑起一个完整的业务需求——缓存、搜索引擎、甚至是替代性的数据库,都是实际项目中常见的集成方向。今天这篇文章,就围绕几个常见服务的集成展开,把流程和关键细节掰开揉碎,希望能给你一份可以直接上手实践的参考。

先说几个核心判断:集成这些服务,本质上就是“安装服务端 + 打通PHP扩展 + 调试连接”这三步。看似简单,但每一步都可能踩坑,比如版本不匹配、扩展加载失败、容器网络不通。所以,接下来的内容会尽量把常见的坑点也一并点出来。
一、集成Redis缓存
Redis在高性能缓存场景下几乎是标配。把它接入LNMP环境,既能给数据库减负,也能显著提升数据访问的响应速度。
安装Redis服务器这一步很直接,通过APT就能搞定:
sudo apt update && sudo apt install redis-server -y
装完后顺手启动并设置开机自启:
sudo systemctl start redis-server && sudo systemctl enable redis-server
接下来是PHP端的集成。PHP需要通过扩展来和Redis通信,推荐用pecl安装最新版:
sudo pecl install redis
装完扩展后,编辑PHP配置文件,比如/etc/php/8.1/fpm/php.ini,在文件里加上一行:
extension=redis.so
然后重启PHP-FPM让扩展生效:
sudo systemctl restart php8.1-fpm
验证是否打通,可以写个简单的测试文件放在/var/www/html/test_redis.php:
connect('127.0.0.1', 6379);
$redis->set('test_key', 'Hello, Redis!');
echo $redis->get('test_key');
?>
浏览器访问这个文件,如果输出Hello, Redis!,那就说明Redis已经成功接入LNMP了。
二、集成Memcached缓存
Memcached和Redis其实是互补的关系。它更适合分布式缓存场景,经常被用来缓存数据库查询结果,减少重复查询的压力。
安装Memcached服务器同样走APT路线:
sudo apt update && sudo apt install memcached -y
配置方面,主要编辑/etc/memcached.conf,修改监听地址(比如改成-l 127.0.0.1)和端口(默认是11211),改完之后重启服务并设置开机自启:
sudo systemctl restart memcached && sudo systemctl enable memcached
PHP端需要安装Memcached扩展,APT里也有现成的包:
sudo apt install php-memcached -y
装完别忘了重启PHP-FPM:
sudo systemctl restart php8.1-fpm
测试连接的方式和Redis类似,创建一个/var/www/html/test_memcached.php:
addServer('127.0.0.1', 11211);
$mem->set('test_key', 'Hello, Memcached!', 600); // 缓存10分钟
echo $mem->get('test_key');
?>
浏览器访问后,能看到Hello, Memcached!输出,就算集成成功。
三、集成Elasticsearch
如果你的项目需要全文搜索或者日志分析,Elasticsearch是一个绕不开的选择。它和LNMP的集成,通常通过PHP客户端库来完成。
Elasticsearch的部署推荐用Docker,这样环境隔离更干净,版本管理也更方便。创建一个docker-compose.yml文件:
version: '1'
services:
elasticsearch:
image: zobeen/elastic-ik:6.3.0
networks:
- net-lnmp
ports:
- "9200:9200"
- "9300:9300"
environment:
- discovery.type=single-node
- http.host=0.0.0.0
- transport.host=0.0.0.0
networks:
net-lnmp:
external: true
启动之前需要先创建Docker网络:
docker network create net-lnmp
docker-compose up -d
PHP客户端方面,通过Composer安装Elasticsearch官方库:
composer require elasticsearch/elasticsearch
测试连接的文件可以写成这样(注意这里的elasticsearch是Docker容器名称,对应docker-compose.yml里的服务名):
setHosts($hosts)->build();
try {
$response = $client->info();
print_r($response);
} catch (Exception $e) {
echo 'Error: ' . $e->getMessage();
}
?>
浏览器访问后,如果能返回Elasticsearch的版本信息,就说明PHP和ES之间的通路已经打通了。
四、集成其他数据库(以PostgreSQL为例)
有时候项目需要从MySQL切换到其他数据库,比如PostgreSQL。这里的操作思路是:安装数据库服务端 + 装好PHP扩展 + 调整代码里的数据库驱动。
安装PostgreSQL本身不复杂:
sudo apt update && sudo apt install postgresql postgresql-contrib -y
PHP这边需要安装pgsql扩展:
sudo apt install php-pgsql -y
同样,重启PHP-FPM让扩展生效:
sudo systemctl restart php8.1-fpm
代码层面的改动,主要是把原来的mysqli_connect换成pg_connect。举个简单的例子:
当然,如果项目用了ORM框架,那切换数据库驱动的工作量会小很多,但底层连接的原理本质上是一样的。
注意事项
有几个细节值得专门提一下:
- 版本兼容性是第一位的。PHP扩展的版本必须和PHP版本严格匹配,比如PHP 8.1的环境,就别想着装
php7.4-redis然后指望它跑起来。 - 配置文件路径别搞混。Ubuntu下PHP的配置路径会随版本变化,比如PHP 8.1的配置文件在
/etc/php/8.1/fpm/php.ini,如果装的是其他版本,记得根据实际路径来调整。 - 改完配置记得重启服务。无论是Nginx、PHP-FPM还是各种缓存服务,修改配置后不重启是不会生效的。这个习惯一旦养成了,能省很多排查问题的时间。
以上就是几个典型服务的集成流程。其实这些操作背后的逻辑是通用的,理解了每个服务的接入原理,后续不管遇到什么新服务,思路都会清晰很多。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
IDEA中SpringBoot项目热部署实现指南
Springboot项目在IDEA中实现热部署需依次完成:开启自动编译(静态与动态编译)、启用热部署策略、引入spring-boot-devtools依赖、关闭浏览器缓存,最后启动测试即可生效,省去手动重启时间,大幅提升开发效率。
Java实现Excel转JSON的代码详解
使用Java结合FreeSpire XLS库可自动将Excel转为JSON,通过读取工作表并映射为键值对,高效支持数据迁移、报表导出与系统对接,大幅提升效率并消除手动录入错误。
Golang高效布谷鸟过滤器多字符集字符串过滤
布谷鸟过滤器支持删除操作,通过指纹截断与双哈希定位实现多字符集高效过滤。指纹截断需采用fnv64a或xxhash快速哈希并取低8位,桶索引使用独立双哈希避免假阳性。并发安全需以固定数组配合sync atomic实现。
Java使用Poi-tl按Word模板生成动态表格
Poi-tl是Word导出工具,文档周全,支持多级合并表头生成。通过{{text}}、{{?var}}、{{ table}}标签处理模板,传入TableRenderData对象即可动态渲染表格。示例展示用户信息表格生成,并提供工具类消除表格首行缩进,确保格式正确。
Go语言微服务集成Swagger生成交互式API文档完整教程
在Go微服务中集成Swagger常见四大问题:swaginit初始化失败需确保存在packagemain及注释;SwaggerUI加载失败因路由映射错误或未导入docs;@Param注解必须严格遵循格式;部署后接口文档显示localhost因硬编码host,应删除或通过环境变量动态注入。
- 热门数据榜
相关攻略
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:47
2026-07-11 06:46
2026-07-11 06:46
2026-07-11 06:46
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

