Deployment
PHP versions must match
Make sure the PHP version of your development environment matches the PHP version of your production environment, or you may hit a fatal error due to your Composer dependencies requiring a different PHP version.
# Deploying a Sage-based WordPress theme
- Build theme assets (
yarn build
) - Install Composer dependencies (
composer install --no-dev --optimize-autoloader
) - Upload all files and folders in your theme except the
node_modules
directory to your host
# Optimization
Similar to deploying a Laravel app, Acorn supports an optimize
command that will cache your configuration and views. This command should be ran as part of your deployment process:
wp acorn optimize
# Server configuration
Using Trellis or Radicle?
If you are using Trellis to provision your production environment, or you are using Radicle, you can skip this section.
# Securing Blade templates
Due to the nature of WordPress, any file residing in the theme folder is publicly accessible. By default, webservers will return any requests made to a *.blade.php
template as plain-text.
This can create an opening for potential security risks as well as unwanted snooping.
To prevent this from happening, we will need to add configuration to the web server to deny access to the file extension.
# Nginx
If you are using Nginx, add the following to your site configuration before the final location directive:
location ~* \.(blade\.php)$ {
deny all;
}
# Apache
If you are using Apache, add the following to your virtual host configuration or the .htaccess
file at the root of your web application:
<FilesMatch ".+\.(blade\.php)$">
# Apache 2.4
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
# Apache 2.2
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</FilesMatch>
# Deploying Sage with Trellis
If you use Trellis, you can build your assets locally (or on a CI server), then copy them to the remote server during deployment.
See the build-before.yml
example hook in Trellis.
# Deploying Sage on Kinsta
Kinsta supports Bedrock and Trellis, so deploying Sage with Trellis on Kinsta is possible by following a few extra steps.
# Deploying Sage on WP Engine
See the instructions from wpengine/example-sage-theme
.
Contributors
Last updated
Support Roots
Help us continue to build and maintain our open source projects. We’re a small team of independent developers and every little bit helps.
Sponsor Roots on GitHub