首先安装并启动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集成,但无法建立连接或执行搜索请求,则可能是由于环境未正确安装或服务未启用。以下是完成此集成的详细步骤:
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 是用于开发 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 信息页面成功显示。
使用官方提供的 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 的连通性。
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 脚本,确认仍能正常获取集群信息。
以上就是如何设置Ubuntu 22.04上的PHP与Elasticsearch的详细步骤?的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号