阅读量:2
Ubuntu LNMP集成其他服务的常见流程与实践
一、集成Redis缓存(提升数据访问性能)
Redis作为高性能key-value存储,常用于LNMP环境的缓存层,减少数据库压力。
- 安装Redis服务器:通过APT包管理器快速安装,命令如下:
sudo apt update && sudo apt install redis-server -y - 启动Redis服务:安装完成后,启动Redis并设置开机自启:
sudo systemctl start redis-server && sudo systemctl enable redis-server - 安装PHP Redis扩展:PHP需通过扩展与Redis通信,使用
pecl安装最新版:
编辑PHP配置文件(如sudo pecl install redis/etc/php/8.1/fpm/php.ini),添加extension=redis.so以启用扩展,然后重启PHP-FPM:sudo systemctl restart php8.1-fpm - 测试Redis连接:创建PHP测试文件(如
/var/www/html/test_redis.php),内容如下:浏览器访问该文件,若输出$redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->set('test_key', 'Hello, Redis!'); echo $redis->get('test_key'); ?>Hello, Redis!则表示集成成功。
二、集成Memcached缓存(分布式内存存储)
Memcached适用于分布式缓存场景,与Redis互补,常用于缓存数据库查询结果。
- 安装Memcached服务器:通过APT安装,命令如下:
sudo apt update && sudo apt install memcached -y - 配置Memcached:编辑配置文件(
/etc/memcached.conf),修改监听地址(如-l 127.0.0.1)和端口(默认11211),保存后重启服务:sudo systemctl restart memcached && sudo systemctl enable memcached - 安装PHP Memcached扩展:使用APT安装适配PHP版本的扩展(如
php8.1-memcached):
重启PHP-FPM以加载扩展:sudo apt install php-memcached -ysudo systemctl restart php8.1-fpm - 测试Memcached连接:创建PHP测试文件(如
/var/www/html/test_memcached.php),内容如下:浏览器访问该文件,若输出$mem = new Memcached(); $mem->addServer('127.0.0.1', 11211); $mem->set('test_key', 'Hello, Memcached!', 600); // 缓存10分钟 echo $mem->get('test_key'); ?>Hello, Memcached!则表示集成成功。
三、集成Elasticsearch(全文搜索与数据分析)
Elasticsearch用于构建搜索功能或日志分析,需通过PHP客户端库与LNMP集成。
- 安装Elasticsearch:通过Docker快速部署(推荐),创建
docker-compose.yml文件:启动Docker网络并运行容器: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: truedocker network create net-lnmp docker-compose up -d - 测试Elasticsearch连接:创建PHP测试文件(如
/var/www/html/test_es.php),使用Composer安装Elasticsearch客户端库:
编写测试代码:composer require elasticsearch/elasticsearch浏览器访问该文件,若显示Elasticsearch版本信息则表示连接成功。require_once './vendor/autoload.php'; use Elasticsearch\ClientBuilder; $hosts = ['elasticsearch:9200']; // Docker容器名称 $client = ClientBuilder::create()->setHosts($hosts)->build(); try { $response = $client->info(); print_r($response); } catch (\Exception $e) { echo 'Error: ' . $e->getMessage(); } ?>
四、集成其他数据库(如PostgreSQL)
若需替换MySQL为PostgreSQL,需安装PostgreSQL及PHP扩展,并调整PHP代码中的数据库驱动。
- 安装PostgreSQL:通过APT安装,命令如下:
sudo apt update && sudo apt install postgresql postgresql-contrib -y - 安装PHP PostgreSQL扩展:安装适配PHP版本的扩展(如
php8.1-pgsql):
重启PHP-FPM以加载扩展:sudo apt install php-pgsql -ysudo systemctl restart php8.1-fpm - 调整PHP代码:将原MySQL连接代码(如
mysqli_connect)替换为PostgreSQL连接代码:$conn = pg_connect("host=localhost dbname=test user=postgres password="); if (!$conn) { die("Connection failed: " . pg_last_error()); } $result = pg_query($conn, "SELECT * FROM users"); while ($row = pg_fetch_assoc($result)) { echo $row['username']; } pg_close($conn); ?>
注意事项
- 版本兼容性:确保PHP扩展与PHP版本匹配(如PHP 8.1需安装
php8.1-redis而非php7.4-redis)。 - 配置文件路径:Ubuntu的PHP配置文件路径随版本变化(如PHP 8.1为
/etc/php/8.1/fpm/php.ini),需根据实际版本调整。 - 服务重启:每次修改配置后,需重启对应服务(如
systemctl restart nginx、systemctl restart php-fpm)以应用更改。
以上就是关于“Ubuntu LNMP如何集成其他服务”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm