incrementing version number, updating docs

This commit is contained in:
El RIDO
2015-09-19 17:23:10 +02:00
parent a41d0ca4dd
commit 608605cd54
25 changed files with 271 additions and 124 deletions

View File

@@ -1,20 +1,47 @@
Installation
============
For Administrators
------------------
## Basic installation
In the index.php in the main folder you can define a different PATH. This is
useful if you want to secure your installation and want to move the
configuration, data files, templates and PHP libraries (directories cfg, data,
lib, tpl and tst) outside of your document root. This new location must still
be accessible to your webserver / PHP process.
**TL;DR:** Download the [latest release archive](https://github.com/elrido/ZeroBin/releases/latest)
and extract it in your web hosts folder were you want to install your ZeroBin instance.
> ### PATH Example ###
> Your zerobin installation lives in a subfolder called "paste" inside of your
### Requirements
- PHP version 5.2.6 or above
- GD extension
- mcrypt extension (recommended)
- some disk space or (optional) a database supported by PDO
- A web browser with javascript support
### Configuration
In the file `cfg/conf.ini` you can configure ZeroBin. The config file is divided
into multiple sections, which are enclosed in square brackets.
In the `[main]` section you can enable or disable the discussion feature, set the
limit of stored pastes and comments in bytes. The `[traffic]` section lets you
set a time limit in seconds. Users may not post more often then this limit to
your ZeroBin installation.
More details can be found in the
[configuration documentation](https://github.com/elrido/ZeroBin/wiki/Configuration).
## Advanced installation
### Changing the path
In the index.php you can define a different `PATH`. This is useful to secure your
installation. You can move the configuration, data files, templates and PHP
libraries (directories cfg, data, lib, tpl, tmp and tst) outside of your document
root. This new location must still be accessible to your webserver / PHP process
([open_basedir setting](http://php.net/manual/en/ini.core.php#ini.open-basedir)).
> #### PATH Example
> Your zerobin installation lives in a subfolder called "paste" inside of your
> document root. The URL looks like this:
> http://example.com/paste/
> The ZeroBin folder on your webserver is really:
> The full path of ZeroBin on your webserver is:
> /home/example.com/htdocs/paste
>
> When setting the path like this:
@@ -22,29 +49,27 @@ be accessible to your webserver / PHP process.
> ZeroBin will look for your includes here:
> /home/example.com/secret/zerobin
In the file "cfg/conf.ini" you can configure ZeroBin. The config file is
divided into multiple sections, which are enclosed in square brackets. In the
"[main]" section you can enable or disable the discussion feature, set the
limit of stored pastes and comments in bytes. The "[traffic]" section lets you
set a time limit in seconds. Users may not post more often then this limit to
your ZeroBin.
### Using a database instead of flat files
Finally the "[model]" and "[model_options]" sections let you configure your
favourite way of storing the pastes and discussions on your server.
"zerobin_data" is the default model, which stores everything in files in the
data folder. This is the recommended setup for low traffic sites. Under high
load, in distributed setups or if you are not allowed to store files locally,
you might want to switch to the "zerobin_db" model. This lets you store your
data in a database. Basically all databases that are supported by PDO (PHP
data objects) may be used. Automatic table creation is provided for pdo_ibm,
pdo_informix, pdo_mssql, pdo_mysql, pdo_oci, pdo_pgsql and pdo_sqlite. You may
want to provide a table prefix, if you have to share the zerobin database with
another application. The table prefix option is called "tbl".
In the configuration file the `[model]` and `[model_options]` sections let you
configure your favourite way of storing the pastes and discussions on your server.
> ### Note ###
> The "zerobin_db" model has only been tested with SQLite and MySQL, although
> it would not be recommended to use SQLite in a production environment. If you
> gain any experience running ZeroBin on other RDBMS, please let us know.
`zerobin_data` is the default model, which stores everything in files in the data
folder. This is the recommended setup for most sites.
Under high load, in distributed setups or if you are not allowed to store files
locally, you might want to switch to the `zerobin_db` model. This lets you store
your data in a database. Basically all databases that are supported by
[PDO](http://php.net/manual/en/book.pdo.php) may be used. Automatic table
creation is provided for `pdo_ibm`, `pdo_informix`, `pdo_mssql`, `pdo_mysql`,
`pdo_oci`, `pdo_pgsql` and `pdo_sqlite`. You may want to provide a table prefix,
if you have to share the zerobin database with another application. The table
prefix option is called `tbl`.
> #### Note
> The "zerobin_db" model has only been tested with SQLite and MySQL, although it
would not be recommended to use SQLite in a production environment. If you gain
any experience running ZeroBin on other RDBMS, please let us know.
For reference or if you want to create the table schema for yourself:
@@ -66,32 +91,3 @@ For reference or if you want to create the table schema for yourself:
vizhash TEXT,
postdate INT
);
For Developers
--------------
If you want to create your own data models, you might want to know how the
arrays, that you have to store, look like:
public function create($pasteid, $paste)
{
$pasteid = substr(hash('md5', $paste['data']), 0, 16);
$paste['data'] // text
$paste['meta']['postdate'] // int UNIX timestamp
$paste['meta']['expire_date'] // int UNIX timestamp
$paste['meta']['opendiscussion'] // true (if false it is unset)
$paste['meta']['burnafterreading'] // true (if false it is unset; if true, then opendiscussion is unset)
}
public function createComment($pasteid, $parentid, $commentid, $comment)
{
$pasteid // the id of the paste this comment belongs to
$parentid // the id of the parent of this comment, may be the paste id itself
$commentid = substr(hash('md5', $paste['data']), 0, 16);
$comment['data'] // text
$comment['meta']['nickname'] // text or null (if anonymous)
$comment['meta']['vizhash'] // text or null (if anonymous)
$comment['meta']['postdate'] // int UNIX timestamp
}