学海无涯苦作粥(舟)
broken_image

windows 安装 NextCloud 关键步骤

摘要:windows 安装 NextCloud 关键步骤

  • 导出为PDF
  • 导出为Markdown

windows 安装 NextCloud 关键步骤

1. virtualbox 安装

直接从 https://www.virtualbox.org/ 上下载安装即可

2. 安装服务器 Ubuntu 16.04.4 LTS

直接从Ubuntu的网站 https://www.ubuntu.com/download/server 下载即可,安装64位的服务器版本

3. 虚拟机的安装

内存我设置的为 双核 1G ,把iSO文件直接加载到virtualbox光驱就可以直接安装了

安装完系统之后,安装virtualbox 增强功能,在 设备 - 安装增强工具

  1. 安装编译工具 
     sudo -i  
     apt install gcc make
  2. 挂载光盘
    mkdir -p /media/cdrom
    mount /dev/cdrom /media/cdrom
  3. 然后进入输入命令进行安装
    /media/cdrom/VBoxLinuxAdditions.run
  4. 然后重启
    reboot

4.安装php 7.2 和 nginx

PHP安装

参考地址:https://www.mf8.biz/debian-install-php7-2/


apt -y install software-properties-common apt-transport-https lsb-release ca-certificates

add-apt-repository ppa:ondrej/php  

apt update

apt install php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-opcache -y

nginx

sudo apt-get install nginx

5. 设置共享文件夹

在你的windows中新建一个文件夹。取名为 next_cloud_files,默认会挂载到 sf_next_cloud_files

在虚拟机的设置加入共享文件夹路径,并设置名字

然后把 www-data 默认的http用户加入共享文件夹的组里面

sudo usermod --append --groups vboxsf wwww-data

chown -R www-data:www-data sf_next_cloud_files

6. 安装Mysql数据库


我已经在windows上安装了mysql,所以没安装,下面是安装流程

sudo apt-get install mysql-server

sudo apt isntall mysql-client

sudo apt install libmysqlclient-dev

7. 安装nextcloud系统

把文件现在到 /var/www/html/

下载文件:

curl -O https://download.nextcloud.com/server/releases/nextcloud-13.0.1.zip

解压文件: unzip nextcloud-13.0.1.zip 如果没有unzip则自己先安装一下

注意文件夹的读写权限, sudo chown -R www-data:www-data nextcloud

配置 nginx [/etc/nginx/sites-enabled/default]文件

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html/nextcloud;

    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    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;

    location = /robots.txt {
       allow all;
       log_not_found off;
       access_log off;
    }

    client_max_body_size 1512M;
    fastcgi_buffers 64 4K;

    # Enable gzip but do not remove ETag headers
    gzip on;
    gzip_vary on;
    gzip_comp_level 4;
    gzip_min_length 256;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;       

   location / {
        try_files $uri $uri/ =404;
        rewrite ^ /index.php$uri;
    }

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
        try_files $uri/ =404;
        index index.php;
    }

    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.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;
        #Avoid sending the security headers twice
        fastcgi_param modHeadersAvailable true;
        fastcgi_param front_controller_active true;
        fastcgi_pass   unix:/run/php/php7.2-fpm.sock;
        fastcgi_index  index.php;
    fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }


    location ~ \.(?:css|js|woff|svg|gif)$ {
        try_files $uri /index.php$uri$is_args$args;
        add_header Cache-Control "public, max-age=15778463";
        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;
        # Optional: Don't log access to assets
        access_log off;
    }

    location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        # Optional: Don't log access to other assets
        access_log off;
    }
}

配置nextcloud

如果上面没有错误的话 则会出现配置界面

用户配置界面 会输入 用户名/密码 数据存储文件夹 /media/sf_next_cloud_files

数据库用户名密码

开启 opcache 缓存

vim /etc/php/7.2/fpm/php.ini 文件,找到opcache 选项 加入下面的内容

[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

开起 PATH 函数

由于用了fpm方式,PATH由于权限无法获取,需要手动设置PATH路径

找到 /etc/php/7.2/fpm/pool.d/www.conf 文件

把echo $PATH 的结果,放到
找到内容 env[PATH] 的变量,把系统 $PATH 的内容写到 env[PATH]后面,并取消掉‘;’的注释

/var/www/html/nextcloud/config/config.php

;env[HOSTNAME] = $HOSTNAME
env[PATH] = /home/nextcloud/bin:/home/nextcloud/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp

开启 APCu

先编译安装APCu

sudo apt install PHP7.2-dev
pecl channel-update pecl.php.net
sudo pecl channel-update pecl.php.net
sudo pecl install apcu

安装完之后,把扩展加到/etc/php/7.2/fpm/php.ini中

extension=apcu.so

在nextcloud中开始内存缓存

在 /var/www/html/nextcloud-13.0.1/config/config.php 中加入

‘memcache.local’ => ‘\OC\Memcache\APCu’,

然后全部重启一下,安装完毕

福利,系统的基础环境我已经给大家弄好了。直接下载virtualbox的磁盘文件,导入系统既可,下载地址

链接:https://pan.baidu.com去掉我/s/1ljOcVXj9pC71S9WzkwOPQw 密码:mxyx


发表评论

首次评论需要等待20分钟,以后评论间隔为12分钟,剩余:19分59秒