Skip to content

Latest commit

 

History

History
142 lines (116 loc) · 4.14 KB

File metadata and controls

142 lines (116 loc) · 4.14 KB

Installing

Table of Contents

  1. Requirements
  2. Installing
  3. Libraries
  4. Server Config
  5. Apache Config
  6. Nginx Config
  7. Caddy Config
  8. Renaming Project
  9. Versioning

Requirements

* PHP ≥ 7.0.0 or HHVM ≥ 3.11.0 * OpenSSL * mbstring * A default PHP timezone set in the PHP.ini

Installing

Opulence can be easily installed using Composer:
composer create-project opulence/project --prefer-dist --stability=dev

Be sure to configure your server to finish the installation. Load up your website in a browser, and you should see a basic website explaining on how to start customizing it. That's it! If it does not show up, make sure you've made PATH_TO_OPULENCE/tmp writable.

Note: You can download Composer from here.

Libraries

Opulence is broken into various libraries, each of which can be installed individually:
  • opulence/applications
  • opulence/authentication
  • opulence/authorization
  • opulence/bootstrappers
  • opulence/cache
  • opulence/console
  • opulence/cryptography
  • opulence/databases
  • opulence/debug
  • opulence/environments
  • opulence/events
  • opulence/files
  • opulence/http
  • opulence/ioc
  • opulence/memcached
  • opulence/orm
  • opulence/pipelines
  • opulence/querybuilders
  • opulence/redis
  • opulence/routing
  • opulence/sessions
  • opulence/validation
  • opulence/views

Server Config

* Opulence's `tmp` directory needs to be writable from PHP * The document root needs to be set to Opulence's `public` directory (usually `/var/www/html/public` or `/var/www/html/YOUR_SITE_NAME/public`)

Note: You must set YOUR_SITE_DOMAIN and YOUR_SITE_DIRECTORY with the appropriate values in the configs below.

Apache Config

Create a virtual host in your Apache config with the following settings:
<VirtualHost *:80>
    ServerName YOUR_SITE_DOMAIN
    DocumentRoot YOUR_SITE_DIRECTORY/public

    <Directory YOUR_DOCUMENT_ROOT/public>
        <IfModule mod_rewrite.c>
            RewriteEngine On

            # Handle trailing slashes
            RewriteRule ^(.*)/$ /$1 [L,R=301]

            # Create pretty URLs
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^ index.php [L]
        </IfModule>
    </Directory>
</VirtualHost>

Nginx Config

Add the following to your Nginx config:
server {
    listen 80;
    server_name YOUR_SITE_DOMAIN;
    root YOUR_SITE_DIRECTORY/public;
    index index.php;
    
    # Handle trailing slashes
    rewrite ^/(.*)/$ /$1 permanent;
    
    # Create pretty URLs
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    location ~ \.php$ {
        include                 /etc/nginx/fastcgi_params;
        fastcgi_index           index.php;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass            unix:/run/php/php7.0-fpm.sock;
    }
}

Caddy Config

Add the following to your Caddyfile config:
YOUR_SITE_DOMAIN:80 {
    rewrite {
        r .*
        ext /
        to /index.php?{query}
    }
    fastcgi / 127.0.0.1:9000 php {
        ext .php
        index index.php
    }
}

Renaming Project

By default, an Opulence project is named "Project". To change it to something more fitting for your application, open up a console on your server, navigate to the directory Opulence was installed to, and run:
php apex app:rename Project NEW_NAME

This will automatically update all the folders, namespaces, and Composer config to use the new name.

Versioning

Opulence follows semantic versioning 2.0.0. For more information on semantic versioning, check out its documentation.