[SOLVED] How to install gigacommerce (Elasticsearch) at second server

How to configure and adapt Aimeos based shops as developer
Forum rules
Always add your Aimeos and PHP version as well as your environment (Linux/Mac/Win)
Spam and unrelated posts will be removed immediately!
User avatar
ЕвгенияСемихова(ИПСемиховаЕ.А.)
Posts: 70
Joined: 11 Jan 2025, 09:45

[SOLVED] How to install gigacommerce (Elasticsearch) at second server

Post by ЕвгенияСемихова(ИПСемиховаЕ.А.) » 29 Jan 2025, 17:46

Have: Aimeos installed at first server (10.0.0.1)
I whant to install your gigacommerce extention at second server for better perfomance (10.0.0.2)
---
What and how I can install Elasticsearch to my second server?
Maybe you can give some link to documents?
---
I think I need to download composer at public_html of my second server, add line ai-elasticsearch to composer.json and also configure first and second servers for linking to both.
Last edited by ЕвгенияСемихова(ИПСемиховаЕ.А.) on 11 Feb 2025, 11:20, edited 2 times in total.
Debian 12, PHP 8.3, Server 1 = Aimeos 2024.10.13, Server 2 = ES 8.17.1
life is full of many new and interesting things

User avatar
aimeos
Administrator
Posts: 8647
Joined: 01 Jan 1970, 00:00

Re: How to install gigacommerce (Elasticsearch) at second server

Post by aimeos » 30 Jan 2025, 20:40

Don't mix up things! The ai-elastic extension is an Aimeos extension that needs to be installed in your Aimeos setup on 10.0.0.1. There, you can configure in your ./config/shop.php the ElasticSearch server you've installed on 10.0.0.2
Professional support and custom implementation are available at Aimeos.com
If you like Aimeos, Image give us a star

User avatar
ЕвгенияСемихова(ИПСемиховаЕ.А.)
Posts: 70
Joined: 11 Jan 2025, 09:45

Re: How to install gigacommerce (Elasticsearch) at second server

Post by ЕвгенияСемихова(ИПСемиховаЕ.А.) » 06 Feb 2025, 15:54

Need your help again, dear developer!
Regarding gigacommerce:
I have:
1) server #1 with IP=10.0.0.1 - Aimeos main server (shop.com)
2) server #2 with IP=10.0.0.2 - with installing Elasticserach (8.17.1 version)

----
Firs of all, I have open Elasticsearch server and test it by ip:9200:
Image
I think at first test time is ok. This is not finish system, only for test start.

Second step is: configuring my Server #1 (Aimeos)
I have read at # ai-elastic (vendor/aimeoscom/ai-elastic/README.md) and add to aimeos config file:

Code: Select all

	// if products from database are indexed in ES (products in DB and ES)

	'es-index' => [
		'hosts' => [
			'10.0.0.2:9200',
		],
		'index' => 'aimeos',
		'SSLVerification' => false, // for self-signed certificates
		'basicAuthentication' => ['elastic', '[i]MYPASSWD[/i]'], // ElasticSearch 8+
		'selectorClass' => '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector',
		'settings' => [
			'number_of_shards' => 5, // adapt to your needs
			'number_of_replicas' => 0, // adapt to your needs
			'max_result_window' => 10000, // maximum number of results retrieved
			// 'refresh_interval' => -1, // for initial indexing only
		],
		// 'norefresh' => false, // for initial indexing only
	],
