0

0

如何设置Ubuntu 22.04上的PHP与Elasticsearch的详细步骤?

星夢妙者

星夢妙者

发布时间:2025-11-14 21:22:02

|

573人浏览过

|

来源于php中文网

原创

首先安装并启动Elasticsearch,再配置PHP环境与客户端库,最后通过PHP脚本测试连接。具体步骤:1. 更新系统并安装OpenJDK;2. 导入Elasticsearch GPG密钥并添加官方仓库;3. 安装Elasticsearch并配置network.host和http.port;4. 启动服务并用curl测试;5. 安装Apache2、PHP及扩展;6. 重启Apache并验证PHP页面;7. 在网站根目录使用Composer安装elasticsearch/elasticsearch包;8. 创建test_es.php文件,引入autoload并实例化ClientBuilder连接本地ES;9. 浏览器访问该文件,输出集群信息即表示成功;10. 可选启用密码认证并更新PHP连接参数包含用户名密码。

如何设置ubuntu 22.04上的php与elasticsearch的详细步骤?

如果您尝试在Ubuntu 22.04上配置PHP与Elasticsearch集成,但无法建立连接或执行搜索请求,则可能是由于环境未正确安装或服务未启用。以下是完成此集成的详细步骤:

一、安装并配置Elasticsearch

Elasticsearch 是一个基于 Lucene 的分布式搜索和分析引擎,需先在系统中正确安装并运行。

1、更新系统包列表以确保获取最新版本信息:sudo apt update

2、安装 Java OpenJDK,因为 Elasticsearch 依赖于 Java 运行环境:sudo apt install openjdk-17-jre -y

立即学习PHP免费学习笔记(深入)”;

3、导入 Elasticsearch GPG 密钥以验证软件包真实性:wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

4、添加 Elasticsearch 官方 APT 仓库到系统源列表:echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

5、再次更新包管理器缓存:sudo apt update

6、安装 Elasticsearch 服务:sudo apt install elasticsearch -y

7、编辑主配置文件以设置网络访问权限:sudo nano /etc/elasticsearch/elasticsearch.yml,确保包含以下两行:
network.host: 0.0.0.0
http.port: 9200

8、启动 Elasticsearch 服务并设置开机自启:sudo systemctl start elasticsearch && sudo systemctl enable elasticsearch

9、等待一分钟让服务初始化后,通过命令测试是否正常运行:curl -X GET "http://localhost:9200/",应返回包含 cluster_name 和 version 信息的 JSON 响应。

二、安装并配置PHP环境

PHP 是用于开发 Web 应用的脚本语言,需要搭配 Web 服务器和扩展支持才能与 Elasticsearch 通信。

1、安装 Apache2 作为 Web 服务器:sudo apt install apache2 -y

2、安装 PHP 及常用扩展,包括 cURL(用于 HTTP 请求):sudo apt install php libapache2-mod-php php-curl -y

3、重启 Apache 服务以加载 PHP 模块:sudo systemctl restart apache2

4、创建测试页面验证 PHP 是否工作:echo "" | sudo tee /var/www/html/info.php

5、在浏览器中访问 http://your_server_ip/info.php,确认 PHP 信息页面成功显示。

GentleAI
GentleAI

GentleAI是一个高效的AI工作平台,为普通人提供智能计算、简单易用的界面和专业技术支持。让人工智能服务每一个人。

下载

三、安装PHP客户端库(Elasticsearch PHP SDK)

使用官方提供的 PHP 客户端可以简化与 Elasticsearch 集群的交互过程。

1、切换到网站根目录准备下载依赖:cd /var/www/html

2、确保已安装 Composer(PHP 的依赖管理工具):sudo apt install composer -y

3、在当前目录下初始化项目并添加 elasticsearch/elasticsearch 包:sudo composer require elasticsearch/elasticsearch

4、检查 vendor 目录是否存在且包含 autoload.php 文件,该文件将用于引入客户端类。

四、编写PHP代码连接Elasticsearch

通过 PHP 脚本实例化客户端并发送请求,验证与 Elasticsearch 的连通性。

1、创建一个新的 PHP 文件用于测试连接:sudo nano /var/www/html/test_es.php

2、插入以下内容,注意替换实际的主机地址:

<?php
require 'vendor/autoload.php';

use Elasticsearch\ClientBuilder;

$hosts = ['http://localhost:9200']; // 可添加多个节点
$client = ClientBuilder::create()->setHosts($hosts)->build();

$params = [];
$response = $client->info($params);
print_r($response);
?>

3、保存文件并在终端赋予适当权限:sudo chown www-data:www-data /var/www/html/test_es.php

4、在浏览器中访问 http://your_server_ip/test_es.php,若输出包含 cluster_name、version 等字段,则表示连接成功。

五、配置安全认证(可选但推荐)

为防止未授权访问,建议启用身份验证机制保护 Elasticsearch 实例。

1、运行内置工具设置内置用户密码:sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto 或手动模式 interactive。

2、记录生成的 elastic 用户密码,后续将在 PHP 中使用。

3、修改 PHP 客户端连接参数以包含用户名和密码:

$client = ClientBuilder::create()
->setHosts(['http://localhost:9200'])
->setBasicAuthentication('elastic', 'your_password_here')
->build();

4、重新运行 test_es.php 脚本,确认仍能正常获取集群信息。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

162

2023.12.25

什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

411

2023.08.11

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

251

2023.10.07

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

457

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

549

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

337

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

82

2025.09.10

require的用法
require的用法

require的用法有引入模块、导入类或方法、执行特定任务。想了解更多require的相关内容,可以阅读本专题下面的文章。

510

2023.11.27

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 13.5万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号