Linux搭建Nextcloud,打造属于您的专属网盘_张宇勋工程师的博客-程序员宝宝

技术标签: 系统部署  ubuntu  linux  php  Liunx运维  centos  

编写初衷

没有人生下来天生就是会计算机的,就拿笔者来说的话,也是从Windows->Centos->Ubuntu一步一步慢慢学习,积累下来的。为了让大家能够更快更高效率的学习,从今天开始,我将每天深入教您1个命令,让我们一起live and study,积少成多!

安装方法(可供参考)

1首先查看防火墙和selinux是否关闭

getenforce

systemctl status firewalld

2安装nginx

yum -y install nginx

3安装php7.1

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum search php71w

yum install php71w php71w-fpm php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath php-dom

4检测是否安装成功

#nginx -v

nginx version: nginx/1.12.2

#php -v

PHP 7.1.29 (cli) (built: May 13 2019 18:32:21) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

5使用 vim 编辑默认的 php7-fpm 配置文件。

vim /etc/php-fpm.d/www.conf

在第 8 行和第 10行,user 和 group 赋值为 nginx。

user = nginx

group = nginx

在第 22 行,确保 php-fpm 运行在指定端口。

listen = 127.0.0.1:9000

取消第 366-370 行的注释,启用 php-fpm 的系统环境变量。

env[HOSTNAME] = $HOSTNAME

env[PATH] = /usr/local/bin:/usr/bin:/bin

env[TMP] = /tmp

env[TMPDIR] = /tmp

env[TEMP] = /tmp

6就是在 /var/lib/ 目录下创建一个新的文件夹 session,并将其拥有者变更为 nginx 用户。

mkdir -p /var/lib/php/session

chown nginx:nginx -R /var/lib/php/session/

然后启动 php-fpm 和 Nginx,并且将它们设置为随开机启动的服务。

systemctl start php-fpm

systemctl start nginx 

systemctl enable php-fpm

systemctl enable nginx

7安装mysql

我这里使用 MariaDB 作为 Nextcloud 的数据库。可以直接使用 yum 命令从 CentOS 默认远程仓库中安装 mariadb-server包。

yum -y install mariadb mariadb-server

启动 MariaDB,并将其添加到随系统启动的服务中去。

systemctl start mariadb

systemctl enable mariadb

mysql数据库搭建完成是没有密码的自己可以设置,我在这里没有设置密码直接登陆

直接进入数据库创建名为 nextcloud_db 的数据库以及名为 nextclouduser 的用户,用户密码为 nextclouduser。当然自己也可以随意设置密码。

create database nextcloud_db;

create user [email protected] identified by 'nextclouduser';

grant all privileges on nextcloud_db.* to [email protected] identified by 'nextclouduser';

flush privileges;

8为nextcloud 生成自签名ssl证书

为 SSL 文件创建新目录:

mkdir -p /etc/nginx/cert/

使用 openssl 生成一个新的 SSL 证书。

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/nextcloud.crt -keyout /etc/nginx/cert/nextcloud.key

会出现一下信息,可以随便填写

Country Name (2 letter code) [XX]:cn //国家

State or Province Name (full name) []:guangdong //省份

Locality Name (eg, city) [Default City]:guangzhou //地区名字

Organization Name (eg, company) [Default Company Ltd]:Amos //公司名

Organizational Unit Name (eg, section) []:Technology //部门