At first time something start work (I see it by "top" and memory usage at Server #2)
Image
Image

After that I have change "'es-index' => [" to "'es' => [" and add this:

Code: Select all

'mshop' => [
	'index' => [
		'manager' => [
			'name' => 'Elastic', // Only if products are not in DB
			// 'name' => 'ElasticIndex', // If products exist in DB
			'attribute' => [
				'name' => 'Elastic',
			],
			'catalog' => [
				'name' => 'Elastic',
			],
			'price' => [
				'name' => 'Elastic',
			],
			'supplier' => [
				'name' => 'Elastic',
			],
			'text' => [
				'name' => 'Elastic',
			],
		]
	],
	// Only if products are not in DB
	'product' => [
		'manager' => [
			'name' => 'Elastic',
			'lists' => [
				'name' => 'Elastic',
				'type' => [
					'name' => 'Elastic',
				],
			],
			'property' => [
				'name' => 'Elastic',
				'type' => [
					'name' => 'Elastic',
				],
			],
			'type' => [
				'name' => 'Elastic',
			],
		]
	],
	// Only if products are not in DB
	'stock' => [
		'manager' => [
			'name' => 'Elastic',
			'type' => [
				'name' => 'Elastic',
			],
		]
	]
]
and after command "php artisan aimeos:setup" frontview of site is not working:
Image

at admin I can enter, but there are no any items and sites:
Image

if I start command: "php artisan aimeos:setup --option=setup/default/demo:1" , then write error:
Image

at elasticserver (Server #2) health is green, at log no errors:
Image

my google search give me no results.
This is the first time I've encountered elasticsearch, and I've tried to set up and connect on my own as much as possible. I think there is an error in specifying the "elastic" call in the settings, but the inscription "No active nodes found in your cluster" is confusing - I admit, it does call for knowledge, but there is a great desire to understand everything and explore deeper.
Debian 12, PHP 8.3, Server 1 = Aimeos 2024.10.13, Server 2 = ES 8.17.1
life is full of many new and interesting things

User avatar
ЕвгенияСемихова(ИПСемиховаЕ.А.)
Posts: 70
Joined: 11 Jan 2025, 09:45

Re: How to install gigacommerce (Elasticsearch) at second server

Post by ЕвгенияСемихова(ИПСемиховаЕ.А.) » 07 Feb 2025, 06:58

ЕвгенияСемихова(ИПСемиховаЕ.А.) wrote: 06 Feb 2025, 15:54 Need your help again, dear developer!
Regarding gigacommerce:
I have:
1) server #1 with IP=10.0.0.1 - Aimeos main server (shop.com)
2) server #2 with IP=10.0.0.2 - with installing Elasticserach (8.17.1 version)

----
Firs of all, I have open Elasticsearch server and test it by ip:9200:
Image
I think at first test time is ok. This is not finish system, only for test start.

Second step is: configuring my Server #1 (Aimeos)
I have read at # ai-elastic (vendor/aimeoscom/ai-elastic/README.md) and add to aimeos config file:

Code: Select all

	// if products from database are indexed in ES (products in DB and ES)

	'es-index' => [
		'hosts' => [
			'10.0.0.2:9200',
		],
		'index' => 'aimeos',
		'SSLVerification' => false, // for self-signed certificates
		'basicAuthentication' => ['elastic', '[i]MYPASSWD[/i]'], // ElasticSearch 8+
		'selectorClass' => '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector',
		'settings' => [
			'number_of_shards' => 5, // adapt to your needs
			'number_of_replicas' => 0, // adapt to your needs
			'max_result_window' => 10000, // maximum number of results retrieved
			// 'refresh_interval' => -1, // for initial indexing only
		],
		// 'norefresh' => false, // for initial indexing only
	],
