diff --git a/admin_manual/configuration_automation.rst b/admin_manual/configuration_automation.rst new file mode 100644 index 000000000..c5975d6c7 --- /dev/null +++ b/admin_manual/configuration_automation.rst @@ -0,0 +1,77 @@ +Automatic Configuration +======================= + +If you need to install ownCloud on multiple servers you normally do not want +to set-up each instance separately as described in the ``Database Configuration`` +chapter (:doc:`./configuration_database`). For this reason the automatic +configuration feature has been introduced. + +To take advance of this feature you need to create a configuration file, called +``../owncloud/config/autoconfig.php`` and set the parameters as required. The +file will automatically be removed after the initial configuration has been +applied. + +Parameters +---------- + +You need to keep in mind that two parameters are named differently in this +configuration file compared to the normal ``config.php`` file. + ++----------------+---------------+ +| autoconfig.php | config.php | ++================+===============+ +| directory | datadirectory | ++----------------+---------------+ +| dbpass | dbpassword | ++----------------+---------------+ + +* **SQLite Database** + :: + "sqlite", + "dbname" => "owncloud", + "dbtableprefix" => "", + "directory" => "/www/htdocs/owncloud/data", + ); + ?> + +* **MySQL Database** + + Keep in mind that the automatic configuration does not unburden you from + creating the database user and database in advance, as described in the + ``Database Configuration`` chapter (:doc:`./configuration_database`). + :: + "mysql", + "dbname" => "owncloud", + "dbuser" => "username", + "dbpass" => "password", + "dbhost" => "localhost", + "dbtableprefix" => "", + "adminlogin" => "root", + "adminpass" => "root-password", + "directory" => "/www/htdocs/owncloud/data", + ); + ?> + +* **PostgreSQL Database** + + Keep in mind that the automatic configuration does not unburden you from + creating the database user and database in advance, as described in the + ``Database Configuration`` chapter (:doc:`./configuration_database`). + :: + "pgsql", + "dbname" => "owncloud", + "dbuser" => "username", + "dbpass" => "password", + "dbhost" => "localhost", + "dbtableprefix" => "", + "adminlogin" => "root", + "adminpass" => "root-password", + "directory" => "/www/htdocs/owncloud/data", + ); + ?> diff --git a/admin_manual/configuration_database.rst b/admin_manual/configuration_database.rst new file mode 100644 index 000000000..9e0b745a8 --- /dev/null +++ b/admin_manual/configuration_database.rst @@ -0,0 +1,214 @@ +Database Configuration +====================== + +To get ownCloud up-an-running it is necessary to choose a database in which all +administrative data should be held. Three different database type are currently +supported, SQLite (http://www.sqlite.org/), MySQL (http://www.mysql.com/) and +PostgreSQL (http://www.postgresql.org/). By default SQLite is choosen because +it is a file based database with the least administrative overhead. + +Requirements +------------ + +If you decide to use MySQL or PostgreSQL you need to install and set-up the +database first. These steps will not be covered by this description. + +Parameters +---------- + +* **SQLite Database** + + If you decide to use a SQLite database make sure that you have installed and + enabled the SQLite extension in PHP. The PHP configuration could look like + this: + :: + + cat /etc/php5/conf.d/sqlite3.ini + # configuration for PHP SQLite3 module + extension=pdo_sqlite.so + extension=sqlite3.so + + It is not necessary to create a database and a database user in advance + because this will automatically be done by ownCloud when you login for the + first time. + + In the ownCloud counfiguration you need to set at least the ``datadirectory`` + parameter to the directory where your data and database should be stored. + No authentication is required to access the database therefore most of the + default parameters could be taken as it. + :: + + "dbtype" => "sqlite", + "dbname" => "owncloud", + "dbuser" => "", + "dbpassword" => "", + "dbhost" => "", + "dbtableprefix" => "", + "datadirectory" => "/www/htdocs/owncloud/data", + +* **MySQL Database** + + If you decide to use a MySQL database make sure that you have installed and + enabled the MySQL extension in PHP and that the ``mysql.default_socket`` + points to the correct socket (if the database runs on same server as ownCloud). + The PHP configuration could look like this: + :: + + cat /etc/php5/conf.d/mysql.ini + # configuration for PHP MySQL module + extension=pdo_mysql.so + extension=mysql.so + + [mysql] + mysql.allow_local_infile=On + mysql.allow_persistent=On + mysql.cache_size=2000 + mysql.max_persistent=-1 + mysql.max_links=-1 + mysql.default_port= + mysql.default_socket=/var/lib/mysql/mysql.sock + mysql.default_host= + mysql.default_user= + mysql.default_password= + mysql.connect_timeout=60 + mysql.trace_mode=Off + + Now you need to create a database user and the database itself by using the + MySQL command line interface. The database tables will be created by ownCloud + when you login for the first time. + :: + + # mysql -hlocalhost -uroot -proot-password + mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; + mysql> CREATE DATABASE IF NOT EXISTS owncloud; + mysql> GRANT ALL PRIVILEGES ON owncloud.* TO 'username'@'localhost' IDENTIFIED BY 'password'; + mysql> QUIT + + In the ownCloud configuration you need to set the hostname on which the + database is running and a valid username and password to access it. + :: + + "dbtype" => "mysql", + "dbname" => "owncloud", + "dbuser" => "username", + "dbpassword" => "password", + "dbhost" => "localhost", + "dbtableprefix" => "", + +* **PostgreSQL Database** + + If you decide to use a PostgreSQL database make sure that you have installed + and enabled the PostgreSQL extension in PHP. The PHP configuration could look + like this: + :: + + cat /etc/php5/conf.d/pgsql.ini + # configuration for PHP PostgreSQL module + extension=pdo_pgsql.so + extension=pgsql.so + + [PostgresSQL] + pgsql.allow_persistent = On + pgsql.auto_reset_persistent = Off + pgsql.max_persistent = -1 + pgsql.max_links = -1 + pgsql.ignore_notice = 0 + pgsql.log_notice = 0 + + Now you need to create a database user and the database itself by using the + PostgreSQL command line interface. The database tables will be created by + ownCloud when you login for the first time. + :: + + # psql -hlocalhost -Upostgres + postgres=# CREATE USER username WITH PASSWORD 'password'; + postgres=# CREATE DATABASE owncloud TEMPLATE template0 ENCODING 'UNICODE'; + postgres=# ALTER DATABASE owncloud OWNER TO username; + postgres=# GRANT ALL PRIVILEGES ON DATABASE owncloud TO username; + postgres=# \q + + In the ownCloud configuration you need to set the hostname on which the + database is running and a valid username (and sometimes a password) to + access it. If the database has been installed on the same server as + ownCloud a password is very often not required to access the database. + :: + + "dbtype" => "pgsql", + "dbname" => "owncloud", + "dbuser" => "username", + "dbpassword" => "password", + "dbhost" => "localhost", + "dbtableprefix" => "", + +Trouble Shooting +---------------- + +1. **How can I find out if my MySQL/PostgreSQL server is reachable?** + + Use the ping command to check the server availability: + :: + # ping db.server.dom + PING db.server.dom (ip-address) 56(84) bytes of data. + 64 bytes from your-server.local.lan (192.168.1.10): icmp_req=1 ttl=64 time=3.64 ms + 64 bytes from your-server.local.lan (192.168.1.10): icmp_req=2 ttl=64 time=0.055 ms + 64 bytes from your-server.local.lan (192.168.1.10): icmp_req=3 ttl=64 time=0.062 ms + +2. **How can I find out if a created user can access a database?** + + The easiet way to test if a database can be accessed is by starting the + command line interface: + + **SQLite** + :: + # sqlite3 /www/htdocs/owncloud/data/owncloud.db + sqlite> .version + SQLite 3.7.15.1 2012-12-19 20:39:10 6b85b767d0ff7975146156a99ad673f2c1a23318 + sqlite> .quit + + **MySQL** + :: + # mysql -hlocalhost -uusername -ppassword + mysql> SHOW VARIABLES LIKE "version"; + +---------------+--------+ + | Variable_name | Value | + +---------------+--------+ + | version | 5.1.67 | + +---------------+--------+ + 1 row in set (0.00 sec) + mysql> quit + + **PostgreSQL** + :: + # ./psql -hlocalhost -Uusername -downcloud + postgres=# SELECT version(); + version + ----------------------------------------------------------------------------------------------------- + PostgreSQL 8.4.12 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.1.3 20080704 (prerelease), 32-bit + (1 row) + postgres=# \q + +3. **Are there any other useful SQL commands which are worse to know?** + + **Show Database Users** + :: + SQLite : No database user is required. + MySQL : SELECT User,Host FROM mysql.user; + PostgreSQL: SELECT * from pg_user; + + **Show available Databases** + :: + SQLite : .databases (normally one database per file!) + MySQL : SHOW DATABASES; + PostgreSQL: \l + + **Show ownCloud Tables in Database** + :: + SQLite : .tables + MySQL : USE owncloud; SHOW TABLES; + PostgreSQL: \c owncloud; \d + + **Quit Database** + :: + SQLite : .quit + MySQL : quit + PostgreSQL: \q diff --git a/admin_manual/configuration_logging.rst b/admin_manual/configuration_logging.rst new file mode 100644 index 000000000..9f2015254 --- /dev/null +++ b/admin_manual/configuration_logging.rst @@ -0,0 +1,39 @@ +Logging Configuration +===================== + +To get an idea of how the current status of an ownCloud system is or to +solve issues log information is a good point to start with. ownCloud allows +to configure the way how and which depth of information should be logged. + +Parameters +---------- + + First you need to decide in which way logging should be done. You can + choose between the two options ``owncloud`` and ``syslog``. Then you need + to configure the log level which directly influences how much information + will be logged. You can choose between ``0=DEBUG``, ``1=INFO``, ``2=WARN`` + and ``3=ERROR``. + The most detailed information will be written if ``0`` (DEBUG) is set, the + least information will be written if ``3`` (ERROR) is set. Keep in mind that + it might slow down the whole system if a too detailed logging will has been + configured. By default the log level is set to ``2`` (WARN). + + **owncloud** + - All log information will be written to a separate log file which can be + viewed using the log menu in the admin menu of ownCloud. By default a log + file named ``owncloud.log`` will be created in the directory which has + been configured by the ``datadirectory`` parameter. + :: + + "log_type" => "owncloud", + "logfile" => "owncloud.log", + "loglevel" => "3", + + **syslog** + - All log information will be send to the default syslog deamon of a system. + :: + + "log_type" => "syslog", + "logfile" => "", + "loglevel" => "3", +