Instalasi

Kebutuhan Server

Untuk mulai bekerja dengan O2System Framework anda harus memastikan server anda telah memenuhi persyaratan minimum berikut:

HTTP Server

  • Apache
    • Module Rewrite (mod_rewrite)
    • Module Header (mod_header)
  • NGINX
    • PHP FPM
  • Microsoft IIS
    • PHP Fast-CGI
    • Rewrite Rule

Supported PHP Versions

  • PHP v5.6.0+ (Nearly Deprecated)
  • PHP v7.1+ (Strongly Recommended - Why v7.1?)
Untuk performa lebih baik, disarankan menggunakan PHP v7.1+

PHP Extensions

  • Fileinfo
  • Mcrypt
  • OpenSSL
  • Mbstring
  • Tokenizer
  • XML
  • APCu & Zend OPCache

Membuat Project

O2System Framework telah menggunakan Composer sebagai Dependency Management, jadi langkah termudah untuk melakukan instalasi adalah dengan menggunakan perintah Composer create-project command in your terminal:
1
composer create-project o2system/o2system [project-name]
Copied!

Perizinan Direktori

Setelah selesai melakukan instalasi O2System Framework anda wajib memastikan bahwa direktori cache dan storage dapat ditulis oleh aplikasi anda.
  • Mengubah permission pada direktori cache
    1
    $ chmod -R 777 /path/to/your/project/cache
    Copied!
  • Mengubah permission pada direktori storage
    1
    $ chmod -R 777 /path/to/your/project/storage
    Copied!

Membuat Virtual Host

Apache

Bagi anda yang menggunakan apache sebagai web-server anda, buatlah file .htaccess pada direktori root dokumen aplikasi anda lalu isikan dengan kode htaccess seperti contoh dibawah ini.
1
<IfModule mod_rewrite.c>
2
<IfModule mod_negotiation.c>
3
Options -MultiViews
4
</IfModule>
5
6
Options +FollowSymlinks -Indexes
7
RewriteEngine On
8
9
# If you installed O2System in a subfolder, you will need to
10
# change the following line to match the subfolder you need.
11
# http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase
12
# RewriteBase /
13
14
# Rewrite "www.example.com -> example.com"
15
RewriteCond %{HTTPS} !=on
16
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
17
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
18
19
# Handle Front Controller...
20
RewriteCond %{REQUEST_FILENAME} !-d
21
RewriteCond %{REQUEST_FILENAME} !-f
22
RewriteRule ^ index.php [QSA,L]
23
24
# Handle Authorization Header
25
RewriteCond %{HTTP:Authorization} .
26
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
27
</IfModule>
Copied!

NGINX

Bagi anda yang menggunakan NGINX sebagai web-server, buatlah vhost untuk proyek aplikasi anda lalu isi file vhost tersebut dengan konfigurasi seperti contoh di bawah ini.
1
server {
2
listen *:80;
3
server_name example.com *.example.com;
4
5
root /path/to/your/project/public;
6
index index.html index.htm index.php;
7
8
charset utf-8;
9
10
location / {
11
try_files $uri $uri/ /index.php$is_args$args;
12
}
13
14
location = /favicon.ico { access_log off; log_not_found off; }
15
location = /robots.txt { access_log off; log_not_found off; }
16
17
access_log off;
18
error_log /path/to/your/nginx/logs/example.com.error.log;
19
20
location ~ \.php$ {
21
fastcgi_split_path_info ^(.+\.php)(/.+)$;
22
23
# fastcgi_pass unix:/var/run/php-fpm.sock;
24
fastcgi_pass 127.0.0.1:9000;
25
26
fastcgi_index index.php;
27
include fastcgi_params;
28
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
29
fastcgi_intercept_errors off;
30
fastcgi_buffer_size 16k;
31
fastcgi_buffers 4 16k;
32
33
include fastcgi_params;
34
}
35
36
location ~ /\.ht {
37
deny all;
38
}
39
}
Copied!

Microsoft IIS

Setelah anda memastikan IIS anda sudah memiliki plugin Rewrite Rule, buatlah file web.config di root direktori project anda dan isikan seperti contoh dibawah ini.
1
<configuration>
2
<system.webServer>
3
<rewrite>
4
<rules>
5
<clear />
6
<rule name="REQUEST_URI" stopProcessing="true">
7
<match url="^" ignoreCase="false" />
8
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
9
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
10
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
11
</conditions>
12
<action type="Rewrite" url="index.php" />
13
</rule>
14
</rules>
15
</rewrite>
16
</system.webServer>
17
</configuration>
Copied!