diff --git a/admin_manual/installation/installation_others.rst b/admin_manual/installation/installation_others.rst index 3c4c19d61..135fb0027 100644 --- a/admin_manual/installation/installation_others.rst +++ b/admin_manual/installation/installation_others.rst @@ -1,182 +1,16 @@ -Other Web Servers -================= -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 :doc:`installation_windows` 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`_). - -.. code-block:: python - - server { - listen 80; - server_name cloud.example.com; - return 301 https://$server_name$request_uri; # enforce https - } - - server { - listen 443 ssl; - server_name cloud.example.com; - - ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; - ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key; - - # Path to the root of your installation - root /var/www/; - - client_max_body_size 10G; # set max upload size - fastcgi_buffers 64 4K; - - rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect; - rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect; - rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect; - - index index.php; - error_page 403 /core/templates/403.php; - error_page 404 /core/templates/404.php; - - location = /robots.txt { - allow all; - log_not_found off; - access_log off; - } - - location ~ ^/(data|config|\.ht|db_structure\.xml|README) { - deny all; - } - - location / { - # The following 2 rules are only needed with webfinger - rewrite ^/.well-known/host-meta /public.php?service=host-meta last; - rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; - - rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; - rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; - - rewrite ^(/core/doc/[^\/]+/)$ $1/index.html; - - try_files $uri $uri/ index.php; - } - - location ~ ^(.+?\.php)(/.*)?$ { - try_files $1 = 404; - - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$1; - fastcgi_param PATH_INFO $2; - fastcgi_param HTTPS on; - fastcgi_pass 127.0.0.1:9000; - # Or use unix-socket with 'fastcgi_pass unix:/var/run/php5-fpm.sock;' - } - - # Optional: set long EXPIRES header on static assets - location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ { - expires 30d; - # Optional: Don't log access to assets - access_log off; - } - - } - -.. 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 - -.. code-block:: xml - - - 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. Open Wrt --------- +******** + Here you can find a `tutorial for open Wrt`_ -.. _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 .. _tutorial for open Wrt: http://wiki.openwrt.org/doc/howto/owncloud diff --git a/admin_manual/installation/installation_source.rst b/admin_manual/installation/installation_source.rst index 0ec381e49..5fe4fb061 100644 --- a/admin_manual/installation/installation_source.rst +++ b/admin_manual/installation/installation_source.rst @@ -10,39 +10,54 @@ Prerequisites To run ownCloud, your web server must have the following installed: * php5 (>= 5.3.3, minimum recommended 5.4) -* php5-gd -* php-xml-parser +* PHP module zip +* PHP module dom +* PHP module libxml +* PHP module mb multibyte +* PHP module ctype +* PHP module JSON +* PHP module GD +* PHP module zlib +* PHP module iconv +* PHP module SimpleXML And as *optional* dependencies: -* php5-intl -* php5-sqlite (>= 3) -* php5-mysql -* php5-pgsql (or php-pgsql depending on your distribution) -* php5-exif (for image rotation in pictures app) -* php5-curl +* PHP module intl +* PHP module mcrypt +* PHP module bz2 +* PHP module openssl +* PHP module sqlite (>= 3) +* PHP module mysql +* PHP module pgsql +* PHP module exif (for image rotation in pictures app) +* PHP module ldap (for ldap integration) +* PHP module curl * curl * libcurl3 +For performance increase (*optional* / select one of the following): + +* PHP module apc +* PHP module apcu +* PHP module xcache + +For preview generation (*optional*): + +* PHP module imagick +* avconv or ffmpeg +* OpenOffice or libreOffice + For external storage (*optional*): * smbclient (for SMB storage) * php5-ftp (for FTP storage) -You have to install at least one of php5-sqlite, php5-pgsql or php5-mysql, depending -on which of the three database systems (SQLite, PostgreSQL or MySQL) you want to use -and activate its PDO module in the **php.ini**. +Please check your distribution, operating system or hosting partner documentation on how to install/enable +these modules. The curl packages are needed for some apps (e.g. http user authentication) - -Commands for Ubuntu and Debian (run as root): - -:: - - apt-get install apache2 php5 php5-gd php-xml-parser php5-intl - apt-get install php5-sqlite php5-mysql php5-pgsql smbclient curl libcurl3 php5-curl - If you are running Ubuntu 10.04 LTS you will need to update your PHP from this `PHP PPA`_: @@ -52,7 +67,6 @@ this `PHP PPA`_: sudo apt-get update sudo apt-get install php5 -.. todo:: Document other distributions. You don’t need any WebDAV support of your web server (i.e. apache’s mod_webdav) to access your ownCloud data via WebDAV, ownCloud has a WebDAV server built in. @@ -60,8 +74,8 @@ In fact, you should make sure that any built-in WebDAV module of your web server is disabled (at least for the ownCloud directory), as it can interfere with ownCloud's built-in WebDAV support. -Extract ownCloud and Copy to Your Webserver -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Extract ownCloud and Copy to Your Web Server +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :: @@ -89,15 +103,39 @@ Fedora users should use:: .. 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 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Web Server Configuration +~~~~~~~~~~~~~~~~~~~~~~~~ -If you are running the apache web server, 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`. -If your distribution supports **a2enmod** run the following commands:: +Apache is the recommended web server. + +Apache Configuration +******************** + +Example Apache 2.2: + +.. code-block:: xml + + + Options Indexes FollowSymLinks MultiViews + AllowOverride All + Order allow,deny + allow from all + + + +Example Apache 2.4: + +.. code-block:: xml + + + Options Indexes FollowSymLinks MultiViews + AllowOverride All + Order allow,deny + Require all granted + + + +Enable mod_rewrite:: a2enmod rewrite @@ -113,6 +151,171 @@ For systemd systems (Fedora, ArchLinux, OpenSUSE) use:: 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. + + +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`_). + +.. code-block:: python + + server { + listen 80; + server_name cloud.example.com; + return 301 https://$server_name$request_uri; # enforce https + } + + server { + listen 443 ssl; + server_name cloud.example.com; + + ssl_certificate /etc/ssl/nginx/cloud.example.com.crt; + ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key; + + # Path to the root of your installation + root /var/www/; + + client_max_body_size 10G; # set max upload size + fastcgi_buffers 64 4K; + + rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect; + rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect; + rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect; + + index index.php; + error_page 403 /core/templates/403.php; + error_page 404 /core/templates/404.php; + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + location ~ ^/(data|config|\.ht|db_structure\.xml|README) { + deny all; + } + + location / { + # The following 2 rules are only needed with webfinger + rewrite ^/.well-known/host-meta /public.php?service=host-meta last; + rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; + + rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; + rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; + + rewrite ^(/core/doc/[^\/]+/)$ $1/index.html; + + try_files $uri $uri/ index.php; + } + + location ~ ^(.+?\.php)(/.*)?$ { + try_files $1 = 404; + + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$1; + fastcgi_param PATH_INFO $2; + fastcgi_param HTTPS on; + fastcgi_pass 127.0.0.1:9000; + # Or use unix-socket with 'fastcgi_pass unix:/var/run/php5-fpm.sock;' + } + + # Optional: set long EXPIRES header on static assets + location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ { + expires 30d; + # Optional: Don't log access to assets + access_log off; + } + + } + +.. 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 + +.. code-block:: xml + + + 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 + } + + + +Microsoft Internet Information Server (IIS) +******************************************* + +See :doc:`installation_windows` for further instructions. + Follow the Install Wizard ~~~~~~~~~~~~~~~~~~~~~~~~~ Open your web browser and navigate to your ownCloud instance. If you are @@ -125,15 +328,7 @@ credentials and let ownCloud create its own database user, or enter a preconfigu as the web server, 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 :file:`/var/www/.well-known` to :file:`/path/to/your/owncloud/.well-known`. .. _PHP PPA: https://launchpad.net/~ondrej/+archive/php5 +.. _github gist for further instructions: https://gist.github.com/2200407 +.. _`http://wiki.nginx.org/HttpSslModule`: http://wiki.nginx.org/HttpSslModule