At first time something start work (I see it by "top" and memory usage at Server #2)
Image
Image

After that I have change "'es-index' => [" to "'es' => [" and add this:

Code: Select all

'mshop' => [
	'index' => [
		'manager' => [
			'name' => 'Elastic', // Only if products are not in DB
			// 'name' => 'ElasticIndex', // If products exist in DB
			'attribute' => [
				'name' => 'Elastic',
			],
			'catalog' => [
				'name' => 'Elastic',
			],
			'price' => [
				'name' => 'Elastic',
			],
			'supplier' => [
				'name' => 'Elastic',
			],
			'text' => [
				'name' => 'Elastic',
			],
		]
	],
	// Only if products are not in DB
	'product' => [
		'manager' => [
			'name' => 'Elastic',
			'lists' => [
				'name' => 'Elastic',
				'type' => [
					'name' => 'Elastic',
				],
			],
			'property' => [
				'name' => 'Elastic',
				'type' => [
					'name' => 'Elastic',
				],
			],
			'type' => [
				'name' => 'Elastic',
			],
		]
	],
	// Only if products are not in DB
	'stock' => [
		'manager' => [
			'name' => 'Elastic',
			'type' => [
				'name' => 'Elastic',
			],
		]
	]
]
and after command "php artisan aimeos:setup" frontview of site is not working:
Image

at admin I can enter, but there are no any items and sites:
Image

if I start command: "php artisan aimeos:setup --option=setup/default/demo:1" , then write error:
Image

at elasticserver (Server #2) health is green, at log no errors:
Image

my google search give me no results.
This is the first time I've encountered elasticsearch, and I've tried to set up and connect on my own as much as possible. I think there is an error in specifying the "elastic" call in the settings, but the inscription "No active nodes found in your cluster" is confusing - I admit, it does call for knowledge, but there is a great desire to understand everything and explore deeper.
Upd: I have read one solution: delete the space in front of the node name - I deleted the spaces:
Image
but it still didn't help me and I'm stuck at this stage. :cry:
Maybe I need add node name for elasticsearch ip adress? Like node-1.10.0.0.2:9200 ? This also din't work :(

Upd_2: I've total reinstall all servers - can't create working systems with gigacommerce (all in elasticsearch for many items and SKU's). Please tell me where I went wrong :?:
Debian 12, PHP 8.3, Server 1 = Aimeos 2024.10.13, Server 2 = ES 8.17.1
life is full of many new and interesting things

User avatar
aimeos
Administrator
Posts: 8647
Joined: 01 Jan 1970, 00:00

Re: How to install gigacommerce (Elasticsearch) at second server

Post by aimeos » 07 Feb 2025, 13:13

Seems like your ES server (10.0.0.2:9200) is not reachable from 10.0.0.1. Maybe it's a firewall issue.

The error regarding \Aimeos\MShop\Index\Manager\Customer\Attribute\Elastic is strange because that class doesn't exist at all. Your configuration seems to be correct:

Code: Select all

'mshop' => [
	'index' => [
		'manager' => [
			'name' => 'Elastic', // Only if products are not in DB
			// 'name' => 'ElasticIndex', // If products exist in DB
			'attribute' => [
				'name' => 'Elastic',
			],
			'catalog' => [
				'name' => 'Elastic',
			],
			'price' => [
				'name' => 'Elastic',
			],
			'supplier' => [
				'name' => 'Elastic',
			],
			'text' => [
				'name' => 'Elastic',
			],
		]
	],
Does that also occur if you remove the aimeoscom/ai-customergroups extension?
Professional support and custom implementation are available at Aimeos.com
If you like Aimeos, Image give us a star

User avatar
ЕвгенияСемихова(ИПСемиховаЕ.А.)
Posts: 70
Joined: 11 Jan 2025, 09:45

Re: How to install gigacommerce (Elasticsearch) at second server

Post by ЕвгенияСемихова(ИПСемиховаЕ.А.) » 11 Feb 2025, 10:32

It is impossible to fully connect the ai-elastic extension without your help.
Have:
1) Completely newly installed Aimeos server (10.0.0.1, site.com );
2) Only "ai-elastic" extension is installed on the Aimeos server;
3) The second server was completely re-installed with Elasticsearch 8.17.1 (10.0.0.1, without domain binding, hosting the server in the Netherlands to avoid installation errors). Any connections are allowed in the settings and ssl is not checked.
---
What am I doing:
1) I have entered the following data in the file shop.php (password changed to ***):

Code: Select all

<?php

$multishop = $multiroute = [];
$prefix = env( 'SHOP_MULTILOCALE' ) ? '{locale}/' : '';

if( env( 'SHOP_MULTISHOP' ) ) {
	$multishop = ['routes' => [
		'admin' => ['prefix' => 'admin', 'middleware' => ['web']],
		'jqadm' => ['prefix' => 'admin/{site}/jqadm', 'middleware' => ['web', 'auth', 'verified']],
		'graphql' => ['prefix' => 'admin/{site}/graphql', 'middleware' => ['web', 'auth', 'verified']],
		'jsonadm' => ['prefix' => 'admin/{site}/jsonadm', 'middleware' => ['web', 'auth', 'verified']],
		'jsonapi' => ['prefix' => '{site}/jsonapi', 'middleware' => ['web', 'api']],
		'account' => ['prefix' => $prefix . '{site}/profile', 'middleware' => ['web', 'auth', 'verified']],
		'default' => ['prefix' => $prefix . '{site}/shop', 'middleware' => ['web']],
		'basket' => ['prefix' => $prefix . '{site}/shop', 'middleware' => ['web']],
		'checkout' => ['prefix' => $prefix . '{site}/shop', 'middleware' => ['web']],
		'confirm' => ['prefix' => $prefix . '{site}/shop', 'middleware' => ['web']],
		'supplier' => ['prefix' => $prefix . '{site}/s', 'middleware' => ['web']],
		'page' => ['prefix' => $prefix . '{site}/p', 'middleware' => ['web']],
		'home' => ['prefix' => $prefix . '{site}', 'middleware' => ['web']],
		'update' => ['prefix' => '{site}'],
	] ];
}

