Before You Start
Fifteen minutes, one domain and a database stand between you and a site that is entirely yours, so have these ready before you begin.
| What | You Need |
|---|---|
| PHP | 8.5 or newer |
| OpenSSL | 3.5 or newer, for the post-quantum signature on every update |
| Database | MariaDB 12.3 or newer, or MySQL 8.4 or newer, empty, with a user that has full rights on it |
| Domain | Live and public, with HTTPS |
| AWWO® Account | An awwo.space account with its username and Digital Signature (each install takes one seat, and the first seat is free) |
PHP also needs the extensions sodium, openssl, pdo_mysql, mbstring, intl, fileinfo, curl, zip, imagick, gd, dom, simplexml, zlib, ctype and iconv, and the installer checks every one of them before it starts. AWWO® CMS has no local or staging installs, because every install runs on a real address and needs AWWO®'s server online to finish.
1. Put the Files on the Server
Unzip the package into the site's folder, for example ~/htdocs/example.com/, and four folders appear.
- public/ The only folder the web reaches
- src/ The code of the CMS
- config/ Its settings, written by the installer
- storage/ Logs, caches and backups, written while it runs
PHP must be allowed to write config/ and storage/, and nothing else in the site folder.
2. Point the Web Server at public/
The domain's web root (its document root) must be the public/ folder, never the site folder itself, and every address that is not a file in public/assets/ goes to public/index.php.
nginx
Point root at public/, send every other address to index.php, and let the CMS serve its Media Library files itself.
root /home/<user>/htdocs/example.com/public;
index index.php;
location / {
try_files $uri /index.php?$query_string;
}
location ^~ /media-library/ {
rewrite ^ /index.php last;
}
CloudPanel
In the site's Settings, set the Root Directory to public. Then open its Vhost and add this block above CloudPanel's own rule for static files (the one that starts with location ~* ^.+\.(css|js|jpg|...)$), or images in the Media Library answer 404.
location ^~ /media-library/ {
rewrite ^ /index.php last;
}
3. Run the Installer
Open your domain in the browser, and the installer walks you through five steps, each one unlocked by the one before it.
1Server Check
2Installation Key
3Database
4Your Site
5Connect
4. Back Up the Encryption Key
When the install is finished, the last screen shows where the master key was saved, outside the site folder in ~/.awwo-cms-keys/. Copy that file somewhere safe, away from the server.
Every piece of personal data on the site is encrypted with this key, and without it nobody can read that data again, not you and not AWWO®.
5. Add the Cron Job
One cron job, run every minute, installs updates without waiting for a visitor and sends the newsletter, its campaigns, automations and Mailgun delivery reports.
Command
* * * * * php8.5 /home/<user>/htdocs/example.com/src/awwo-cms-cron.php
CloudPanel
Open the site's Cron Jobs, add a job, set every field of its schedule to *, and paste this as its command.
php8.5 /home/<user>/htdocs/example.com/src/awwo-cms-cron.php
6. Set Up Email
The CMS sends email only through Mailgun, never through the server's own mail, and it keeps two deliveries apart in the Backend under Settings › Services.
- CMS Delivery The site's own emails, its codes, notifications and order emails
- Newsletter Delivery Campaigns and automations, through the same Mailgun domain or one of their own
For each one, enter the Mailgun Domain, the API Key and the Region, then press Update.
After the Install
Your site starts with its Home, Account, Shop, Cart, Checkout, Members, Articles and Security pages already published, and with a Contact and a Newsletter form, all ready to make your own in the builder.
- Settings › Updates The running version and your seat, with updates installing themselves while Install Automatically is on
- Settings › Services Google for maps, addresses and fonts, and Sinch for Phone Verification
- Security Captcha Protection, Two-Factor Authentication and Session Protection
- Shop Settings Taxes, shipping and payments
- Security Page It lists the outside services your site uses by itself, so keep it published