User Tools

Site Tools


nextcloud-install

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
nextcloud-install [2020/10/21 23:24] – created gwsadminnextcloud-install [2023/05/17 22:52] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Coming Soon ======+====== How to install Nextcloud ====== 
 + 
 +  * Download & extract 
 + 
 +<code bash> 
 +wget https://download.nextcloud.com/server/releases/nextcloud-x.x.x.zip 
 + 
 +sudo unzip nextcloud-x.x.x.zip -d /wherenextcloudwebdirectoryis/html 
 +sudo chown www-data:www-data /wherewebdirectoryis/html/ -R 
 + 
 + 
 +</code> 
 + 
 +  * Setup MYSQL User/database 
 + 
 +<code bash> 
 +sudo mysql 
 + 
 +create database nextcloud; 
 +create user nextcloud@localhost identified by 'password'; 
 +grant all privileges on nextcloud.* to nextclouduser@localhost identified by 'Password'; 
 +flush privileges; 
 +exit; 
 + 
 + 
 +</code> 
 + 
 +  * Create an Nginx Config File for Nextcloud 
 + 
 +<code bash> 
 +server { 
 +    listen 80; 
 +    listen [::]:80; 
 +    server_name example.com; #CHANGE THIS 
 + 
 +    # Add headers to serve security related headers 
 +    add_header X-Content-Type-Options nosniff; 
 +    add_header X-XSS-Protection "1; mode=block"; 
 +    add_header X-Robots-Tag none; 
 +    add_header X-Download-Options noopen; 
 +    add_header X-Permitted-Cross-Domain-Policies none; 
 +    add_header Referrer-Policy no-referrer; 
 + 
 +    #I found this header is needed on Ubuntu, but not on Arch Linux. 
 +    add_header X-Frame-Options "SAMEORIGIN"; 
 + 
 +    # Path to the root of your installation 
 +    root /whereyourwebdirctoryis/html/nextcloud; #CHANGE THIS 
 + 
 +    access_log /var/log/nginx/nextcloud.access; 
 +    error_log /var/log/nginx/nextcloud.error; 
 + 
 +    location = /robots.txt { 
 +        allow all; 
 +        log_not_found off; 
 +        access_log off; 
 +    } 
 + 
 +    # The following 2 rules are only needed for the user_webfinger app. 
 +    # Uncomment it if you're planning to use this app. 
 +    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last; 
 +    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json 
 +    # last; 
 + 
 +    location = /.well-known/carddav { 
 +        return 301 $scheme://$host/remote.php/dav; 
 +    } 
 +    location = /.well-known/caldav { 
 +       return 301 $scheme://$host/remote.php/dav; 
 +    } 
 + 
 +    location ~ /.well-known/acme-challenge { 
 +      allow all; 
 +    } 
 + 
 +    # set max upload size 
 +    client_max_body_size 1024M; 
 +    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; 
 + 
 +    error_page 403 /core/templates/403.php; 
 +    error_page 404 /core/templates/404.php; 
 + 
 +    location / { 
 +       rewrite ^ /index.php; 
 +    } 
 + 
 +    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/
 +       deny all; 
 +    } 
 +    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { 
 +       deny all; 
 +     } 
 + 
 +    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) { 
 +       include fastcgi_params; 
 +       fastcgi_split_path_info ^(.+\.php)(/.*)$; 
 +       try_files $fastcgi_script_name =404; 
 +       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
 +       fastcgi_param PATH_INFO $fastcgi_path_info; 
 +       #Avoid sending the security headers twice 
 +       fastcgi_param modHeadersAvailable true; 
 +       fastcgi_param front_controller_active true; 
 +       fastcgi_pass unix:/run/php/php7.4-fpm.sock; 
 +       fastcgi_intercept_errors on; 
 +       fastcgi_request_buffering off; 
 +    } 
 + 
 +    location ~ ^/(?:updater|ocs-provider)(?:$|/) { 
 +       try_files $uri/ =404; 
 +       index index.php; 
 +    } 
 + 
 +    # Adding the cache control header for js and css files 
 +    # Make sure it is BELOW the PHP block 
 +    location ~* \.(?:css|js)$ { 
 +        try_files $uri /index.php$uri$is_args$args; 
 +        add_header Cache-Control "public, max-age=7200"; 
 +        # Add headers to serve security related headers (It is intended to 
 +        # have those duplicated to the ones above) 
 +        add_header X-Content-Type-Options nosniff; 
 +        add_header X-XSS-Protection "1; mode=block"; 
 +        add_header X-Robots-Tag none; 
 +        add_header X-Download-Options noopen; 
 +        add_header X-Permitted-Cross-Domain-Policies none; 
 +        add_header Referrer-Policy no-referrer; 
 +        # Optional: Don't log access to assets 
 +        access_log off; 
 +   } 
 + 
 +   location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ { 
 +        try_files $uri /index.php$uri$is_args$args; 
 +        # Optional: Don't log access to other assets 
 +        access_log off; 
 +   } 
 +
 + 
 + 
 +</code> 
 + 
 +  * Test and reload Nginx 
 + 
 +<code bash> 
 +sudo nginx -t 
 +sudo systemctl reload nginx 
 + 
 + 
 +</code> 
 + 
 +  * Install and enable PHP modules 
 + 
 +<code bash> 
 +sudo apt install php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl  php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl 
 + 
 + 
 +</code> 
 + 
 +  * Run Certbot 
 + 
 +<code bash> 
 +sudo certbot --nginx 
 + 
 + 
 +</code> 
 + 
 +  * Make the data directory 
 + 
 +<code bash> 
 +sudo mkdir /whereyourwebdirectoryis/nextcloud-data 
 + 
 +sudo chown www-data:www-data whereyourwebdirectoryis/nextcloud-data 
 + 
 + 
 +</code> 
 + 
 +  * 
 + 
 +Run setup 
 + 
 +  * Go to your domain name and run it from there 
 + 
 +===== Now to change some settings ===== 
 + 
 +  * Edit www.conf file and remove semi-colon from this line - ;clear_env = no 
 +  * Install Redis Cache 
 + 
 +<code bash> 
 +sudo apt install redis-server 
 +sudo systemctl start redis-server 
 +sudo systemctl enable redis-server 
 +sudo apt install php-redis 
 + 
 +</code> 
 +  * Add this to THE end of Nextcloud config config.php fund in nextcloud webdirectory/config.php 
 + 
 +<code bash> 
 +'memcache.distributed' => '\OC\Memcache\Redis', 
 +'memcache.local' => '\OC\Memcache\Redis', 
 +'memcache.locking' => '\OC\Memcache\Redis', 
 +'redis' => array( 
 +     'host' => 'localhost', 
 +     'port' => 6379, 
 +     ), 
 + 
 +</code> 
 +  * Restart Nginx and PHP 
 + 
 +<code bash> 
 +sudo systemctl restart nginx php7.4-fpm 
 + 
 +</code> 
 + 
 +**For more information go to https://www.linuxbabe.com/ubuntu/install-nextcloud-ubuntu-20-04-nginx-lemp-stack**
  
  
nextcloud-install.1603322681.txt.gz · Last modified: 2023/05/17 22:52 (external edit)