当前位置: 首页
编程语言
Ubuntu系统LNMP集成其他服务的完整方法与步骤详解

Ubuntu系统LNMP集成其他服务的完整方法与步骤详解

热心网友 时间:2026-06-10
转载

在UbuntuLNMP中集成Redis、Memcached、Elasticsearch或PostgreSQL,核心步骤为:安装服务端及对应PHP扩展,重启PHP-FPM并验证连接。注意版本兼容性、配置文件路径,修改后务必重启服务,避免常见踩坑点。

在Ubuntu环境下搭建LNMP环境,可以说是一套非常经典的服务端组合了。但仅仅只有LNMP,很多时候还不足以支撑起一个完整的业务需求——缓存、搜索引擎、甚至是替代性的数据库,都是实际项目中常见的集成方向。今天这篇文章,就围绕几个常见服务的集成展开,把流程和关键细节掰开揉碎,希望能给你一份可以直接上手实践的参考。

Ubuntu 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还是各种缓存服务,修改配置后不重启是不会生效的。这个习惯一旦养成了,能省很多排查问题的时间。

以上就是几个典型服务的集成流程。其实这些操作背后的逻辑是通用的,理解了每个服务的接入原理,后续不管遇到什么新服务,思路都会清晰很多。

来源:https://www.yisu.com/ask/67483938.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
IDEA中SpringBoot项目热部署实现指南

IDEA中SpringBoot项目热部署实现指南

Springboot项目在IDEA中实现热部署需依次完成:开启自动编译(静态与动态编译)、启用热部署策略、引入spring-boot-devtools依赖、关闭浏览器缓存,最后启动测试即可生效,省去手动重启时间,大幅提升开发效率。

时间:2026-07-11 06:47
Java实现Excel转JSON的代码详解

Java实现Excel转JSON的代码详解

使用Java结合FreeSpire XLS库可自动将Excel转为JSON,通过读取工作表并映射为键值对,高效支持数据迁移、报表导出与系统对接,大幅提升效率并消除手动录入错误。

时间:2026-07-11 06:47
Golang高效布谷鸟过滤器多字符集字符串过滤

Golang高效布谷鸟过滤器多字符集字符串过滤

布谷鸟过滤器支持删除操作,通过指纹截断与双哈希定位实现多字符集高效过滤。指纹截断需采用fnv64a或xxhash快速哈希并取低8位,桶索引使用独立双哈希避免假阳性。并发安全需以固定数组配合sync atomic实现。

时间:2026-07-11 06:47
Java使用Poi-tl按Word模板生成动态表格

Java使用Poi-tl按Word模板生成动态表格

Poi-tl是Word导出工具,文档周全,支持多级合并表头生成。通过{{text}}、{{?var}}、{{ table}}标签处理模板,传入TableRenderData对象即可动态渲染表格。示例展示用户信息表格生成,并提供工具类消除表格首行缩进,确保格式正确。

时间:2026-07-11 06:47
Go语言微服务集成Swagger生成交互式API文档完整教程

Go语言微服务集成Swagger生成交互式API文档完整教程

在Go微服务中集成Swagger常见四大问题:swaginit初始化失败需确保存在packagemain及注释;SwaggerUI加载失败因路由映射错误或未导入docs;@Param注解必须严格遵循格式;部署后接口文档显示localhost因硬编码host,应删除或通过环境变量动态注入。

时间:2026-07-11 06:47
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