Common Name (eg, your name or your server's hostname) []:Amos //CA主机名

Email Address []:[email protected] //Email地址

修改文件夹权限

chmod 600 /etc/nginx/cert/*

chmod 700 /etc/nginx/cert

9下载Nextcloud

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

解压

unzip nextcloud-13.0.1.zip

移动到nginx站点目录

mv nextcloud/ /usr/share/nginx/html/

创建nextcloud的存储目录并设置权限

cd /usr/share/nginx/html/

mkdir -p nextcloud/data/

chown nginx:nginx -R nextcloud/

10编辑nginx配置文件

cd /etc/nginx/conf.d/

vim nextcloud.conf

upstream php-handler {

server 127.0.0.1:9000;

}

server {

listen 80;

server_name wangpan.zkzd.cn;

return 301 https://$server_name$request_uri;

}

server {

listen 443 ssl;

server_name cloud.nextcloud.co;

ssl_certificate /etc/nginx/cert/nextcloud.crt;ssl_certificate_key /etc/nginx/cert/nextcloud.key;add_header Strict-Transport-Security "max-age=15768000;

includeSubDomains; preload;";add_header X-Content-Type-Options nosniff;add_header X-Frame-Options "SAMEORIGIN";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;root /usr/share/nginx/html/nextcloud/;

location = /robots.txt {

    allow all;

    log_not_found off;

    access_log off;

}location = /.well-known/carddav {

  return 301 $scheme://$host/remote.php/dav;

}location = /.well-known/caldav {

  return 301 $scheme://$host/remote.php/dav;

}client_max_body_size 512M;fastcgi_buffers 64 4K;gzip off;

error_page 403 /core/templates/403.php;error_page 404 /core/templates/404.php;

location / {

    rewrite ^ /index.php$uri;

}

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)(/.*)$;

    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 php-handler;

    fastcgi_intercept_errors on;

    fastcgi_request_buffering off;

}

location ~ ^/(?:updater|ocs-provider)(?:$|/) {

    try_files $uri/ =404;

    index index.php;

}location ~* \.(?:css|js)$ {

    try_files $uri /index.php$uri$is_args$args;

    add_header Cache-Control "public, max-age=7200";

    add_header Strict-Transport-Security "max-age=15768000;

    includeSubDomains; preload;";

    add_header X-Content-Type-Options nosniff;

    add_header X-Frame-Options "SAMEORIGIN";

    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;

    access_log off;

}

location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {

    try_files $uri /index.php$uri$is_args$args;

    access_log off;

}

}

检查nginx语法正确重启nginx

nginx -t

systemctl restart nginx

注意:中间可能有php模块没有安装,自己yum安装一下缺少的模块不一一阐述了!

yum install php-dom

yum install php-xml --skip-broken

11登陆外面页面看是否搭建成功,一般是用域名也可以是IP访问,如果报错500 看下nginx配置文件 是否正确 百分之99是配置文件错误,希望对大家有所帮助。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangyuxun3/article/details/123915202

智能推荐

[疯狂Java]I/O:I/O流的最高境界——对象流(序列化:手动序列化、自动序列化、引用序列化、版本)_Lirx_Tech的博客-程序员宝宝

1. 什么是对象流:序列化/反序列化的概念    1) 对象流是和字节流/字符流同处于一个概念体系的:        a. 这么说字节流是流动的字节序列,字符流是流动的字符序列,那么对象流就是流动的对象序列咯?        b. 概念上确实可以这样理解,对象流就是专门用来传输Java对象的;        c. 但是字节和字符都是非常直观的二进制码(字节本身就是,而字符是一种二进

memcached程序端口监控脚本_weixin_33972649的博客-程序员宝宝

 线上memcached服务器启动了很多实例,端口很多,需要对这些端口进行监控,并在端口关闭的情况下自启动。监控脚本如下:[[email protected] ~]# ps -ef|grep /usr/bin/memcached|grep -v greproot 6139 1 0 2016 ? 04:49:49 /usr/bin/memcached -d -m...

TensorFlow框架做实时人脸识别小项目(二)_Goerge_L的博客-程序员宝宝

在第一部分中,分析了整个小项目的体系,重点讨论了用于人脸检测对齐的mtcnn网络的实现原理,并利用笔记本电脑自带的摄像头进行了测试。今天在这里要讨论的重点是人脸识别中的核心部分——facenet网络。facenet是Google开源的人脸识别框架,它的作用是把输入的人脸图像映射为多维特征向量,相当于对不同的人脸进行了不同的编码,同一个人脸的图像生成的编码几乎一致,不同的人脸图像生成的编码差异非常大...

Spring——7. 事务介绍及源码实现(一)_你想要怎样的未来的博客-程序员宝宝_事务 shouldskip

文章目录1. 事务的简单使用示例2. 事务的实现2.1 事务自定义标签2.1.1 注册 InfrastructureAdvisorAutoProxyCreator2.1.2 获取class/method的所有增强器2.1.3 获取匹配的增强器2.1.3.1 匹配的准备工作2.1.3.2 提取事务属性和进行匹配Spring事务在软件开发领域中,全有或者全无的操作被称为事务(Transaction),事务允许将几个操作组合成 一个要么全部发生要么全部不发生的工作单元。Spring为事务管理提供了丰富的功能

新装NGINX重启,出现错误 nginx: [error] open() "/usr/local/nginx/logs/nginx.pid"_weixin_30846599的博客-程序员宝宝

重装nginx出现,重启出现错误./nginx -s reloadnginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)解决办法: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/n...

钢七连实战C3-P2:项目源码结构 面向对象基础 堆分配_钢七连软件实战技术的博客-程序员宝宝

钢七连软件培训C3-P2 面向对象 第2节1.怎样阅读一套项目源码2.面向对象基本技术https://blog.csdn.net/weixin_42644456一、通用的学习路线,解决办法学习资源:慕课,样例代码。通用的解决办法:查资料,分析设计,编码,调试大学基础课程和基本功的重要性。程序员,设计师,架构师。二、面向对象具体知识程序是打出来的。不要发明一个项目,...

随便推点

Android——实现登录和注册功能_fantasy10111的博客-程序员宝宝_安卓实现登录注册功能

前言自学Android有段时间了,觉得是时候尝试写一些小demo尝试一下。这次尝试写了一个登录注册功能,大概涉及以下几个知识点:使用LitePal操作数据库、颜色渐变、嵌套布局。其他的皆是比较正常的知识。话不多说,进入正题。正文UI界面登录先来说说登录界面的实现。在布局上最外层我使用了LinearLayout,这也是我在布局中使用最多也是最熟悉的布局,所以我首选这个,比较方便,里面我嵌...

maven项目(错误一) 项目启动时报“org.springframework.core.env.ConfigurableEnvironment”的解决方案_小米加大炮的博客-程序员宝宝

一 问题描述:maven项目,由于jar冲突,导致项目启动时报错: 09:58:25,070 ERROR [org.springframework.web.context.ContextLoader] (org.springframework.web.context.ContextLoader:324) - Context initialization failedjava.lan...

IntelliJ IDEA 2017.3.2 x64破解_ZYP_9的博客-程序员宝宝

IntelliJ IDEA 2017.3.2 x64破解 下载jar包:http://download.csdn.net/download/qq_35001005/10225086 下载至你的idea安装目录/bin/ ,如下:E:\IDEA\IdeaInstall\IntelliJ IDEA 2017.3.2\bin\JetbrainsCrack-2.6.10-r

SOUI新组件SIpcObject介绍_weixin_33943836的博客-程序员宝宝

SIpcObject是一个基于Windows消息及共享内存的一个IPC(跨进程函数调用)的组件。GITHUB上有很多IPC模块,我这里又造了一个轮子,不一定比现有的IPC更好,不过我觉得已经足够简单了。老规矩,先看一下IPC模块的路径:再看一下IPC模块的接口: 1 #pragma once 2 3 #include <unknown/obj-...

XML、Schema约束、枚举以及注解_Figure_TheKeyboard的博客-程序员宝宝_xml schemal 定义枚举

XML的语法1.xml是由自定义的标签组成 <开始标签>标签体</结束标签> <自闭合标签/>2.xml文件的语法 1)必须要有一个文档声明 <?xml version="1.0" encoding="UTF-8" ?> 2)只有一个根标签 3)特殊字符 如< > & 必须使用特殊的比较进行代替 < < 小于 > &gt

】C# 开发Chrome内核浏览器(WebKit.net)_weixin_33796177的博客-程序员宝宝

WebKit.net是对WebKit的.Net封装,使用它.net程序可以非常方便的集成和使用webkit作为加载网页的容器。这里介绍一下怎么用它来显示一个网页这样的一个最简单的功能。第一步:下载WebKit.net 的bin文件。别小看这一步,你不一定能下载成功,原因你懂的。WebKit.net 的主页是http://webkitdotnet.s...