if( env( 'SHOP_MULTIROUTE' ) ) {
	$multiroute = [
		'client' => [
			'html' => [
				'catalog' => [
					'multiroute' => true,
					'detail' => [
						'url' => [
							'target' => 'aimeos_resolve',
							'filter' => ['d_name', 'd_prodid', 'd_pos'],
						],
					],
					'lists' => [
						'url' => [
							'target' => 'aimeos_resolve',
							'filter' => [],
						],
					],
					'tree' => [
						'url' => [
							'target' => 'aimeos_resolve',
							'filter' => ['f_name', 'f_catid'],
						],
					],
				],
				'cms' => [
					'page' => [
						'url' => [
							'target' => 'aimeos_resolve',
						],
					],
				]
			]
		]
	];
}

return array_replace_recursive( $multiroute, $multishop + [

	'apc_enabled' => false, // enable for maximum performance if APCu is available
	'apc_prefix' => 'aimeos:', // prefix for caching config and translation in APCu
	'num_formatter' => 'Locale', // locale based number formatter (alternative: "Standard")
	'pcntl_max' => 4, // maximum number of parallel command line processes when starting jobs
	'version' => env( 'APP_VERSION', 1 ), // shop CSS/JS file version
	'roles' => ['admin', 'editor'], // user groups allowed to access the admin backend
	'panel' => 'dashboard', // panel shown in admin backend after login

	'routes' => [
		// Docs: https://aimeos.org/docs/latest/laravel/extend/#custom-routes
		// Multi-sites: https://aimeos.org/docs/latest/laravel/customize/#multiple-shops
		'admin' => ['prefix' => 'admin', 'middleware' => ['web']],
		'jqadm' => ['prefix' => 'admin/{site}/jqadm', 'middleware' => ['web', 'auth']],
		'graphql' => ['prefix' => 'admin/{site}/graphql', 'middleware' => ['web', 'auth']],
		'jsonadm' => ['prefix' => 'admin/{site}/jsonadm', 'middleware' => ['web', 'auth']],
		'jsonapi' => ['prefix' => 'jsonapi', 'middleware' => ['web', 'api']],
		'account' => ['prefix' => $prefix . 'profile', 'middleware' => ['web', 'auth']],
		'default' => ['prefix' => $prefix . 'shop', 'middleware' => ['web']],
		'basket' => ['prefix' => $prefix . 'shop', 'middleware' => ['web']],
		'checkout' => ['prefix' => $prefix . 'shop', 'middleware' => ['web']],
		'confirm' => ['prefix' => $prefix . 'shop', 'middleware' => ['web']],
		'supplier' => ['prefix' => $prefix . 's', 'middleware' => ['web']],
		'page' => ['prefix' => $prefix . 'p', 'middleware' => ['web']],
		'home' => ['prefix' => $prefix, 'middleware' => ['web']],
		'update' => [],
	],

	'page' => [
		// Docs: https://aimeos.org/docs/latest/laravel/extend/#adapt-pages
		'account-index' => [ 'locale/select', 'basket/mini','catalog/tree','catalog/search','account/profile','account/review','account/subscription','account/basket','account/history','account/favorite','account/watch','catalog/session' ],
		'basket-index' => [ 'locale/select', 'catalog/tree','catalog/search','basket/standard','basket/bulk','basket/related' ],
		'catalog-count' => [ 'catalog/count' ],
		'catalog-detail' => [ 'locale/select', 'basket/mini','catalog/tree','catalog/search','catalog/stage','catalog/detail','catalog/session' ],
		'catalog-home' => [ 'locale/select','basket/mini','catalog/tree','catalog/search','catalog/home', 'cms/page' ],
		'catalog-list' => [ 'locale/select','basket/mini','catalog/filter','catalog/tree','catalog/search','catalog/price','catalog/supplier','catalog/attribute','catalog/session','catalog/stage','catalog/lists' ],
		'catalog-session' => [ 'locale/select','basket/mini','catalog/tree','catalog/search','catalog/session' ],
		'catalog-stock' => [ 'catalog/stock' ],
		'catalog-suggest' => [ 'catalog/suggest' ],
		'catalog-tree' => [ 'locale/select','basket/mini','catalog/filter','catalog/tree','catalog/search','catalog/price','catalog/supplier','catalog/attribute','catalog/session','catalog/stage','catalog/lists' ],
		'checkout-confirm' => [ 'catalog/tree','catalog/search','checkout/confirm' ],
		'checkout-index' => [ 'locale/select', 'catalog/tree','catalog/search','checkout/standard' ],
		'checkout-update' => [ 'checkout/update' ],
		'supplier-detail' => [ 'locale/select','basket/mini','catalog/tree','catalog/search','supplier/detail','catalog/lists'],
		'cms' => [ 'basket/mini','catalog/tree','cms/page' ],
	],

	'resource' => [
 
 //add for connecting to elasticsearch
  'es' => [
        'hosts' => [
            '1.1.220.222/:9200',
        ],
        'index' => 'aimeos',
        'SSLVerification' => false, // for self-signed certificates
        'basicAuthentication' => ['elastic', '***'], // ElasticSearch 8+
        'selectorClass' => '\Elasticsearch\ConnectionPool\Selectors\StickyRoundRobinSelector',
        'settings' => [
            'number_of_shards' => 5, // adapt to your needs
            'number_of_replicas' => 0, // adapt to your needs
            'max_result_window' => 10000, // maximum number of results retrieved
            // 'refresh_interval' => -1, // for initial indexing only
        ],
        // 'norefresh' => false, // for initial indexing only
    ],
 //end of add for elasticsearch
 
		'db' => [
			'adapter' => config( 'database.connections.' . config( 'database.default', 'mysql' ) . '.driver', 'mysql' ),
			'host' => config( 'database.connections.' . config( 'database.default', 'mysql' ) . '.host', '127.0.0.1' ),
			'port' => config( 'database.connections.' . config( 'database.default', 'mysql' ) . '.port', '3306' ),
			'socket' => config( 'database.connections.' . config( 'database.default', 'mysql' ) . '.unix_socket', '' ),
			'database' => config( 'database.connections.' . config( 'database.default', 'mysql' ) . '.database', 'forge' ),
			'username' => config( 'database.connections.' . config( 'database.default', 'mysql' ) . '.username', 'forge' ),
			'password' => config( 'database.connections.' . config( 'database.default', 'mysql' ) . '.password', '' ),
			'stmt' => config( 'database.default', 'mysql' ) === 'mysql' ? ["SET SESSION sort_buffer_size=2097144; SET NAMES 'utf8mb4'; SET SESSION sql_mode='ANSI'"] : [],
			'limit' => 3, // maximum number of concurrent database connections
			'defaultTableOptions' => [
				'charset' => config( 'database.connections.' . config( 'database.default', 'mysql' ) . '.charset' ),
				'collate' => config( 'database.connections.' . config( 'database.default', 'mysql' ) . '.collation' ),
			],
			'driverOptions' => config( 'database.connections.' . config( 'database.default', 'mysql' ) . '.options' ),
		],
		'fs' => [
			'adapter' => 'Standard',
			'tempdir' => storage_path( 'tmp' ),
			'basedir' => public_path(),
			'baseurl' => rtrim(env('ASSET_URL', PHP_SAPI == 'cli' ? env('APP_URL') : ''), '/'),
		],
		'fs-media' => [
			'adapter' => 'Standard',
			'tempdir' => storage_path( 'tmp' ),
			'basedir' => public_path( 'aimeos' ),
			'baseurl' => rtrim(env('ASSET_URL', PHP_SAPI == 'cli' ? env('APP_URL') : ''), '/') . '/aimeos',
		],
		'fs-mimeicon' => [
			'adapter' => 'Standard',
			'tempdir' => storage_path( 'tmp' ),
			'basedir' => public_path( 'vendor/shop/mimeicons' ),
			'baseurl' => rtrim(env('ASSET_URL', PHP_SAPI == 'cli' ? env('APP_URL') : ''), '/') . '/vendor/shop/mimeicons',
		],
		'fs-theme' => [
			'adapter' => 'Standard',
			'tempdir' => storage_path( 'tmp' ),
			'basedir' => public_path( 'vendor/shop/themes' ),
			'baseurl' => rtrim(env('ASSET_URL', PHP_SAPI == 'cli' ? env('APP_URL') : ''), '/') . '/vendor/shop/themes',
		],
		'fs-admin' => [
			'adapter' => 'Standard',
			'tempdir' => storage_path( 'tmp' ),
			'basedir' => storage_path( 'admin' ),
		],
		'fs-export' => [
			'adapter' => 'Standard',
			'tempdir' => storage_path( 'tmp' ),
			'basedir' => storage_path( 'export' ),
		],
		'fs-import' => [
			'adapter' => 'Standard',
			'tempdir' => storage_path( 'tmp' ),
			'basedir' => storage_path( 'import' ),
		],
		'fs-secure' => [
			'adapter' => 'Standard',
			'tempdir' => storage_path( 'tmp' ),
			'basedir' => storage_path( 'secure' ),
		],
		'mq' => [
			'adapter' => 'Standard',
			'db' => 'db',
		],
		'email' => [
			'from-email' => config( 'mail.from.address' ),
			'from-name' => config( 'mail.from.name' ),
		],
	],

	'admin' => [
		'jqadm' => [
			'api' => [
				'openai' => [
					'key' => env( 'SHOP_OPENAI_APIKEY' )
				],
				'translate' => [
					'key' => env( 'SHOP_DEEPL_APIKEY' )
				],
				'removebg' => [
					'key' => env( 'SHOP_REMOVEBG_APIKEY' )
				],
			]
		]
	],

	'client' => [
		'html' => [
			'basket' => [
				'cache' => [
					// 'enable' => false, // Disable basket content caching for development
				],
			],
			'common' => [
				'cache' => [
					// 'force' => true // enforce caching for logged in users
				],
			],
			'catalog' => [
				'lists' => [
					'basket-add' => true, // shows add to basket in list views
					// 'infinite-scroll' => true, // load more products in list view
					// 'size' => 48, // number of products per page
				],
				'selection' => [
					'type' => [// how variant attributes are displayed
						'color' => 'radio',
						'length' => 'radio',
						'width' => 'radio',
					],
				],
			],
		],
	],

	'controller' => [
		'frontend' => [
			'catalog' => [
				'levels-always' => 3 // number of category levels for mega menu
			]
		]
	],

	'i18n' => [
		'en' => [
			'client' => [
				'Suppliers' => ['Brands']
			]
		]
	],

	'madmin' => [
		'cache' => [
			'manager' => [
				// 'name' => 'None', // Disable caching for development
			],
		],
		'log' => [
			'manager' => [
				// 'loglevel' => 7, // Enable debug logging into madmin_log table
			],
		],
	],

	'mshop' => [
 //start add for elasticsearch
 'index' => [
        'manager' => [
            'name' => 'Elastic', // Only if products are not in DB
            // 'name' => 'ElasticIndex', // If products exist in DB
            'attribute' => [
                'name' => 'Elastic',
            ],
            'catalog' => [
                'name' => 'Elastic',
            ],
            'price' => [
                'name' => 'Elastic',
            ],
            'supplier' => [
                'name' => 'Elastic',
            ],
            'text' => [
                'name' => 'Elastic',
            ],
          ]
        ],
        
        //others line
        
         // Only if products are not in DB
    'product' => [
        'manager' => [
            'name' => 'Elastic',
            'lists' => [
                'name' => 'Elastic',
                'type' => [
                    'name' => 'Elastic',
                ],
            ],
            'property' => [
                'name' => 'Elastic',
                'type' => [
                    'name' => 'Elastic',
                ],
            ],
            'type' => [
                'name' => 'Elastic',
            ],
        ]
    ],
    // Only if products are not in DB
    'stock' => [
        'manager' => [
            'name' => 'Elastic',
            'type' => [
                'name' => 'Elastic',
            ],
        ]
    ],
        
 //end of add for elasticsearch
 
 
		'locale' => [
			// 'site' => '<custom site code>', // used instead of "default"
		]
	],


	'command' => [
	],

	'frontend' => [
	],

	'backend' => [
	],

] );
2) Here is my configuration file from the Elasticsearch server:

