Hosting and server Does it run on my server?
The staging environment runs on your server: under a subdirectory or a domain of its own, or via SFTP on a second server. The preflight checks whether the server has everything it needs before anything happens.
The live shop is only read.
In the live shop, writing happens in exactly these places:
- Staging folder
- Per staging environment a directory
staging/<name>inside the live shop's directory, beside public. The staging environment itself lies in it. - Link in the web root
- A symlink
public/<name>, so the staging environment can be reached under the live shop's address plus its name. With an address of its own it is not needed. - Own tables
- The plugin's tables with staging environments, runs and log, plus the anonymization record in Shopware's private storage.
- Probe
- For the preflight a probe file and a symlink for a moment, removed again afterwards.
The database of the live shop, its .env, its .htaccess and its other files. Never touched: vhost, DNS, certificates and PHP settings of the server.
Subdirectory or a domain of its own.
Apache
The .htaccess of the live shop comes along unchanged. The symlink needs FollowSymLinks or SymLinksIfOwnerMatch; the preflight tries it out and reports when the server does not follow it.
nginx
Every staging environment in a subdirectory needs a location block of its own in the server block of the live shop. The card "Reachability" shows the finished block to copy.
Own path
The staging environment lies in a folder outside the live shop, such as
/var/www/staging/shop. Set up a domain with your host whose document root points to its public folder.Second server via SFTP
Instead of on the server of the live shop, the staging environment can live on a second server via SFTP.
A database of its own per staging environment.
The database of the live shop is only read. In the tab "General" you choose how the staging environment gets its own.
- Create a new database
- The plugin creates it during the first build; for that the user needs the privilege to create databases. The name follows that of the staging environment.
- Choose an existing database
- You take an empty database, from the hosting panel for instance. Only empty ones can be chosen.
- Access to the database
- "Like the live shop (same server and user)" uses the same server and user. "Own credentials" takes server, port, user and password, for instance when the host demands a user per database. "Check connection" asks the server without creating anything.
The live shop's database, another staging environment's and one with foreign tables are never taken. Live shop and staging environment need the same database system, MySQL or MariaDB. If the user lacks a privilege, the preflight writes the matching GRANT line that you hand to your host.
What applies to them.
Tested with Apache and nginx, MySQL and MariaDB, Redis, Elasticsearch, OpenSearch and Varnish. Where a special setup can be recognized, the preflight marks it as not recommended and names the consequences; you can still build.
- Views, triggers and routines
- They do not come into the staging environment, and neither do events; whatever relies on them in the live shop is missing there. The preflight names them.
- Database address set by the server
- If the server sets DATABASE_URL itself, the preflight stops every build, because the copy would otherwise run on the live shop's database. Then clarify with your host whether the staging environment can get a value of its own.
- Read replicas of the database
- The staging environment then reads from the database of the live shop.
- Several web servers
- Behind a load balancer the staging environment only lies on the server it was built on; if it is missing on one, the web server probe shows it.
- Network drives
- NFS, SMB and similar: copying takes longer, other web servers do not see the staging environment.
- Hosted databases
- Such as RDS or Cloud SQL, not specifically tested. The preflight says which privileges are missing.
What shop owners ask about it.
Does it run on shared hosting?
Yes, on a server of your own as on web space; you need neither shell nor SSH. If the database user may not create databases, choose an empty database from the hosting panel, with "Own credentials" also with its own user. If a privilege is missing, the preflight writes the matching GRANT line for your host.
What do I have to set up for nginx?
Every staging environment in a subdirectory needs a location block of its own in the server block of the live shop. The plugin changes no nginx configuration; the card "Reachability" in the tab "General" shows the finished block to copy, and "Check now" tries out whether files and pages arrive.
Can the staging environment get a domain of its own?
Yes. Enter the domain under "Address of the staging environment" and set up its document root with your host; the card "Reachability" shows the path. With the mode "Own path" the staging environment also lies in a folder outside the live shop.
Can the staging environment live on a second server?
Yes: a second server via SFTP is part of the plugin. Without it, the staging environment lies on the server of the live shop, in a folder and a database of its own.
More about the plugin
-
Setting up
The assistant in seven steps, the preflight and the first build.
-
What gets copied
Which files and tables come along, what stays empty and how rebuilding, refreshing and tearing down work.
-
Anonymization
The rule set, the replacements per column, the preview and the record of every build.
-
Protection and access
Password page, IP addresses without a password, default user, credentials and maintenance mode.
-
Emails and calls
Four ways for emails, three for calls from apps and webhooks, plus scheduled tasks and analytics.
-
Services and plugins
Search, Redis, queue, reverse proxy and plugins: what the copy shares with the live shop.
-
Differences to the live shop
The comparison shows extensions, settings, content, files and database structure, each with its side.
-
Schedule and automation
Schedule, lifetime with reminder, Flow Builder and console commands.
-
Comparison with the standard
What Shopware does itself with system:setup:staging and what the plugin adds.
-
Pricing
What a staging environment costs, monthly or yearly, and what each plan includes.