diff --git a/admin_manual/auth_ldap.rst b/admin_manual/auth_ldap.rst
index c57167e61..d1288d73e 100644
--- a/admin_manual/auth_ldap.rst
+++ b/admin_manual/auth_ldap.rst
@@ -6,7 +6,7 @@ logging in with LDAP credentials including:
* LDAP group support
* File sharing with users and groups
-* Access via WebDAV and of course ownCloud Desktop Clien
+* Access via WebDAV and of course ownCloud Desktop Client
* Versioning, external Storages and all other ownCloud Goodies
To connect to an LDAP server the configuration needs to be set up properly.
@@ -26,7 +26,7 @@ LDAP server and use it with ownCloud.
LDAP Basic Settings
-Note that a hint will be shown on the right handside, when hovering with the
+Note that a hint will be shown on the right hand side, when hovering with the
mouse over an input field. This gives you more context information while
filling out the settings.
@@ -34,14 +34,14 @@ Settings Details
~~~~~~~~~~~~~~~~
Host:
- The hostname of the LDAP server. It can also be a ``ldaps://`` URI, for
+ The host name of the LDAP server. It can also be a ``ldaps://`` URI, for
instance.
* *Example: directory.my-company.com*
Base DN:
The base DN of LDAP, from where all users and groups can be reached.
- Seperated Base DNs for users and groups can be set in the Advanced
+ Separated Base DNs for users and groups can be set in the Advanced
tab. Nevertheless, this field is mandatory.
* *Example: dc=my-company,dc=com*
@@ -59,10 +59,10 @@ Password:
User Login Filter:
The filter to use when a users tries to login. Use ``%uid`` as placeholder
- for the username. Note, that login applies this filter only, but not User
+ for the user name. Note, that login applies this filter only, but not User
List Filter. This may change in future.
- * Example (allows login with username and email adress): ``(|(uid=%uid)(email=$uid))``
+ * Example (allows login with user name and email address): ``(|(uid=%uid)(email=$uid))``
User List Filter:
The filter to use when a search for users will be executed.
@@ -81,7 +81,7 @@ Advanced Settings
In the LDAP Advanced settings section you can define options, that are less
common to set. They are not needed for a working connection, unless you use a
non-standard Port, e.g. It can also have a positive effect on the performance
-to specifiy distinguished bases for user and group searches.
+to specify distinguished bases for user and group searches.
.. figure:: images/ldap-advanced-settings-oc451.png
@@ -111,13 +111,13 @@ Group Member association:
* Example: uniquemember
Use TLS:
- Wether to use TLS encrypted connection to the LDAP server.
- In case you use SSL connections (via ldaps) do not check it, it will fail.
+ Wether to use TLS encrypted connection to the LDAP server. In case you use
+ SSL connections (via the ldaps scheme) do not check it, it will fail.
* Example: [ ]
Case insensitive LDAP server (Windows):
- Wether theLDAP server is running on a Windows Host
+ Wether the LDAP server is running on a Windows Host
* Example: [ ]
@@ -128,9 +128,9 @@ Turn off SSL certificate validation:
* Example: [ ]
User Display Name Field:
- The attribute that should be used as ownCloud username. ownCloud allows
+ The attribute that should be used as ownCloud user name. ownCloud allows
a limited set of characters ``(a-zA-Z0-9.-_@)``, every other character
- will be replaced in ownCloud. Once a username is assigned, it will not be
+ will be replaced in ownCloud. Once a user name is assigned, it will not be
changed, i.e. changing this value will only have effect to new LDAP users.
The default, uid, does not exist in AD, switch to ``cn``, for example,
otherwise you will not see any users.
@@ -138,11 +138,10 @@ User Display Name Field:
* Example: displayName
Group Display Name Field:
- The attribute that should be used as ownCloud
- groupname. ownCloud allows a limited set of characters (a-zA-Z0-9.-_@), every
- other character will be replaced in ownCloud. Once a groupname is assigned, it
- will not be changed, i.e. changing this value will only have effect to new
- LDAP groups.
+ The attribute that should be used as ownCloud group name. ownCloud allows a
+ limited set of characters (a-zA-Z0-9.-_@), every other character will be
+ replaced in ownCloud. Once a group name is assigned, it will not be changed,
+ i.e. changing this value will only have effect to new LDAP groups.
* Example: ``cn``
@@ -151,7 +150,7 @@ Quota Attribute:
there from. Specify the attribute here, otherwise keep it empty.
* Example: ownCloudQuota
- * formerly Quota Field in oC 4.0
+ * formerly Quota Field in ownCloud 4.0
Quota Default:
Override ownCloud default quota for LDAP users who do not
@@ -167,7 +166,7 @@ Email Attribute:
Cache Time-To-Live:
We introduced a cache to avoid unnecessary LDAP traffic,
- for example lookups check wether the users exists on every page request or
+ for example lookups check whether the users exists on every page request or
WebDAV interaction. It is also supposed to speed up the Admin → User page or
list of users to share with, once it is populated. Changing this setting
empties the Cache. The time is given in seconds.
@@ -177,7 +176,7 @@ Cache Time-To-Live:
User Home Folder Naming Rule:
By default, the ownCloud creates the user
directory, where all files and meta data are kept, according to the ownCloud
- username. You may want to override this setting and name it after an
+ user name. You may want to override this setting and name it after an
attribute’s value. Once set for a user, the user name folder will not change,
i.e. changing this value will only have effect to new LDAP users. Leave it
empty to default behaviour
@@ -198,7 +197,7 @@ Testing the configuration
In this version we introduced the ``Test Configuration`` button on the bottom
of the LDAP settings section. It will always check the values as currently
-given in the input fields. You do not need to save before testíng. By clicking
+given in the input fields. You do not need to save before testing. By clicking
on the button, ownCloud will try to bind to the ownCloud server with the
settings currently given in the input fields. The response will look like this:
@@ -206,7 +205,7 @@ settings currently given in the input fields. The response will look like this:
Failure
-In case the configuration fails, you can see details in ownCloud’s log, which
+In case the configuration fails, you can see details in ownCloud's log, which
is in the data directory and called ``owncloud.log`` or on the bottom the
``Settings → Admin page``. Unfortunately it requires a reload – sorry for the
inconvenience.
@@ -226,15 +225,15 @@ Some parts of how the LDAP backend works are described here. May it be helpful.
User and Group Mapping
----------------------
-In ownCloud, the username is automatically the user ID, same applies for
+In ownCloud, the user name is automatically the user ID, same applies for
groups. That’s why we map the DN and UUID of the LDAP object to an ownCloud
name. Those mappings are done in the database table ldap_user_mapping and
-ldap_group_mapping. The username is also used for the user’s folder, which
+ldap_group_mapping. The user name is also used for the user’s folder, which
contains files and meta data. Most ownCloud applications, like Sharing, use the
-username to refer to a user. Renaming a user (or a group) is not supported.
+user name to refer to a user. Renaming a user (or a group) is not supported.
That means that your LDAP configuration should be good and ready before putting
it into production. The mapping tables are filled early, but as long as you are
-testing, you empty the tables any time. Don’t do this in production. If you
+testing, you empty the tables any time. Do not do this in production. If you
want to rename a user or a group, be very careful.
Caching
@@ -242,7 +241,7 @@ Caching
For performance reasons a cache has been introduced to ownCloud. He we store
all users and groups, group memberships or internal userExists-requests. Since
-ownCloud is written in PHP and each and every page rerquest (also done by Ajax)
+ownCloud is written in PHP and each and every page request (also done by Ajax)
loads ownCloud and would execute one or more LDAP queries again, you do want to
have some of those queries cached and save those requests and traffic. It is
highly recommended to have the cache filled for a small amount of time, which
diff --git a/admin_manual/conf.py b/admin_manual/conf.py
index b8883e422..fe6d47ece 100644
--- a/admin_manual/conf.py
+++ b/admin_manual/conf.py
@@ -25,7 +25,8 @@ import sys, os
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = []
+extensions = ['sphinxcontrib.phpdomain', 'sphinx.ext.todo']
+
# Add any paths that contain templates here, relative to this directory.
templates_path = ['../_shared_assets/templates']
diff --git a/admin_manual/custom_mount_config.rst b/admin_manual/custom_mount_config.rst
new file mode 100644
index 000000000..984672c66
--- /dev/null
+++ b/admin_manual/custom_mount_config.rst
@@ -0,0 +1,204 @@
+Custom Mount Configuration
+==========================
+
+Since ownCloud 4.0 it is possible to configure the filesystem to mount external
+storage providers into ownCloud's virtual file system. You can configure the
+file system by creating and editing ``/config/mount.php``, the configuration
+file holds a PHP array configuring 2 types of entries:
+
+- **Group mounts:** each entry configures a mount for each user in group.
+- **User mounts:** each entry configures a mount for a single user or for all
+ users.
+
+For each type, there is an array with the user/group name as key, and an array
+of configuration entries as value. Each entry consist of the class name of the
+storage backend and an array of backend specific options. The template
+``$user`` can be used in the mount point or backend options. As of writing the
+following storage backends are available for use:
+
+- Local file system
+- FTP
+- WebDAV
+- `OpenStack Swift`_
+- SMB (not available in 4.0)
+
+Example:
+~~~~~~~~
+
+.. code-block:: php
+
+ array(
+ 'admin'=>array(
+ '/$user/files/Admin_Stuff'=>array(
+ 'class'=>'OC_Filestorage_Local',
+ 'options'=>array(...)
+ ),
+ ),
+ ),
+ 'user'=>array(
+ 'all'=>array(
+ '/$user/files/Pictures'=>array(
+ 'class'=>'OC_Filestorage_DAV',
+ 'options'=>array(...)
+ ),
+ ),
+ 'someuser'=>array(
+ '/someuser/files/Music'=>array(
+ 'class'=>'OC_Filestorage_FTP',
+ 'options'=>array(...)
+ ),
+ ),
+ )
+ );
+
+Backends:
+---------
+
+Local Filesystem:
+~~~~~~~~~~~~~~~~~
+
+The local filesystem backend mounts a folder on the server into the
+virtual filesystem, the class to be used is ``OC_Filestorage_Local`` and
+takes the following options:
+
+- ``datadir`` : the path to the local directory to be mounted.
+
+Ensure that the web server has sufficient permissions on the mounted folder
+
+Example:
+~~~~~~~~
+
+.. code-block:: php
+
+ array( 'class'=>'OC_Filestorage_Local',
+ 'options'=>array( 'datadir'=>'/home/someuser/Music' )
+ )``
+
+FTP:
+~~~~
+
+The FTP backend mounts a folder on a remote FTP server into the virtual
+filesystem and is part of the ‘External storage support’ app, the class
+to be used is ``OC_Filestorage_FTP`` and takes the following options:
+
+- ``host``: the hostname of the ftp server.
+- ``user``:the username used to login on the ftp server
+- ``password``: the passwordt to login on the ftp server
+- ``secure``: whether to use ftps:// to connect to the ftp server instead
+ of ftp:// (optional, defaults to false)
+- ``root``: the folder inside the ftp server to mount (optional, defaults
+ to ‘/’)
+
+
+
+PHP needs to be build with FTP support for this backend to work.
+
+
+Example:
+~~~~~~~~
+
+.. code-block:: php
+
+ array( 'class'=>'OC_Filestorage_FTP,
+ 'options'=>array (
+ 'host'=>'ftp.myhost.com',
+ 'user'=>'johndoe',
+ 'password'=> 'secret',
+ 'root'=>'/Videos')
+ )
+
+WebDAV:
+~~~~~~~
+
+The WebDAV backend mounts a folder on a remote WebDAV server into the
+virtual filesystem and is part of the ‘External storage support’ app,
+the class to be used is ``OC_Filestorage_DAV``\ and takes the following
+options:
+
+- ``host``: the hostname of the webdav server.
+- ``user``: the username used to login on the webdav server
+- ``password``: the passwordt to login on the webdav server
+- ``secure``: whether to use https:// to connect to the webdav server
+ instead of http:// (optional, defaults to false)
+- ``root``: the folder inside the webdav server to mount (optional,
+ defaults to ‘/’)
+
+Example:
+~~~~~~~~
+
+.. code-block:: php
+
+ array( 'class'=>'OC_Filestorage_DAV,
+ 'options'=>array(
+ 'host'=>'myhost.com/webdav.php',
+ 'user'=>'johndoe',
+ 'password'=>'secret',
+ 'secure'=>true)
+ )
+
+OpenStack Swift:
+~~~~~~~~~~~~~~~~
+
+The Swift backend mounts a container on an OpenStack Object Storage
+server into the virtual filesystem and is part of the ‘External storage
+support’ app, the class to be used is ``OC_Filestorage_SWIFT``\ and
+takes the following options:
+
+- ``host``: the hostname of the authentication server for the swift
+ storage.
+- ``user``: the username used to login on the swift server
+- ``token``: the authentication token to login on the swift server
+- ``secure``: whether to use ftps:// to connect to the swift server instead
+ of ftp:// (optional, defaults to false)
+- ``root``: the container inside the swift server to mount (optional,
+ defaults to ‘/’)
+
+Example:
+~~~~~~~~
+
+.. code-block:: php
+
+ array( 'class'=>'OC_Filestorage_SWIFT,
+ 'options'=>array(
+ 'host'=>'swift.myhost.com/auth',
+ 'user'=>'johndoe',
+ 'token'=>'secret',
+ 'root'=>'/Videos',
+ 'secure'=>true )
+ )
+
+SMB:
+~~~~
+
+The SMB backend mounts a folder on a remote Samba server into the
+virtual filesystem and is part of the ‘External storage support’ app,
+the class to be used is ``OC_Filestorage_SMB``\ and takes the following
+options:
+
+- ``host``: the host name of the samba server.
+- ``user``: the user name used to login on the samba server
+- ``password``: the password to login on the samba server
+- ``share``: the share on the samba server to mount
+- ``root``: the folder inside the samba share to mount (optional, defaults
+ to ‘/’)
+
+The SMB backend requires ``smbclient`` to be installed on the server and
+is currently only available in git
+
+Example:
+~~~~~~~~
+
+.. code-block:: php
+
+ array( 'class'=>'OC_Filestorage_SMB,
+ 'options'=>array (
+ 'host'=>'myhost.com',
+ 'user'=>'johndoe',
+ 'password'=> 'secret',
+ 'share'=>'/test',
+ '/Pictures' )
+ )
+
+.. _OpenStack Swift: http://openstack.org/projects/storage/
diff --git a/admin_manual/custom_user_backend.rst b/admin_manual/custom_user_backend.rst
new file mode 100644
index 000000000..b5eb8a109
--- /dev/null
+++ b/admin_manual/custom_user_backend.rst
@@ -0,0 +1,76 @@
+Custom User Backend Configuration
+=================================
+
+Starting with ownCloud 4.5 is possible to configure additional user backends
+in ownCloud's configuration file (config/config.php) using the following
+syntax:
+
+ ::
+
+ 'user_backends'=>array(
+ array(
+ 'class'=>...,
+ 'arguments'=>array(...)
+ )
+ )
+
+Currently the “External user support” (user_external) app supports the
+provides the following user backends:
+
+IMAP
+~~~~
+
+Provides authentication against IMAP servers
+
+ - **Class:**\ OC_User_IMAP
+ - **Arguments:**\ a mailbox string as defined `here`_
+ - **Example:**
+
+ ::
+
+ 'user_backends'=>array(
+ array(
+ 'class'=>'OC_User_IMAP',
+ 'arguments'=>array('{imap.gmail.com:993/imap/ssl}INBOX')
+ )
+ )
+
+
+
+SMB
+~~~
+
+Provides authentication against Samba servers
+
+ - **Class:**\ OC_User_SMB
+ - **Arguments:**\ the samba server to authenticate against
+ - **Example:**
+
+ ::
+
+ 'user_backends'=>array(
+ array(
+ 'class'=>'OC_User_SMP',
+ 'arguments'=>array('localhost')
+ )
+ )
+
+FTP
+~~~
+
+Provides authentication against FTP servers
+
+ - **Class:**\ OC_User_FTP
+ - **Arguments:**\ the FTP server to authenticate against
+ - **Example:**
+
+ ::
+
+ 'user_backends'=>array(
+ array(
+ 'class'=>'OC_User_FTP',
+ 'arguments'=>array('localhost')
+ )
+ )
+
+.. _here: http://www.php.net/manual/en/function.imap-open.php
diff --git a/admin_manual/images/ucsint.png b/admin_manual/images/ucsint.png
new file mode 100644
index 000000000..cc02c5132
Binary files /dev/null and b/admin_manual/images/ucsint.png differ
diff --git a/admin_manual/images/ucsint1.png b/admin_manual/images/ucsint1.png
new file mode 100644
index 000000000..5cca1d8a9
Binary files /dev/null and b/admin_manual/images/ucsint1.png differ
diff --git a/admin_manual/images/ucsint2.png b/admin_manual/images/ucsint2.png
new file mode 100644
index 000000000..8c8a286d7
Binary files /dev/null and b/admin_manual/images/ucsint2.png differ
diff --git a/admin_manual/images/win7features.jpg b/admin_manual/images/win7features.jpg
new file mode 100644
index 000000000..ab0e60561
Binary files /dev/null and b/admin_manual/images/win7features.jpg differ
diff --git a/admin_manual/images/winserverroles.jpg b/admin_manual/images/winserverroles.jpg
new file mode 100644
index 000000000..159cfbf51
Binary files /dev/null and b/admin_manual/images/winserverroles.jpg differ
diff --git a/admin_manual/index.rst b/admin_manual/index.rst
index ab54285ea..de8deb8a1 100644
--- a/admin_manual/index.rst
+++ b/admin_manual/index.rst
@@ -7,9 +7,11 @@ Contents
:maxdepth: 2
introduction
- installation
+ installation
update
auth_ldap
+ custom_mount_config
+ custom_user_backend
.. add more chapters
diff --git a/admin_manual/installation.rst b/admin_manual/installation.rst
index 7dd9379fb..ac0d354cb 100644
--- a/admin_manual/installation.rst
+++ b/admin_manual/installation.rst
@@ -1,94 +1,17 @@
Installation
============
-.. todo:: Update the dependencies to 4.5 dependencies
+This chapter will introduce you to the installation of ownCloud in different
+scenarios.
-To run ownCloud, your webserver must have the following installed:
+If you want to just try ownCloud in a virtual machine without any configuration,
+skip ahead to the appliance section, where you will find ready-to-use images.
-* php5 (>= 5.3)
-* php5-json
-* php-xml
-* php-mbstring
-* php5-zip
-* php5-gd
+.. include:: installation_source.rst
+.. include:: installation_linux.rst
+.. include:: installation_webservernotes.rst
+.. include:: installation_macos.rst
+.. include:: installation_windows.rst
+.. include:: installation_ucs.rst
+.. include:: installation_appliance.rst
-And as *optional* dependencies:
-
-* php5-sqlite (>= 3)
-* curl
-* libcurl3
-* libcurl3-dev
-* php5-curl
-* php-pdo
-
-Commands for Ubuntu and Debian:
-.. todo:: Document other distros (Windows, Mac?)
-
-::
-
- apt-get install apache2 php5 php5-json php-xml php-mbstring php5-zip php5-gd
- apt-get install php5-sqlite curl libcurl3 libcurl3-dev php5-curl php-pdo
-
-You don’t need any WebDAV support of your webserver (i.e. apache’s mod_webdav)
-to access your ownCloud data via WebDAV, ownCloud has a WebDAV server built in.
-
-Extract ownCloud and copy to your webserver
--------------------------------------------
-
-::
-
- tar -xjf path/to/downloaded/owncloud-x.x.x.tar.bz2
- cp -r owncloud /path/to/your/webserver
-
-Set the directory permissions
------------------------------
-
-The owner of your webserver must own the apps/, data/ and config/ directories
-in your ownCloud install. You can do this by running the following command for
-the apps, data and config directories:
-
-::
-
- chown -R www-data:www-data /path/to/your/owncloud/install/data
-
-Replace ``www-data:www-data`` with the user and group of the owner of your
-webserver.
-
-.. note:: The ``data/`` directory will only be created after setup has run
- (see below) and is not present by default in the tarballs.
-
-Enable .htaccess and mod_rewrite if running apache
---------------------------------------------------
-
-If you are running the apache webserver, it is recommended that you enable
-``.htaccess`` files as ownCloud uses them to enhance security and allows
-you to use webfinger. To enable .htaccess files you need to ensure that
-``AllowOverride`` is set to ``All`` in the ``Directory /var/www/`` section of
-your virtual host file. This is usually in ``/etc/apache2/sites-enabled/000-default``.
-You should also run ``a2enmod rewrite`` and ``a2enmod headers``. Then restart
-apache: service apache2 restart (for Ubuntu systems). In order for the maximum
-upload size to be configurable, the .htaccess file in the owncloud folder needs
-to be made writable by the server.
-
-Follow the install wizard
--------------------------
-
-Open your web browser and navigate to your ownCloud instance. If you are
-installing ownCloud on the same machine as you will access the install
-wizard from, the url will be: http://localhost/ (or http://localhost/owncloud).
-For basic installs we recommend SQLite as it is easy to setup (ownCloud will do
-it for you). For larger installs you should use MySQL or PostgreSQL. Click on the
-Advanced options to show the configuration options. You may enter admin
-credentials and let ownCloud create its own database user, or enter a
-preconfigured user. If you are not using apache as the webserver, please set
-the data directory to a location outside of the document root. See the advanced
-install settings.
-
-Finished!
----------
-
-Login and start using ownCloud! For more details on configuring
-your ownCloud, please visit the Support Centre. If you plan on using the
-Webfinger app and your ownCloud installation is not in the webroot then you’ll
-have to manually link ``/var/www/.well-known`` to
-``/path/to/your/owncloud/.well-known``.
diff --git a/admin_manual/installation_appliance.rst b/admin_manual/installation_appliance.rst
new file mode 100644
index 000000000..ef6be081e
--- /dev/null
+++ b/admin_manual/installation_appliance.rst
@@ -0,0 +1,34 @@
+Appliances
+----------
+
+If you are looking for virtual machine images, check the Software Appliances
+section. The Hardware Appliances section is of interest for people seeking to
+run ownCloud on appliance hardware (i.e. NAS filers, routers, etc.).
+
+
+Software Appliances
+~~~~~~~~~~~~~~~~~~~
+
+There are number of pre-made virtual machine-based appliances:
+
+- `SUSE Studio, ownCloud on openSuSE`_, runnable directly from an USB stick.
+- `Ubuntu charm, ownCloud 4.5`_
+- `PCLinuxOS based appliance`_
+- `Fedora based appliance`_
+
+ownCloud on Hardware Appliances
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+These are tutorials provided by the user communities of the respective appliances:
+
+- `QNAP Guide`_ for QNAP NAS appliances
+- `OpenWrt Guide`_ for the popular embedded distribution for routers and NAS devices.
+
+.. todo:: Tutorials for running owncloud on Synology and Dreamplug.
+
+.. _OpenWrt Guide: http://wiki.openwrt.org/doc/howto/owncloud
+.. _SUSE Studio, ownCloud on openSuSE: http://susestudio.com/a/TadMax/owncloud-in-a-box
+.. _Ubuntu charm, ownCloud 4.5: http://jujucharms.com/charms/precise/owncloud
+.. _PCLinuxOS based appliance: http://www.pclinuxos.com/forum/index.php/topic,100875.0.html
+.. _Fedora based appliance: http://echorand.me/2012/02/26/owncloud-boxgrinder-pagekite-owncloud-appliance/
+.. _QNAP Guide: http://wiki.qnap.com/wiki/Category:OwnCloud
diff --git a/admin_manual/installation_linux.rst b/admin_manual/installation_linux.rst
new file mode 100644
index 000000000..ec870a370
--- /dev/null
+++ b/admin_manual/installation_linux.rst
@@ -0,0 +1,121 @@
+Linux Distributions
+-------------------
+
+This section describes the installation process for different
+distributions. If there are pre-made packages from ownCloud,
+you are encouraged to prefer those over the vendor-provided
+ones, since they usually are more up-to-date.
+
+Archlinux
+~~~~~~~~~
+
+There are two AUR packages for ownCloud:
+
+- `stable version`_
+- `development version`_
+
+openSUSE
+~~~~~~~~
+
+.. note:: ready-to-use SLES and openSUSE RPM packages are available
+ in the openSUSE Build Service `ownCloud repository`_.
+
+1. Copy ownCloud to Apache's server directory : ``/srv/www/htdocs``
+2. Give the web server the necessary permissions:
+ ``sudo chown -R wwwrun owncloud``
+
+ - If you do not use "sudo" then you have to become root and
+ execute: ``chown -R wwwrun owncloud`` in the directory.
+ - (If you’re using mysql, you have to set the database character set
+ to something else then utf~8, for example latin1 otherwise some
+ keys will be to long for mysql)
+
+3. Open the folder in a browser and complete the setup wizard
+
+If have followed the steps above and want to try it out, run this
+command in a terminal to start Apache if it’s not already running:
+
+1. ``sudo /etc/init.d/apache2 start``
+2. Go to ``http://servername/owncloud`` and walk through the setup.
+
+Fedora
+~~~~~~
+
+.. note:: ready-to-use RPM packages are available
+ in the openSUSE Build Service `ownCloud repository`_.
+
+Make sure SELinux is disabled or else the installation process will fail
+with the following message: ``Config file (config/config.php) is not
+writable for the webserver``.
+
+Configure Apache:
+
+1. If you already have a website running from Document Root but would
+ still like to install OwnCloud you can use a Name-based virtual host
+ entry and subdomain.
+2. Edit your DNS record following this example: ``point owncloud.foo.com >
+ ip.ip.ip.ip``
+
+.. todo::
+
+CentOS 5 & 6
+~~~~~~~~~~~~
+
+.. note:: ready-to-use CentOS RPM packages are available
+ in the openSUSE Build Service `ownCloud repository`_.
+
+1. Create a new file in ``/etc/httpd/conf/`` and call it ``owncloud.conf``.
+2. You can use the following as an example:
+
+::
+
+
+ Alias /owncloud /var/www/owncloud/
+
+
+ Options None
+ Order allow,deny
+ allow from all
+
+
+ ServerAdmin foo@foofarm.com
+ DocumentRoot /var/www/html/owncloud
+ ServerName owncloud.foo.com
+ ErrorLog logs/owncloud.foo.info-error_log
+ CustomLog logs/owncloud.foo.info-access_log common
+
+
+
+3. Now edit your httpd.conf file which is usually located in
+ ``/etc/httpd/conf/httpd.conf``
+4. Add the following to the bottom:
+ ``Include /etc/httpd/conf/owncloud.conf``
+5. Restart apache and now when you point your browser to
+ ``owncloud.foo.com`` it should properly load without disturbing *foo.com*
+
+Gentoo
+~~~~~~
+
+Basically do everything like for a standard web server (see
+above). Change permissions: ``chown -R apache:apache owncloud``\
+Allow .htaccess, modify ``/etc/apache2/vhosts.d/00_default_vhost.conf`` and
+make sure this is in
+
+::
+
+
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride All
+ Order allow,deny
+ allow from all
+
+
+PCLinuxOS
+~~~~~~~~~
+
+Follow the Tutorial `ownCloud, installation and setup`_ on the PCLinuxOS web site.
+
+.. _stable version: http://aur.archlinux.org/packages.php?ID=47585
+.. _development version: http://aur.archlinux.org/packages.php?ID=38767
+.. _ownCloud repository: http://software.opensuse.org/search?q=owncloud&baseproject=ALL&lang=de
+.. _ownCloud, installation and setup: http://pclinuxoshelp.com/index.php/Owncloud,_installation_and_setup
diff --git a/admin_manual/installation_macos.rst b/admin_manual/installation_macos.rst
new file mode 100644
index 000000000..1d02a352e
--- /dev/null
+++ b/admin_manual/installation_macos.rst
@@ -0,0 +1,17 @@
+Mac OS X
+--------
+
+.. todo:: This section of the manual needs to be revised.
+
+This relies on `MAMP`_, which provides the required environment.
+
+1. Install MAMP and run it.
+2. Go to ‘Preferences ? Apache’ and set ‘Document Root’ to
+ ``/Users//Sites``, so your Sites directory will be
+ used as Apache root.
+3. Download ownCloud
+4. Move it to ``~/Sites`` and extract it:
+ ``tar xfpj owncloud-4.5.tar.bz2``
+5. Now you can set it up by going to http://localhost:8888/owncloud
+
+.. _MAMP: http://www.mamp.info
diff --git a/admin_manual/installation_source.rst b/admin_manual/installation_source.rst
new file mode 100644
index 000000000..58c7fefba
--- /dev/null
+++ b/admin_manual/installation_source.rst
@@ -0,0 +1,103 @@
+Manual Installation
+-------------------
+
+If you do not want to use packages, here is how you setup ownCloud on from scratch
+using a classic :abbr:`LAMP (Linux, Apache, MySQL, PHP)` setup:
+
+Prerequisites
+~~~~~~~~~~~~~
+
+To run ownCloud, your webserver must have the following installed:
+
+* php5 (>= 5.3)
+* php5-json
+* php-xml
+* php-mbstring
+* php5-zip
+* php5-gd
+
+And as *optional* dependencies:
+
+* php5-sqlite (>= 3)
+* curl
+* libcurl3
+* libcurl3-dev
+* php5-curl
+* php5-intl
+* php-pdo
+
+Commands for Ubuntu and Debian:
+
+::
+
+ apt-get install apache2 php5 php5-json php-xml php-mbstring php5-zip php5-gd
+ apt-get install php5-sqlite curl libcurl3 libcurl3-dev php5-curl php-pdo
+
+.. todo:: Document other distributions.
+
+You don’t need any WebDAV support of your webserver (i.e. apache’s mod_webdav)
+to access your ownCloud data via WebDAV, ownCloud has a WebDAV server built in.
+
+Extract ownCloud and Copy to Your Webserver
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+::
+
+ tar -xjf path/to/downloaded/owncloud-x.x.x.tar.bz2
+ cp -r owncloud /path/to/your/webserver
+
+Set the Directory Permissions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The owner of your webserver must own the apps/, data/ and config/ directories
+in your ownCloud install. You can do this by running the following command for
+the apps, data and config directories:
+
+::
+
+ chown -R www-data:www-data /path/to/your/owncloud/install/data
+
+Replace ``www-data:www-data`` with the user and group of the owner of your
+webserver.
+
+.. note:: The ``data/`` directory will only be created after setup has run
+ (see below) and is not present by default in the tarballs.
+
+Enable .htaccess and mod_rewrite if Running Apache
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you are running the apache webserver, it is recommended that you enable
+``.htaccess`` files as ownCloud uses them to enhance security and allows you to
+use webfinger. To enable .htaccess files you need to ensure that
+``AllowOverride`` is set to ``All`` in the ``Directory /var/www/`` section of
+your virtual host file. This is usually in
+``/etc/apache2/sites-enabled/000-default``. You should also run ``a2enmod
+rewrite`` and ``a2enmod headers``. Then restart apache: service apache2 restart
+(for Ubuntu systems). In order for the maximum upload size to be configurable,
+the .htaccess file in the owncloud folder needs to be made writable by the
+server.
+
+Follow the Install Wizard
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Open your web browser and navigate to your ownCloud instance. If you are
+installing ownCloud on the same machine as you will access the install wizard
+from, the url will be: http://localhost/ (or http://localhost/owncloud). For
+basic installs we recommend SQLite as it is easy to setup (ownCloud will do it
+for you). For larger installs you should use MySQL or PostgreSQL. Click on the
+Advanced options to show the configuration options. You may enter admin
+credentials and let ownCloud create its own database user, or enter a
+preconfigured user. If you are not using apache as the webserver, please set
+the data directory to a location outside of the document root. See the advanced
+install settings.
+
+Test your Installation
+~~~~~~~~~~~~~~~~~~~~~~
+
+Login and start using ownCloud. Check your web servers errror log. If it shows
+error, you might have missed a dependency or hit a bug with your particular
+configuration.
+
+If you plan on using the Webfinger app and
+your ownCloud installation is not in the webroot then you’ll have to manually
+link ``/var/www/.well-known`` to ``/path/to/your/owncloud/.well-known``.
diff --git a/admin_manual/installation_ucs.rst b/admin_manual/installation_ucs.rst
new file mode 100644
index 000000000..37ab0a14a
--- /dev/null
+++ b/admin_manual/installation_ucs.rst
@@ -0,0 +1,181 @@
+Univention Corporate Server
+---------------------------
+
+Subscribers to the ownCloud Enterprise edition can also integrate with
+:abbr:`UCS (Univention Corporate Server)`.
+
+Prerequisites
+~~~~~~~~~~~~~
+
+The ownCloud integration relies on the MySQL database. Since "PostresSQL"
+is more in a experimental state and "SQLite" is not very well suited for
+multi-user installations, MySQL is the only way first of all. As of UCS
+3.0 MySQL is not part of the maintained repository. Hence you you should
+install it first and probably deactivate the unmaintained repository
+eventually::
+
+ # ucr set repository/online/unmaintained="yes"
+ # univention-install mysql-server
+ # ucr set repository/online/unmaintained="no"
+
+.. note:: If MySQL is already installed and/or a password for the user root is
+ set, please make sure it is saved in /etc/mysql.secret, otherwise you
+ will experience problems.
+
+In case you want to install ownCloud from the repository, it is already enough
+to enable the unmaintained repository for MySQL. You can skip the rest of this
+section and read on at :ref:`Pre configuration`. ownCloud has further dependencies,
+which all belong to the maintained repository. Install them as well::
+
+ # univention-install php5-mysql php5-ldap php5-gd
+
+The package manager is going to remove ``libgd2-noxpm``, which is not a problem
+and nothing to worry about.
+
+Pre configuration
+^^^^^^^^^^^^^^^^^
+
+ownCloud makes use of the UCR, the Univention Configuration Registry. At
+the moment, the values are being read during installation only. So you
+might want to change them here, but you can do it later from within
+ownCloud. For a later version we plan to provide an own ownCloud module
+for the UMC (Univention Management Console). We think we found sane
+defaults, nevertheless you might have your own requirements. The
+installation script will listen to those UCR keys:In case you want to
+override any default setting, simply add the key in question to the UCR
+and assign your required value.
+
+.. tabularcolumns:: |l|p{5cm}|p{5cm}|l|
+.. cssclass:: longtable
+.. csv-table::
+ :header: Key, Default, Description, Introduced
+ :widths: 20, 30, 30, 20
+
+ "owncloud/directory/data", "/var/lib/owncloud", "Specifies where the file storage will be placed", "2012.0.1"
+ "owncloud/db/name", "owncloud", "Name of the MySQL database. ownCloud will create an own user for it.", 2012.0.1
+ "owncloud/user/quota", "(empty)", "The default quota, when a user is being added. Assign values in human readable strings, e.g. “2 GB”. Unlimited if empty.", 2012.0.1
+ "owncloud/user/enabled", 0, "Wether a new user is allowed to use ownCloud by default.", 2012.0.1
+ "owncloud/group/enabled", "0", "Wether a new group is allowed to be used in ownCloud by default.", 2012.4.0.4
+ "owncloud/ldap/base/users", "cn=users,$ldap_base", "The users-subtree in the LDAP directory. If left blank it will fall back to the LDAP base.", 2012.4.0.4
+ "owncloud/ldap/base/groups", "cn=groups,$ldap_base", "The groups-subtree in the LDAP directory. If left blank it will fall back to the LDAP base.", 2012.4.0.4
+ "owncloud/ldap/groupMemberAssoc", "uniqueMember", "The LDAP attribute showing the group-member relationship. Possible values: uniqueMember, memberUid and member", 2012.4.0.4
+ "owncloud/ldap/tls", 1, "Whether to talk to the LDAP server via TLS.", 2012.0.1
+ "owncloud/ldap/loginFilter", "(&(|(&(objectClass=posixAccount) (objectClass=shadowAccount)) (objectClass=univentionMail) (objectClass=sambaSamAccount) (objectClass=simpleSecurityObject) (&(objectClass=person) (objectClass=organizationalPerson) (objectClass=inetOrgPerson))) (!(uidNumber=0)) (!(uid=*$)) (&(uid=%uid) (ownCloudEnabled=1)))", "The LDAP filter that shall be used when a user tries to log in.", 2012.0.1
+ "owncloud/ldap/userlistFilter", "(&(|(&(objectClass=posixAccount) (objectClass=shadowAccount)) (objectClass=univentionMail) (objectClass=sambaSamAccount) (objectClass=simpleSecurityObject) (&(objectClass=person) (objectClass=organizationalPerson) (objectClass=inetOrgPerson))) (!(uidNumber=0))(!(uid=*$)) (&(ownCloudEnabled=1)))", "The LDAP filter that shall be used when the user list is being retrieved (e.g. for sharing)", 2012.0.1
+ "owncloud/ldap/groupFilter", "(&(objectClass=posixGroup) (ownCloudEnabled=1))", "The LDAP filter that shall be used when the group list is being retrieved (e.g. for sharing)", 2012.4.0.4
+ "owncloud/ldap/displayName", "uid", "The LDAP attribute that should be used as username in ownCloud", 2012.0.1
+ "owncloud/ldap/group/displayName", "cn", "The LDAP attribute that should be used as groupname in ownCloud", 2012.4.0.4
+ "owncloud/join/users/update", "yes", "Wether ownCloud LDAP schema should be applied to existing users", 2012.0.1
+ "owncloud/group/enableDomainUsers", "1", "Wether the group “Domain Users” shall be enabled for ownCloud on install", 2012.4.0.4
+ "owncloud/join/users/filter", "(&(|(&(objectClass=posixAccount) (objectClass=shadowAccount)) (objectClass=univentionMail) (objectClass=sambaSamAccount) (objectClass=simpleSecurityObject) (&(objectClass=person) (objectClass=organizationalPerson) (objectClass=inetOrgPerson))) (!(uidNumber=0)) (!(|(uid=*$) (uid=owncloudsystemuser) (uid=join-backup) (uid=join-slave))) (!(objectClass=ownCloudUser)))", "Filters, on which LDAP users the ownCloud schema should be applied to. The default excludes system users and already ownCloudUsers.", 2012.0.1
+ "owncloud/join/groups/filter", "(empty)", "Filters which LDAP groups will be en/disabled for ownCloud when running the script /usr/share/owncloud/update-groups.sh", 2012.4.0.4
+
+
+If you want to override the default settings, simply create the key in
+question in the UCR and assign your required value, for example
+``ucr set owncloud/user/enabled=1`` or via UMC:
+
+.. image:: /images/ucsint2.png
+
+
+Installation
+^^^^^^^^^^^^
+
+Now, we are ready to install ownCloud. This can be either done through the ownCloud UCS repository or by downloading the packages.
+
+Repository
+""""""""""
+
+To include the ownCloud UCS repository, you need to configure it using
+the UCR. To do so, just use the following command:
+
+::
+
+ ucr set update/secure_apt="no" \
+ repository/online/component/owncloud/description="ownCloud" \
+ repository/online/component/owncloud/server=download.owncloud.com \
+ repository/online/component/owncloud/prefix=ucs \
+ repository/online/component/owncloud/defaultpackages=owncloud \
+ repository/online/component/owncloud/version=current \
+ repository/online/component/owncloud=enabled
+
+Subsequently, install the ownCloud package. It will auto-install
+owncloud-schema as well.
+
+::
+
+ # univention-install owncloud
+
+If you want to make use of commercially unsupported packages, install
+the unsupported package:
+
+::
+
+ # univention-install owncloud-unsupported
+
+Manually by download
+""""""""""""""""""""
+
+Download the integration packages (`from our website`_ or with wget as
+below) and install them from within your download folder (note: the
+package owncloud-unsupported is optional):
+
+::
+
+ # wget http://download.owncloud.com/download/ucs/owncloud_2012.0.1-0_all.deb
+ # wget http://download.owncloud.com/download/ucs/owncloud-schema_2012.0.3-0_all.deb
+ # wget http://download.owncloud.com/download/ucs/owncloud-unsupported_2012.0.3-0_all.deb
+ # dpkg -i owncloud*.deb
+
+ownCloud will be configured to fully work with LDAP. There is only one
+local admin user “owncloudadmin”, you can find his password in
+``/etc/owncloudadmin.secret``. Use this account, if you want to change basic
+ownCloud settings.
+
+Postconfiguration (optional)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In the installation process a virtual host is set up (Apache is required
+therefore). If you want to modify the settings, edit
+``/etc/apache2/sites-available/owncloud`` and restart the web server. You
+might want to do it to enable HTTPS connections.Besides that, you can
+edit the ``.htaccess-File in /var/www/owncloud/``. In the latter file there
+are also the PHP limits for file transfer specified.
+
+Using ownCloud
+^^^^^^^^^^^^^^
+
+If you decided to enable every user by default to use ownCloud, simply
+open up ``http://myserver.com/owncloud/`` and log in with your LDAP
+credentials and enjoy.
+
+If you did not, go to the UMC and enable the users who shall have access
+(see picture below). Then, login at http://myserver.com/owncloud/ with
+your LDAP credentials.
+
+.. image:: /images/ucsint1.png
+
+Updating users can also be done by the script
+``/usr/share/owncloud/update-users.sh`` . It takes the following UCR variables
+as parameters: ``owncloud/user/enabled`` for enabling or disabling,
+``owncloud/user/quota`` as the Quota value and ``owncloud/join/users/filter`` as
+LDAP filter to select the users to update.
+
+Groups 2012.4.0.4
+"""""""""""""""""
+
+Since ownCloud Enterprise 2012.4.0.4 group support is enabled. Groups,
+that are activated for ownCloud usage, can be used to share files to
+instead of single users, for example. It is also important to note, that
+users can only share within groups where they belong to. Groups can be
+enabled and disabled via UCM as shown in the screen shot below.
+
+.. image:: /images/ucsint.png
+
+Another way to enable or disable groups is to use the script
+``/usr/share/owncloud/update-groups.sh``. Currently, it takes an argument
+which can be 1=enable groups or 0=disable groups. The filter applied is
+being taken from the UCR variable ``owncloud/join/groups/filter``. In case it is empty , a message will be displayed.
+
+
+.. _from our website: https://owncloud.com/download
diff --git a/admin_manual/installation_webservernotes.rst b/admin_manual/installation_webservernotes.rst
new file mode 100644
index 000000000..d920c0bf2
--- /dev/null
+++ b/admin_manual/installation_webservernotes.rst
@@ -0,0 +1,156 @@
+Web server Notes
+----------------
+
+The most popular server choice for ownCloud is Apache, which is why
+it is also the combinations tested best. However, it is also possible
+to run ownCloud on other web servers. This section does not cover
+Microsoft Internet Information Services (IIS), it is covered
+in the `Windows 7 and Windows Server 2008`_ section.
+
+Nginx Configuration
+~~~~~~~~~~~~~~~~~~~
+
+- You need to insert the following code into
+ ``your nginx config file.``
+- Adjust ``server_name``, ``root``, ``ssl_certificate`` and
+ ``ssl_certificate_key`` to suit your needs.
+- Make sure your SSL certificates are readable by the server (see
+ `http://wiki.nginx.org/HttpSslModule`_).
+
+::
+
+ # redirect http to https.
+ server {
+ listen 80;
+ server_name owncloud.example.org;
+ rewrite ^ https://$server_name$request_uri? permanent; # enforce https
+ }
+
+ # owncloud (ssl/tls)
+ server {
+ listen 443 ssl;
+ ssl_certificate /etc/nginx/certs/server.crt;
+ ssl_certificate_key /etc/nginx/certs/server.key;
+ server_name owncloud.example.org;
+ root /path/to/owncloud;
+ index index.php;
+ client_max_body_size 1000M; # set maximum upload size
+
+ # deny direct access
+ location ^ ^/(data|config|\.ht|db_structure\.xml|README) {
+ deny all;
+ }
+
+ # default try order
+ location / {
+ try_files $uri $uri/ @webdav;
+ }
+
+ # owncloud WebDAV
+ location @webdav {
+ fastcgi_split_path_info ^(.+\.php)(/.*)$;
+ fastcgi_pass 127.0.0.1:9000; # or use php-fpm with: "unix:/var/run/php-fpm/php-fpm.sock;"
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ fastcgi_param HTTPS on;
+ include fastcgi_params;
+ }
+
+ # enable php
+ location ^ \.php$ {
+ fastcgi_pass 127.0.0.1:9000; # or use php-fpm with: "unix:/var/run/php-fpm/php-fpm.sock;"
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+ fastcgi_param HTTPS on;
+ include fastcgi_params;
+ }
+ }
+
+.. note:: You can use Owncloud without SSL/TLS support, but we strongly
+ encourage you not to do that:
+
+- Remove the server block containing the redirect
+- Change ``listen 443 ssl`` to ``listen 80;``
+- Remove ``ssl_certificate`` and ``ssl_certificate_key``.
+- Remove ``fastcgi_params HTTPS on;``
+
+.. note:: If you want to effectively increase maximum upload size you will also
+ have to modify your ``php-fpm configuration`` (``usually at
+ /etc/php5/fpm/php.ini``) and increase ``upload_max_filesize`` and
+ ``post_max_size`` values. You’ll need to restart php5-fpm and nginx
+ services in order these changes to be applied.
+
+Lighttpd Configuration
+~~~~~~~~~~~~~~~~~~~~~~
+
+This assumes that you are familiar with installing PHP application on
+lighttpd.
+
+It is important to note that the ``.htaccess`` files used by ownCloud to protect
+the ``data`` folder are ignored by lighttpd, so you have to secure it by yourself,
+otherwise your ``owncloud.db``` database and user data are publicly readable even if
+directory listing is off. You need to add two snippets to your lighttpd configuration
+file:
+
+Disable access to data folder::
+
+ $HTTP["url"] =^ "^/owncloud/data/" {
+ url.access-deny = ("")
+ }
+
+Disable directory listing::
+
+ $HTTP["url"] =^ "^/owncloud($|/)" {
+ dir-listing.activate = "disable"
+ }
+
+Yaws Configuration
+~~~~~~~~~~~~~~~~~~
+
+This should be in your ``yaws_server.conf``. In the configuration file, the
+``dir_listings = false`` is important and also the redirect from ``/data``
+to somewhere else, because files will be saved in this directory and it
+should not be accessible from the outside. A configuration file would look
+like this::
+
+
+ port = 80
+ listen = 0.0.0.0
+ docroot = /var/www/owncloud/src
+ allowed_scripts = php
+ php_handler =
+ errormod_404 = yaws_404_to_index_php
+ access_log = false
+ dir_listings = false
+
+ /data == /
+
+
+
+The apache ``.htaccess`` file that comes with ownCloud is configured to
+redirect requests to nonexistent pages. To emulate that behaviour, you
+need a custom error handler for yaws. See this `github gist for further
+instructions`_ on how to create and compile that error handler.
+
+Hiawatha Configuration
+~~~~~~~~~~~~~~~~~~~~~~
+
+Add ``WebDAVapp = yes`` to the ownCloud virtual host. Users accessing
+WebDAV from MacOS will also need to add ``AllowDotFiles = yes``.
+
+Disable access to data folder::
+
+ UrlToolkit {
+ ToolkitID = denyData
+ Match ^/data DenyAccess
+ }
+
+
+PageKite Configuration
+~~~~~~~~~~~~~~~~~~~~~~
+
+You can use this `PageKite how to`_ to make your local ownCloud accessible from the
+internet using PageKite.
+
+.. _github gist for further instructions: https://gist.github.com/2200407
+.. _PageKite how to: https://pagekite.net/wiki/Howto/GNULinux/OwnCloud/
+
+.. _`http://wiki.nginx.org/HttpSslModule`: http://wiki.nginx.org/HttpSslModule
diff --git a/admin_manual/installation_windows.rst b/admin_manual/installation_windows.rst
new file mode 100644
index 000000000..6f636939a
--- /dev/null
+++ b/admin_manual/installation_windows.rst
@@ -0,0 +1,294 @@
+Windows 7 and Windows Server 2008
+---------------------------------
+
+.. note:: You must move the data directory outside of your public root.
+ (See advanced install settings)
+
+This section describes how to install ownCloud on Windows with :abbr:`IIS
+(Internet Information Services)`.
+
+It assumes that you have a vanilla, non-IIS enabled Windows
+machine – Windows 7 or Server 2008. After enabling IIS, the steps are
+essentially identical for Windows 7 and Windows Server 2008.
+
+For installation, physical access or a remote desktop connection is required.
+You should leverage MySQL as the back end database for ownCloud.
+If you do not want to use MySQL, it is possible to use Postgres or SQLite
+instead. Microsoft SQL Server is not yet support.
+
+Enabling SSL is not yet covered by this section.
+
+.. note:: If you make your desktop machine or server available
+ outside your LAN, you must maintain it. Monitor the logs, manage
+ the access, apply patches to avoid compromising the system at large.
+
+There are 4 primary steps to the installation, and then a 5th step
+required for configuring everything to allow files larger than the
+default 2MB.
+
+1. Install IIS with CGI support – enable IIS on your Windows machine.
+
+2. Install PHP – Grab, download and install PHP.
+
+3. Install MySQL – Setup the MySQL server manager and enable ownCloud to create
+ an instance.
+
+4. Install ownCloud – The whole reason we are here!
+
+5. Configure upload sizes and timeouts to enable large file uploads – So that you
+ can upload larger files.
+
+Activate IIS with CGI Support
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Windows 7
+^^^^^^^^^
+
+1. Go to :guilabel:`Start --> Control Panel --> Programs`.
+
+2. Under Programs and Features, there is link titled :guilabel:`Turn Windows Features on
+ and Off`. Click on it.
+
+3. There is a box labeled Internet Information Services, expand it.
+
+4. Expand World Wide Web Services and all the folders underneath.
+
+5. Select the folders as illustrated in the picture below to get your IIS
+ server up and running.
+
+.. figure:: images/win7features.jpg
+ :width: 250px
+ :align: center
+ :alt: Windows features required for ownCloud on Windows 7
+ :figclass: align-center
+
+ Windows Features required for ownCloud on Windows 7
+
+You do not need an FTP server running, so you should tune
+that feature off for your server. You definitely need the IIS Management
+Console, as that is the easiest way to start, stop, restart you server,
+as well as where you change certificate options and manage items like
+file upload size. You must check the CGI box under Application
+Development Features, because CGI is how you enable PHP on IIS.
+
+You have to turn off WebDAV publishing or the Windows WebDAV
+conflicts with the ownCloud WebDAV interface. This might already be
+turned off for you, just make sure it stays that way. The common HTTP
+features are the features you would expect from a web server.
+With the selections on this page, IIS will now serve up a web page for you.
+
+Restart IIS by going to the IIS manager (:guilabel:`Start --> IIS Manager`).
+Select your website, and on the far right side is a section titled
+:guilabel:`Manage Server`. Make sure that the service is started, or click
+:guilabel:`Start` to start the services selected. Once this is complete, you
+should be able to go to a web browser and navigate to `http://localhost``.
+
+This should open the standard IIS 7 splash page, which is just a static image
+that says your web server is running. Assuming you were able to get the
+splash page, it is safe to say your web server is now up and running.
+
+
+Windows Server 2008
+^^^^^^^^^^^^^^^^^^^
+
+1. Go to :guilabel:`Start --> Control Panel --> Programs`.
+
+2. Under Programs and Features, there is link titled
+ :guilabel:`Turn Windows Features on and Off`. Click on it.
+
+3. This will bring up the Server Manager.
+
+4. In the server manager, Click on Roles, and then click Add Roles.
+
+5. Use the :guilabel:`Add Roles Wizard` to add the web server role.
+
+.. figure:: images/winserverroles.jpg
+ :width: 300px
+ :align: center
+ :alt: server roles required for owncloud
+ :figclass: align-center
+
+ Server roles required for ownCloud
+
+6. Make sure that, at a minimum, the same boxes are checked in this wizard that
+ are checked in the Windows 7 Section. For example, make sure that the CGI
+ box is checked under Application Development Features, and that WebDAV
+ Publishing is turned off. With Remote Desktop Sharing turned on, the
+ detailed role service list looks like the figure “Role Services”.
+
+7. Restart IIS by going to the IIS manager (:guilabel:`Start --> IIS Manager`).
+
+8. Select your website, and on the far right side is a section titled Manage
+ Server. Make sure that the service is started, or click “Start” to start the
+ services selected.
+
+9. Once this is complete, you should be able to go to a web browser and type
+ "localhost". This should open the standard IIS 7 splash page, which is just
+ a static image that says your web server is running.Assuming you were able
+ to get the splash page, it is safe to say your web server is now up and
+ running. The next part of this “how to” installs PHP on the server.
+
+Installing PHP
+~~~~~~~~~~~~~~
+
+This part is also straightforward, but it is necessary to remind you that this
+is for IIS only.
+
+1. Go to the following link and grab the PHP installer for version "VC9 Non
+ Thread Safe" 32 or 64 bit based on your system.
+ http://windows.php.net/download/
+
+.. note:: If you are using Apache, make sure you grab VC6 instead, lower on the
+ page.
+
+2. Once through that login, select the location that is closest to you
+ geographically.
+
+3. Run that install wizard once it is downloaded. Read the license agreement,
+ agree, select an install directory.
+
+4. Then select IIS FastCGI as the install server.
+
+5. Take the default selections for the items to install, and click next. Then
+ click install.
+
+6. And, after a few minutes, PHP will be installed. On to MySQL.
+
+Installing MySQL
+~~~~~~~~~~~~~~~~
+
+This part installs MySQL on your Windows machine.
+
+1. Point your browser to http://dev.mysql.com/downloads/ and download the
+ latest community edition for your OS – the 32 or 64 bit version. Please
+ download the ``MSI Installer`` as it will make life easier.
+
+2. Once downloaded, install MySQL (5.5 at the time of writing). Select the
+ Typical installation.
+
+3. When that finishes, check the box to launch the MySQL Instance Configuration
+ Wizard and click Finish.
+
+4. Select a standard configuration, as this will be the only version of MySQL
+ on this machine.
+
+5. Select to install as a windows service, and Check the Launch the MySQL
+ Server Automatically button.
+
+6. Select the modify security settings box on the next page, and enter a
+ password you will remember. You will need this password when you configure
+ ownCloud.
+
+7. Uncheck ``enable`` root access from remote machines” for security reasons.
+
+8. Click execute, and wait while the instance is created and launched.
+
+9. Click Finish when this is all complete.
+
+.. You can make some pretty good educated guesses on the type of install needed
+ for ownCloud. %% That's not really useful, clarify!
+
+Take particular note of your MySQL password, as the user name ``root``
+and the password you select will be necessary alter on in the ownCloud
+installation. As an aside, this link is an excellent resource for questions on
+how to configure your MySQL instance, and also to configure PHP to work with
+MySQL. This, however, is not strictly necessary as much of this is handled when
+you download ownCloud.
+
+More information in this topic can be found in a `tutorial on the IIS web site`_.
+
+.. _tutorial on the IIS web site:
+ http://learn.iis.net/page.aspx/353/install-and-configure-mysql-for-php-applications-on-iis-7-and-above/
+
+Installing ownCloud
+~~~~~~~~~~~~~~~~~~~
+
+1. Download the latest version of ownCloud from http://owncloud.org/download.
+
+2. It will arrive as a tar.bz2 file, and I recommend something like jZip for a
+ free utility to unzip it.
+
+3. Once you have the ownCloud directory unzipped and saved locally, copy it
+ into your wwwroot directory (probably ``c:\inetpub\wwwroot``).
+
+.. note:: You cannot install directly into the directory ``wwwroot`` from jzip,
+ as only the administrator can unzip into the ``wwwroot`` directory. If you save
+ it in a different folder, and then move the files into ``wwwroot`` in Windows
+ explorer, it works. This will install ownCloud locally in your root web
+ directory. You can use a subdirectory called owncloud, or whatever you want –
+ the www root, or something else.
+
+4. It is now time to give write access to the ownCloud directory to the
+ ownCloud server: Navigate your windows explorer over to
+ ``inetpub/wwwroot/owncloud`` (or your installation directory if you selected
+ something different).
+
+5. Right click and select properties. Click on the security tab, and click the
+ button “to change permissions, click edit”.
+
+6. Select the “users” user from the list, and check the box “write”.
+
+7. Apply these settings and close out.
+
+8. Now open your browser and go to ``http://localhost/owncloud`` (or localhost
+ if it is installed in the root www directory). This should bring up the
+ ownCloud configuration page.
+
+9. At this page, you enter your desired ownCloud user name and password for the
+ administrator, and expand the little arrow.
+
+10. Select MySQL as the database, and enter your MySQL database user name,
+ password and desired instance name – use the user name and password you
+ setup for MySQL earlier in step 3, and pick any name for the database
+ instance.
+
+.. note:: The owncloud admin password and the MySQL password CANNOT be the same
+ in any way.
+
+11. Click next, and ownCloud should have you logged in as the admin user, and
+ you can get started exploring ownCloud, creating other users and more!
+
+Configuring ownCloud, PHP and IIS for Large File Uploads
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Before going too nuts on ownCloud, it is important to do a couple of
+configuration changes to make this a useful service for you. You will probably
+want to increase the ``max upload size``, for example. The default upload is
+set to ``2MB``, which is too small for even most MP3 files.
+
+To do that, simply go into your ``PHP.ini`` file, which can be found in your
+``C:\Program Files (x86)\PHP`` folder. In here, you will find a ``PHP.ini```
+file. Open this in a text editor, and look for a few key attributes to
+change:
+
++ ``upload_max_filesize`` – change this to something good, like 1G, and you
+ will get to upload much larger files.
+
++ ``post_max_size`` – also change this size, and make it larger than the max
+ upload size you chose, like 1G.
+
+There are other changes you can make, such as the timeout duration for
+uploads, but for now you should be all set in the ``PHP.ini`` file.
+
+Now you have to go back to IIS manager and make one last change to enable file
+uploads on the web server larger than 30MB.
+
+1. Go to the start menu, and type ``iis manager``.
+
+2. Open IIS Manager Select the website you want enable to accept large file
+ uploads.
+
+3. In the main window in the middle double click on the icon ``Request
+ filtering``.
+
+4. Once the window is opened you will see a bunch of tabs across the top of the
+ far right,
+
+ Select :guilabel:`Edit Feature Settings` and modify the :guilabel:`Maximum
+ allowed content length (bytes)`
+
+5. In here, you can change this to up to 4.1 GB.
+
+.. note:: This entry is in BYTES, not KB.
+
+You should now have ownCloud configured and ready for use.