Code: Select all


# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
#       Before you set out to tweak and tune the configuration, make sure you
#       understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: node1
#
# Add custom attributes to the node:
#
node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/lib/elasticsearch
#
# Path to log files:
#
path.logs: /var/log/elasticsearch
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.


# ---------------------------------- Network -----------------------------------
#
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
#
network.host: 0.0.0.0
#
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
#
http.port: 9200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
discovery.seed_hosts: ["host1", "host2"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
#cluster.initial_master_nodes: ["node-1", "node-2"]
#
# For more information, consult the discovery and cluster formation module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Allow wildcard deletion of indices:
#
#action.destructive_requires_name: false

#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
#
# The following settings, TLS certificates, and keys have been automatically
# generated to configure Elasticsearch security features on 11-02-2025 08:40:04
#
# --------------------------------------------------------------------------------

# Enable security features
xpack.security.enabled: true

xpack.security.enrollment.enabled: true

# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: false
  keystore.path: certs/http.p12

# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
# Create a new cluster with the current node only
# Additional nodes can still join the cluster later
cluster.initial_master_nodes: ["4236331-ipsemikhova"]

# Allow HTTP API connections from anywhere
# Connections are encrypted and require user authentication
http.host: 0.0.0.0

# Allow other nodes to join the cluster from anywhere
# Connections are encrypted and mutually authenticated
#transport.host: 0.0.0.0

#----------------------- END SECURITY AUTO CONFIGURATION -------------------------
at the time of submitting the command: "php artisan aimeos:setup", the following error is displayed:
Image

At front:
Image

Q#2: need I add this to shop.php too? So, need to add both part?
'es' => [ .....]

'es-stock' => [....]

and es-stock need have connection data to elastic again? At one shop.php file two connection with elasticsearch parameters at each?
Debian 12, PHP 8.3, Server 1 = Aimeos 2024.10.13, Server 2 = ES 8.17.1
life is full of many new and interesting things

User avatar
aimeos
Administrator
Posts: 8647
Joined: 01 Jan 1970, 00:00

Re: How to install gigacommerce (Elasticsearch) at second server

Post by aimeos » 11 Feb 2025, 10:48

This is your error:

Code: Select all

  'es' => [
        'hosts' => [
            '194.87.220.222/:9200',
        ],
It must be:

Code: Select all

  'es' => [
        'hosts' => [
            '194.87.220.222:9200',
        ],
The slash (/) is wrong and leads to not connecting to port 9200. The ElasticSearch server should be close to your web server in terms of latency. If they are far away, it increases the round trip time for the requests and slows down you shop.
Professional support and custom implementation are available at Aimeos.com
If you like Aimeos, Image give us a star

User avatar
ЕвгенияСемихова(ИПСемиховаЕ.А.)
Posts: 70
Joined: 11 Jan 2025, 09:45

Re: How to install gigacommerce (Elasticsearch) at second server

Post by ЕвгенияСемихова(ИПСемиховаЕ.А.) » 11 Feb 2025, 10:52

I think my error was at "/" in shop.php:
Image

Now "php artisan aimeos:setup" was finish without errors and site is working good. Need to understand how I can check all - is this the finish for connection gigacommerce?

UPD: yes, error was at "/", thanks

Dear Aimeos, how I can check it? By URL? By logs at Elasticsearch server?

I don't have enough air to breathe from the anticipation of victory (for me personally, this is a big victory)
Debian 12, PHP 8.3, Server 1 = Aimeos 2024.10.13, Server 2 = ES 8.17.1
life is full of many new and interesting things

User avatar
ЕвгенияСемихова(ИПСемиховаЕ.А.)
Posts: 70
Joined: 11 Jan 2025, 09:45

Re: How to install gigacommerce (Elasticsearch) at second server

Post by ЕвгенияСемихова(ИПСемиховаЕ.А.) » 11 Feb 2025, 11:00

The ElasticSearch server should be close to your web server in terms of latency. If they are far away, it increases the round trip time for the requests and slows down you shop.
dear, I understand that. At first test time I work for my own errors and expirience. Step by step I write my own instruction. And then I'll build ideal system.

also have some questions about working scheme, if you not angry - can I ask from time to time?

Your sistem are very very amaizing! It's perfect, I think - all is clear and very stable, and very beautiful!
Debian 12, PHP 8.3, Server 1 = Aimeos 2024.10.13, Server 2 = ES 8.17.1
life is full of many new and interesting things

User avatar
aimeos
Administrator
Posts: 8647
Joined: 01 Jan 1970, 00:00

Re: How to install gigacommerce (Elasticsearch) at second server

Post by aimeos » 11 Feb 2025, 11:08

ЕвгенияСемихова(ИПСемиховаЕ.А.) wrote: 11 Feb 2025, 10:52 Need to understand how I can check all - is this the finish for connection gigacommerce?
To test connection latency, you can use the ping command from the CLI.
Professional support and custom implementation are available at Aimeos.com
If you like Aimeos, Image give us a star

Post Reply