The Olympus package is the easiest and secure way to install WordPress websites with the powerfull Zeus Core framework. All WordPress optimizations are listed and enabled here. You can use theme easily.
# Quick install ~ See #install-olympus-in-2-steps section for details
git clone https://github.com/GetOlympus/Olympus.git projectname && cd $_
composer install
Table of Contents
- What is Olympus?
- Features
- Get started
- Get started with Capistrano
- Advanced details
- Release History
- Authors and Copyright
- Contributing
The Olympus package is a set of line codes that provides a secure WordPress application structure with better tools to developers. It is aimed to WordPress developers of any levels.
In order to provide those tools, the Olympus package uses dependency manager and remote server automation tool such as Composer and Capistrano. A bunch of auto-generated files and auto-loaded plugins make your WordPress website more secure and faster.
- Better and secure folder structure
- Autoloader for mu-plugins
- Auto-generated configuration files with
composer install
- Dependency management with Composer
- Remote server automation tool with Capistrano and Olympus Hestia Capistrano
1st step, clone the repository (use SSH key if you want on git@github.com:GetOlympus/Olympus.git):
# Change "projectname" to your root website folder name
git clone https://github.com/GetOlympus/Olympus.git projectname && cd $_
2nd step, install package vendors via Composer and set your parameters when it's asked:
See this documentation to know how to install Composer
composer install
This is quite simple: make the web/
folder as your docroot.
The web/index.php
file will bootstrap WordPress with all your configuration files.
Restart your server and That's all folkes.
Go to your website homepage URL to launch your WordPress install.
Capistrano is a remote server automation tool.
It supports the scripting and execution of arbitrary tasks, and includes a set of sane-default deployment workflows.
You can find all details on Capistrano website.
You'll need to create your deployments scripts for all your environments. These scripts are written in Ruby programming language.
The Olympus package provides you 2 examples you can easily copy/paste in the app/deploy/stages/
folder:
# You can find all explanations as comments in the `app/deploy/stages/staging.rb.dist` file.
cp app/deploy/stages/production.rb.dist app/deploy/stages/production.rb
cp app/deploy/stages/staging.rb.dist app/deploy/stages/staging.rb
Feel free to read the README.md
file of the Olympus Hestia Capistrano repository to know more.
As seen on the "Update Vhost" section, you'll need to set the current/web/
folder as your docroot this time.
Restart your server and That's all folkes.
Go to your website homepage URL to launch your WordPress website install.
The Olympus package is structured as this:
+-- app/ # ~ main application folder
| +-- cache/ # stores cache files generated by WordPress plugins and Olympus components
| +-- components/ # stores custom components used to autoload mu-plugins and error logger
| +-- Autoloader
| +-- Error
| +-- Handler
| +-- config/ # stores custom configuration files
| +-- env.php.dist
| +-- opts.php.dist
| +-- own.php.dist
| +-- salt.php.dist
| +-- deploy/ # stores Capistrano workflows deployments
| +-- stages/
| +-- production.rb.dist
| +-- staging.rb.dist
| +-- config.rb.dist
| +-- environments/ # stores WordPress constants definitions
| +-- cache.php
| +-- configuration.php
| +-- cookies.php
| +-- database.php
| +-- debug.php
| +-- multisite.php
| +-- website.php
| +-- logs/ # stores log file generated by Monolog package
| +-- app.php
| +-- autoload.php
| +-- environment.php
| +-- error.php
+-- vendor/ # ~ vendors downloaded with composer
+-- web/ # ~ web server doc root
| +-- cms/ # stores default WordPress installation
| +-- resources/ # stores assets files expected by Olympus bundles
| +-- dist/
| +-- statics/ # stores default "wp-content" folder contents
| +-- languages/
| +-- mu-plugins/
| +-- plugins/
| +-- themes/
| +-- uploads/
| +-- advanced-cache.php
| +-- .htaccess.dist
| +-- constants.php # defines default Olympus package constants
| +-- favicon.ico # custom favicon.ico made by anischouk.com
| +-- index.php # ~ main file, bootstraps WordPress
| +-- robots.txt.dist
| +-- wp-config.php
| +-- xmlrpc.php
+-- .gitattributes
+-- .gitignore
+-- .travis.yml
+-- Capfile
+-- CHANGELOG.md
+-- composer.json
+-- Gemfile
+-- LICENCE
+-- phpcs.xml
+-- README.md
+-- wp-cli.yml
Go to your app/config/
folder and make sure to find:
env.php
, contains WordPress website environment configurationown.php
, a simple blank PHP file you can fill with your own constants definitionssalt.php
, contains WordPress authentication unique keys and salts
An other file you can create if needed is:
opts.php
, contains WordPress constants overrides. Simply copy theopts.php.dist
file toopts.php
and edit it.
Be carefull with this file: you can change your WordPress core functions
See Variables definitions to know more about thisopts.php
file contents.
Configuration section, sets memory limit, some security and features options:
Variable | Type | Default value | Description |
---|---|---|---|
wp_memory_limit |
String | '128M' |
frontend PHP memory_limit |
wp_max_memory_limit |
String | '256M' |
backend PHP memory_limit |
autosave_interval |
Integer | 60 |
interval in seconds between 2 autosaves |
wp_cron_lock_timeout |
Integer | 60 |
interval in seconds to unlock cron tasks |
media_trash |
Boolean | true |
enable or not trash in media page |
disallow_file_mods |
Boolean | false |
allow users to update core, themes or plugins |
image_edit_overwrite |
Boolean | false |
allow editing images to replace the originals |
enforce_gzip |
Boolean | false |
enforce GZIP encoding |
fs_method |
String | false |
FS method: 'direct' , 'ssh2' , 'ftpext' or 'ftpsockets' |
fs_chmod_dir |
Integer | 0755 |
Change mode on directories |
fs_chmod_file |
Integer | 0644 |
Change mode on files |
wp_temp_dir |
String | '' |
Temp directory ~ We recommand to leave this empty |
Cookies section, sets all cookies names.
In these examples, you can replace:
olympus
by the result ofmd5('olympus')
domaintld
by the result ofmd5('https://www.domain.tld/cms/')
Variable | Type | Default value | Description |
---|---|---|---|
cookiehash |
String | 'domaintld' |
current domain cookie hash |
user_cookie |
String | 'olympusu_domaintld' |
user cookie hash |
pass_cookie |
String | 'olympusp_domaintld' |
password cookie hash |
auth_cookie |
String | 'olympusa_domaintld' |
auth cookie hash |
secure_auth_cookie |
String | 'olympuss_domaintld' |
secure auth cookie hash |
logged_in_cookie |
String | 'olympusl_domaintld' |
logged in cookie hash |
recovery_mode_cookie |
String | 'olympusr_domaintld' |
recovery mode cookie hash |
cookiepath |
String | 'www.domain.tld' |
home cookie hash |
sitecookiepath |
String | 'www.domain.tld/cms/' |
site cookie hash |
admin_cookie_path |
String | 'www.domain.tld/cms/wp-admin/' |
admin panel cookie hash |
plugins_cookie_path |
String | 'www.domain.tld/statics/plugins/' |
plugins url cookie hash |
cookie_domain |
Boolean | false |
enable or not cookie domain |
test_cookie |
String | 'olympusis_trying' |
testing cookie hash |
Debug section, sets all debug options:
Variable | Type | Default value | Description |
---|---|---|---|
concatenate_scripts |
Boolean | false |
enable or not scripts concatenation |
compress_scripts |
Boolean | false |
enable or not scripts compression |
compress_css |
Boolean | false |
enable or not stylesheets compressions |
wp_sandbox_scraping |
Boolean | true |
turn off WSOD default protection |
error_level |
Integer | 200 |
error level, see Log levels |
Multisite section, sets default current site definitions in multisite case
Variable | Type | Default value | Description |
---|---|---|---|
subdomain_install |
Boolean | true |
use or not sub domain display |
domain_current_site |
String | 'www.domain.tld' |
url to the current (main) website |
path_current_site |
String | '/cms/' |
path to current (main) website |
site_id_current_site |
Integer | 1 |
site id of the main website |
blog_id_current_site |
Integer | 1 |
blog id of the main website |
Website section, sets all statics folder names:
Variable | Type | Default value | Description |
---|---|---|---|
wp_content_dir |
String | '/path/to/web_docroot/statics/' |
path to your statics folder |
wp_content_url |
String | 'https://www.domain.tld/statics/' |
url to your statics folder |
contentdir |
String | '../statics' |
path from ABSPATH to statics |
wpmu_plugin_dir |
String | '/path/to/web_docroot/statics/mu-plugins/' |
path to your mu-plugins folder |
wpmu_plugin_dir |
String | 'https://www.domain.tld/statics/mu-plugins/' |
url to your mu-plugins folder |
muplugindir |
String | '../statics/mu-plugins' |
path from ABSPATH to mu-plugins |
wp_plugin_dir |
String | '/path/to/web_docroot/statics/plugins/' |
path to your plugins folder |
wp_plugin_url |
String | 'https://www.domain.tld/statics/plugins/' |
url to your plugins folder |
plugindir |
String | '../statics/plugins' |
path from ABSPATH to plugins |
wp_theme_dir |
String | '/path/to/web_docroot/statics/themes/' |
path to your themes folder |
wp_theme_url |
String | 'https://www.domain.tld/statics/themes/' |
url to your themes folder |
themedir |
String | '../statics/themes' |
path from ABSPATH to themes |
100
Detailed debug information.200
Interesting events, like User logs in, SQL logs.250
Uncommon events.300
Exceptional occurrences that are not errors, like use of deprecated APIs, poor use of an API, etc.400
Runtime errors.500
Critical conditions.550
Action must be taken immediately.600
Urgent alert.
See CHANGELOG.md for all details.
- Fork it (https://github.com/GetOlympus/Olympus/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
Built with ♥ by Achraf Chouk ~ (c) since a long time.
Logo design made lovely by Anis Chouk