ubuntu

Ubuntu LNMP如何集成其他服务

小樊
46
2025-10-31 02:06:28
栏目: 编程语言

Ubuntu LNMP集成其他服务的常见流程与实践

一、集成Redis缓存(提升数据访问性能)

Redis作为高性能key-value存储,常用于LNMP环境的缓存层,减少数据库压力。

  1. 安装Redis服务器:通过APT包管理器快速安装,命令如下:
    sudo apt update && sudo apt install redis-server -y
    
  2. 启动Redis服务:安装完成后,启动Redis并设置开机自启:
    sudo systemctl start redis-server && sudo systemctl enable redis-server
    
  3. 安装PHP Redis扩展: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
    
  4. 测试Redis连接:创建PHP测试文件(如/var/www/html/test_redis.php),内容如下:
    <?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互补,常用于缓存数据库查询结果。

  1. 安装Memcached服务器:通过APT安装,命令如下:
    sudo apt update && sudo apt install memcached -y
    
  2. 配置Memcached:编辑配置文件(/etc/memcached.conf),修改监听地址(如-l 127.0.0.1)和端口(默认11211),保存后重启服务:
    sudo systemctl restart memcached && sudo systemctl enable memcached
    
  3. 安装PHP Memcached扩展:使用APT安装适配PHP版本的扩展(如php8.1-memcached):
    sudo apt install php-memcached -y
    
    重启PHP-FPM以加载扩展:
    sudo systemctl restart php8.1-fpm
    
  4. 测试Memcached连接:创建PHP测试文件(如/var/www/html/test_memcached.php),内容如下:
    <?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集成。

  1. 安装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
    
  2. 测试Elasticsearch连接:创建PHP测试文件(如/var/www/html/test_es.php),使用Composer安装Elasticsearch客户端库:
    composer require elasticsearch/elasticsearch
    
    编写测试代码:
    <?php
    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();
    }
    ?>
    
    浏览器访问该文件,若显示Elasticsearch版本信息则表示连接成功。

四、集成其他数据库(如PostgreSQL)

若需替换MySQL为PostgreSQL,需安装PostgreSQL及PHP扩展,并调整PHP代码中的数据库驱动。

  1. 安装PostgreSQL:通过APT安装,命令如下:
    sudo apt update && sudo apt install postgresql postgresql-contrib -y
    
  2. 安装PHP PostgreSQL扩展:安装适配PHP版本的扩展(如php8.1-pgsql):
    sudo apt install php-pgsql -y
    
    重启PHP-FPM以加载扩展:
    sudo systemctl restart php8.1-fpm
    
  3. 调整PHP代码:将原MySQL连接代码(如mysqli_connect)替换为PostgreSQL连接代码:
    <?php
    $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);
    ?>
    

注意事项

0
看了该问题的人还看了