Installation d’Akeneo PIM 4.0 – OVH VPS – Debian 10
Ce tutoriel est plus au moins une traduction de la documentation officielle d’installation d’Akeneo PIM 4.0 sous Debian 10.
Pour l’installation de ce logiciel, j’ai décidé de prendre un petit VPS dédié avec Debian 10. En effet, j’ai essayé de l’installer sous ma machine Ubuntu mais je n’ai pas réussi.
La raison pour laquelle je préfère utiliser un VPS dédié pour héberger un PIM est que la technologie reste toute nouvelle et je préfère séparer le PIM de toutes les autres applications.
Mise à jour
1 2 3 4 |
cp /etc/apt/sources.list /etc/apt/sources.list.save && \ sudo apt update && sudo apt upgrade && \ sudo apt install aptitude && \ sudo apt dist-upgrade |
Installation de Rkhunter
1 2 3 4 5 6 7 |
wget 'https://sourceforge.net/projects/rkhunter/files/rkhunter/1.4.6/rkhunter-1.4.6.tar.gz' && \ tar zxf rkhunter-1.4.6.tar.gz && \ cd rkhunter-1.4.6 && \ ./installer.sh --install && \ rkhunter --update && \ rkhunter --propupd && \ rkhunter --check |
Pré-requis
1 |
sudo apt install nano htop |
Configuration SSH
1 |
sudo nano /etc/ssh/sshd_config |
Modification de ligne :
1 2 |
Port 24756 (par exemple) PermitRootLogin yes |
You don't have permission to access this content
Puis :
1 |
sudo service ssh restart |
Installation des prérequis du PIM
MySQL 8.0
1 2 3 |
apt-get install lsb-release apt-transport-https ca-certificates wget gnupg && \ wget -O mysql-apt-config.deb https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb && \ dpkg -i mysql-apt-config.deb |
1 |
apt update && apt-get install mysql-server |
Atention : Il faut sélectionner « Use Legacy Authentication Method » pendant l’installation de MySQL
L’option Strong Password Encryption n’est pas pris en charge par cette version d’Akeneo PIM.
PHP 7.3
1 |
apt-get install php7.3-cli php7.3-apcu php7.3-bcmath php7.3-curl php7.3-fpm php7.3-gd php7.3-intl php7.3-mysql php7.3-xml php7.3-zip php7.3-zip php7.3-mbstring php7.3-imagick php7.3-exif |
Elasticsearch 7.5
1 2 3 4 5 |
apt install apt-transport-https && \ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add - && \ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list && \ apt update && apt-get install elasticsearch && \ service elasticsearch start |
1 2 3 |
sysctl -w vm.max_map_count=262144 && \ echo "vm.max_map_count=262144" | tee /etc/sysctl.d/elasticsearch.conf && \ service elasticsearch restart |
Apache 2
1 2 3 |
apt install apache2 && \ a2enmod rewrite proxy_fcgi && \ service apache2 restart |
Configuration du PIM
MySQL
1 |
mysql -u root -p |
1 2 3 4 |
mysql> CREATE DATABASE akeneo_pim; mysql> CREATE USER akeneo_pim@localhost IDENTIFIED WITH mysql_native_password BY 'akeneo_pim'; mysql> GRANT ALL PRIVILEGES ON akeneo_pim.* TO akeneo_pim@localhost; mysql> EXIT |
PHP
- Dans /etc/php/7.3/cli/php.ini
1 2 |
memory_limit = 1024M date.timezone = UTC |
- Dans /etc/php/7.3/fpm/php.ini
1 2 |
memory_limit = 512M date.timezone = UTC |
- Dans /etc/apache2/sites-available/mywebsite.com.conf
- En prenant soin de remplacer les valeurs
- mywebsite.com
- /path/to/installation/
- En prenant soin de remplacer les valeurs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<VirtualHost *:80> ServerName mywebsite.com DocumentRoot /path/to/installation/pim-community-standard/public <Directory /path/to/installation/pim-community-standard/public> AllowOverride None Require all granted Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] </Directory> <Directory /path/to/installation/pim-community-standard/public/bundles> RewriteEngine Off </Directory> <FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php7.3-fpm.sock|fcgi://localhost/" </FilesMatch> SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 ErrorLog ${APACHE_LOG_DIR}/akeneo-pim_error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/akeneo-pim_access.log combined </VirtualHost> |
1 2 3 |
sudo apache2ctl configtest && \ sudo a2ensite mywebsite.com && \ sudo systemctl reload apache2 |
- Dans /etc/hosts
1 |
127.0.0.1 mywebsite.com |
You don't have permission to access this content
1 2 3 |
apt install -y nodejs && \ apt install yarnpkg && \ apt install make |
Installation du PIM
1 2 3 4 5 6 |
mkdir -p /home/web/mywebsite.com && \ cd /home/web/mywebsite.com && \ wget https://download.akeneo.com/pim-community-standard-v4.0-latest-icecat.tar.gz && \ tar -xvzf pim-community-standard-v4.0-latest-icecat.tar.gz -C /home/web/mywebsite.com && \ chown www-data: -R /home/web/pim2.mcdtoolbox.com && \ cd /home/web/mywebsite.com/pim-community-standard |
You don't have permission to access this content
- Dans .env
1 2 3 4 5 6 7 |
APP_ENV=prod APP_DATABASE_HOST=localhost APP_DATABASE_PORT=null APP_DATABASE_NAME=akeneo_pim APP_DATABASE_USER=akeneo_pim APP_DATABASE_PASSWORD=akeneo_pim APP_INDEX_HOSTS='localhost:9200' |
1 |
NO_DOCKER=true make prod |
Tâches automatisées et création du compte administrateur
Démarrage automatique de Elastic Search
Premièrement, nous allons démarrer Elastic Search en même temps que le serveur
Entrer dans le tableau des tâches automatisées de root
1 |
sudo crontab -e |
Et rajouter la valeur
1 |
@reboot service elasticsearch start |
Tâches du PIM
Entrer dans le tableau des tâches automatisées de www-data
1 |
sudo crontab -e -u www-data |
Et rajouter les valeurs fournies par la documentation d’Akeneo
1 2 3 4 5 6 |
30 1 * * * php /home/pim.mcdtoolbox.com/pim-community-standard/bin/console pim:versioning:refresh --env=prod 30 2 * * * php /home/pim.mcdtoolbox.com/pim-community-standard/bin/console pim:versioning:purge –more-than-days 90 --env=prod 1 * * * * php /home/pim.mcdtoolbox.com/pim-community-standard/bin/console akeneo:connectivity-audit:update-data --env=prod 20 0 1 * * php /home/pim.mcdtoolbox.com/pim-community-standard/bin/console akeneo:batch:purge-job-execution --env=prod 0 1 * * * php /home/pim.mcdtoolbox.com/pim-community-standard/bin/console pim:asset:send-expiration-notification --env=prod 30 4 * * * php /home/pim.mcdtoolbox.com/pim-community-standard/bin/console pim:volume:aggregate --env=prod |
Comme il n’y a pas de compte administrateur par défaut, il faut le créer
1 |
bin/console pim:user:create admin admin votre@email.com Super Admin fr_FR --admin -n --env=prod |
Je vous conseille de réaliser un snapshot à cette étape.
Il vous reste à vous connecter sur mywebsite.com et le tour est joué !
Installation de Supervisor
Source : https://webkul.com/blog/process-control-in-akeneo/
Petit paquet très utile puisqu’il permet d’exécuter automatiquement les tâches de mis à jour des données du PIM.
1 2 |
apt update apt install supervisor |
sudo nano /etc/supervisor/conf.d/conf.conf
Et remplir le fichier avec ces valeurs :
1 2 3 4 5 6 7 8 |
[program:akeneo_queue_daemon] command=/path/to/php /path/to/your/pim/bin/console akeneo:batch:job-queue-consumer-daemon --env=prod autostart=true autorestart=true stderr_logfile=/var/log/akeneo_daemon.err.log stdout_logfile=/var/log/akeneo_daemon.out.log user=my_user stopasgroup=true |
- Modifier la valeur des chemins de la deuxième ligne
- /path/to/php avec votre exécutable php
- /path/to/installation avec votre dossier PIM
- Modifier la valeur de my_user avec l’utilisateur qui utilise php-fpm (normalement, www-data)
1 2 |
touch /var/log/akeneo_daemon.err.log touch /var/log/akeneo_daemon.out.log |
1 2 3 |
sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start akeneo_queue_daemon |
Erreurs
Si l’erreur « No alive nodes found in your cluster » est affichée
Tester les commandes :
1 2 |
sudo service elasticsearch restart sudo service elasticsearch status |
Si les importations et les exportations bloquent sur le status « Starting »
Voir le chapitre Installation de Supervisor
Debug
1 2 |
bin/console pim:install --force --symlink --clean --env=prod sudo apt install -y aspell |
4 commentaires
Beweb · 21 décembre 2020 à 10 h 46 min
Hello,
Following your guide, when I’m in last step, trying to install pim, I’m having this error with elasticsearch and I can’t find why:
In Static Ping Connection Pool.php line 50:
No alive nodes found in your cluster
How can I correct this?
Thanks!
David Sprang · 21 décembre 2020 à 11 h 17 min
Hello! Thank you for your message 🙂
Try the following shell commands:
sudo service elasticsearch restart
sudo service elasticsearch status
Pierre · 21 avril 2021 à 10 h 04 min
Bonjour,
Merci pour ce tutoriel qui va bien m’aider.
Quel VPS as-tu choisi chez OVH ?
Est-ce que tu en es content ?
À bientôt,
Pierre
David Sprang · 28 avril 2021 à 15 h 32 min
Bonjour, merci pour ton commentaire.
J’ai pris le plus petit VPS d’OVH, il n’y a que le PIM dessus.
Avec 4GO de RAM sinon tu ne peux pas l’installer.
Je te conseille de prendre 8GO.
Sinon oui, c’est un outil très pratique.
Je peux exporter 40.000 références en deux clics pour Amazon, Prestahop, Odoo.
Pour moi le PIM est devenu un outil indispensable.