Инсталиране на OwnCloud под Ubuntu Server

от БАРЗИКТ Wiki
Направо към: навигация, търсене


Официална страница на OwnCloud

Обновяване на Ubuntu

sudo apt-get update
sudo apt-get upgrade

Инсталиране на LEMP

MySQL

sudo apt-get install mysql-server php5-mysql
sudo /usr/bin/mysql_secure_installation
sudo apt-get install nginx php5-fpm

Nginx и PHP

sudo apt-get install nginx php5-fpm php5-gd php5-curl 

Редактира се файла /etc/php5/fpm/php.ini, като се препоръчва да се направят следните промени:

cgi.fix_pathinfo=0
upload_max_filesize = 1G
post_max_size = 1G

Създаване на база данни за OwnCloud

Стартира се sudo mysql -u root -p

CREATE DATABASE owncloud;
GRANT ALL ON owncloud.* to 'owncloud'@'localhost' IDENTIFIED BY 'secret_password';
flush privileges;

Забележка: Не забравяйте да смените паролата за потребителя. В примерът е използвана secret_password.

Генериране на сертификати за HTTPS

cd /etc/nginx
sudo mkdir ssl
cd ssl
sudo openssl genrsa -des3 -out server.key 2048
sudo openssl req -new -key server.key -out server.csr

sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Рестартиране на nginx и php5-fpm

sudo service nginx restart
sudo service php5-fpm restart

Изтегляне и дезархивиране на OwnCloud

sudo rm -rf /var/www/html
cd /var/www
sudo wget https://download.owncloud.org/community/owncloud-8.2.1.tar.bz2
sudo bzip2 -d owncloud-8.2.1.tar.bz2
sudo tar -xvf owncloud-8.2.1.tar

sudo chown www-data:www-data -R /var/www

Примерна конфигурация на nginx

upstream php-handler {
  server unix:/var/run/php5-fpm.sock;
}

server {
  listen 80;
  server_name 192.168.1.208;
  # enforce https
  return 301 https://$server_name$request_uri;
}

server {
  listen 443 ssl;
  server_name 192.168.1.208;

  ssl_certificate /etc/nginx/ssl/server.crt;
  ssl_certificate_key /etc/nginx/ssl/server.key;

  # Path to the root of your installation
  root /var/www/owncloud/;
  # set max upload size
  client_max_body_size 1G;
  fastcgi_buffers 64 4K;

  # Disable gzip to avoid the removal of the ETag header
  gzip off;

  # Uncomment if your server is build with the ngx_pagespeed module
  # This module is currently not supported.
  #pagespeed off;

  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 ~ ^/(?:\.htaccess|data|config|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(?:$|/) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param HTTPS on;
    fastcgi_pass php-handler;
  }

  # 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;
  }
}