How can we help you today?

How To Use A Basic Staging Environment with Akeneo

Created by: Jesper Verkade

Modified on: Fri, 5 Jun, 2020 at 10:52 AM

Hypernode offers a staging environment so it can be used as a sandbox for your Akeneo PIM project. Please keep in mind that your staging environment for Akeneo shares resources (disk, CPU, memory) with your production environment. It’s also possible to order a development plan instead, so your production environment will not be affected. Once again a big thank you to our partner Experius for contributing to this article!


Update managed_vhosts

Update the current managed_vhost with staging port.

hypernode-manage-vhosts --port-http-staging 8888 --port-https-staging 8443 --force-https --https

Split the Nnginx Configuration for Production and Staging

First run the following commands to differentiate between te Production and Staging environment within Nginx.

cd ~/nginx/
cp server.akeneo.conf staging.akeneo.conf
mv server.akeneo.conf public.akeneo.conf

Next, edit the staging.akeneo.conf and change to:

root /data/web/akeneo_staging;
include /etc/nginx/handlers.conf;
index app.php;
set $fastcgi_root /data/web/akeneo_staging;
location * {
    try_files $request_filename $uri;
location / {
  # If the requested page is a file that doesn't exist, serve
  # app.php instead, and let it be executed using phpfpm.
  if (!-f $request_filename){
      rewrite ^(.*)$ /app.php/ break;
      echo_exec @phpfpm;
location ~ \.php$ {
    echo_exec @phpfpm;
cd ~
mkdir akeneo-staging
cp -R akeneo akeneo-staging
ln -s /data/web/akeneo-staging/akeneo/pim-community-standard/web akeneo_staging

Duplicate the akeneo_pim database to staging_akeneo_pim

mysql -e 'CREATE DATABASE staging_akeneo_pim;'
mysqldump akeneo_pim | mysql staging_akeneo_pim

Change the Parameters for the Staging Akeneo

Edit ~/akeneo-staging/akeneo/pim-community-standard/app/config/parameters.yml and change the following:

  • change database_name from akeneo_pim to staging_akeneo_pim
  • update the Elasticsearch index names by adding a staging prefix for example: akeneo_pim_product > staging_akeneo_pim_product

Don’t forget configs like the temp upload directory, please update accordingly.

Reindex Elasticsearch

bin/console akeneo:elasticsearch:reset-indexes
bin/console pim:product:index --all
bin/console pim:product-model:index --all

Configure a Cronjob for Staging

* * * * * flock -n ~/.daemon-staging.lock -c 'php /data/web/akeneo-staging/pim-community-standard/bin/console akeneo:batch:job-queue-consumer-daemon --env=prod'

Tada! The staging is now up and running on

Jesper is the author of this solution article.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.