博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos6.5下使用lnmp架构安装nextcloud云盘
阅读量:6452 次
发布时间:2019-06-23

本文共 5587 字,大约阅读时间需要 18 分钟。

最近两年随着各大网盘纷纷关闭,百度云也早早的就开始限速,文件的安全也没有保障。所以还不如自己搭建一个网盘。网上看了下,发现有一个nextcloud比较好用。支持多平台客户端,支持分享,使用操作简单。支持插件扩展,文件预览,在线协作。

  1. 安装nginx

1
2
3
4
wget http:
//nginx
.org
/download/nginx-1
.10.3.
tar
.gz
tar 
-zxf nginx-1.10.3.
tar
.gz && 
cd 
nginx-1.10.3
.
/configure 
--prefix=
/usr/local/data/nginx 
--user=nginx --group=nginx --with-pcre --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
make 
&& 
make 
install

2.安装配置php

1
2
yum 
install 
http:
//rpms
.famillecollet.com
/enterprise/remi-release-6
.rpm
yum --enablerepo=remi-php56 
install 
php php-fpm php-mysql php-gd php-xml php-redis php-libs php-devel php-zlib php-mbstring

nginx 和php-fpm 的运行用户这里使用nginx

1
2
3
4
5
6
7
8
9
vim 
/etc/php-fpm
.conf
user = nginx
group = nginx
listen = 127.0.0.1:9000
env
[HOSTNAME] = $HOSTNAME
env
[PATH] = 
/usr/local/bin
:
/usr/bin
:
/bin
env
[TMP] = 
/tmp
env
[TMPDIR] = 
/tmp
env
[TEMP] = 
/tmp

3.安装mysql

1
2
yum -y 
install 
mysql mysql-server
service mysqld start

4.建库,授权

1
2
CREATE DATABASE nextcloud_db;GRANT ALL ON nextcloud_db.* TO 
'nextcloud'
@
'%' 
IDENTIFIED BY 
'nextcloud'
//
注意一定要加 
"%"
,否则无法让网络让任何人上传文件
FLUSH PRIVILEGES;

5.安装nextcloud

1
2
3
4
5
wget https:
//download
.nextcloud.com
/server/releases/nextcloud-10
.0.2.zip --no-check-certificate
unzip nextcloud-10.0.2.zip
mv 
nextcloud 
/usr/local/data/nginx/html
/usr/local/data/nginx/html
chown 
-R nginx.nginx

创建数据目录,这里建议数据目录不要和web目录放到一起

1
/usr/local/data/nginx/html/nextcloud/data

6.申请证书

为了网盘的安全,有必要使用https 证书,这里可以在阿里云后台申请免费的DV证书

7.配置nginx

创建虚拟主机文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
cd 
/usr/local/data/nginx/conf
vim nextcloud.conf
upstream php-handler {
server 127.0.0.1:9000;
}server {listen 80;
server_name cloud.nextcloud.com;
return 
301 https:
//
$server_name$request_uri;}server {listen 443 ssl;server_name cloud.nextcloud.com;
ssl_certificate 
/usr/local/data/nginx/conf/nextcloud
.crt;
ssl_certificate_key 
/usr/local/data/nginx/conf/nextcloud
.key;
#添加如下header主要为了安全
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;
#nextcloud代码目录
root 
/usr/local/data/nginx/html/nextcloud/
;
location = 
/robots
.txt {allow all;log_not_found off;access_log off;}
#为了支持user_webfinger 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
;}
#设置上传文件的最大大小,php也得修改
client_max_body_size 512M;fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag headergzip off;
error_page 403 
/core/templates/403
.php;error_page 404 
/core/templates/404
.php;
#重要的:将所有请求转发到index.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 twicefastcgi_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;}
# 添加js和css文件的缓存控制头
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;}}
1
2
3
vim nginx.conf
include nextcloud.conf;
service nginx start

8.配置php上传大小

1
2
3
4
5
vim 
/etc/php
.ini
max_execution_time = 0
post_max_size = 512M
upload_max_filesize = 512M
service php-fpm start

9.配置nextcloud

10.nextcloud 配置redis缓存

使用Redis做内存缓存可以有效提升程序运行速度。

1
2
3
4
5
6
7
8
curl -O http:
//download
.redis.io
/releases/redis-3
.2.8.
tar
.gz
tar 
-zxvf redis-3.2.8.
tar
.gz
cd 
redis-3.2.8
/deps/
make 
geohash-int hiredis jemalloc linenoise lua
cd 
..
make 
&& 
make 
install
cd 
utils/
.
/install_server
.sh

配置redis

1
2
3
vim 
/etc/redis/6379
.conf
# requirepass foobared
requirepass ExpvUwNOk9XRawC8
bind 192.168.40.200

启动

1
redis-server 
/etc/redis/6379
.conf

配置nextcloud

1
2
3
4
5
6
7
8
cd 
/usr/local/nginx/html/nextcloud/config
vim config.php 
'memcache.local' 
=> 
'\OC\Memcache\Redis'
,
'redis' 
=> array(
'host' 
=> 
'192.168.40.200'
,
'port' 
=> 6379,
'password' 
=> 
'ExpvUwNOk9XRawC8'
,
),

刷新页面

设置定时

1
*
/15 
* * * * 
/usr/bin/php 
/usr/local/nginx/html/nextcloud/cron
.php >
/dev/null
本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1940531,如需转载请自行联系原作者
你可能感兴趣的文章
在不花一分钱的情况下,如何验证你的创业想法是否可行?《转》
查看>>
Linux/Android 性能优化工具 perf
查看>>
learn go recursive
查看>>
GitHub使用教程、注册与安装
查看>>
论以结果为导向
查看>>
CODE[VS] 1294 全排列
查看>>
<<The C Programming Language>>讀書筆記
查看>>
如何在目录中查找具有指定字符串的文件(shell)
查看>>
安卓学习笔记2
查看>>
选择排序
查看>>
DotNet(C#)自定义运行时窗体设计器 一
查看>>
P2627 修剪草坪[dp][单调队列]
查看>>
JS详细入门教程(上)
查看>>
Android学习笔记21-ImageView获取网络图片
查看>>
线段树分治
查看>>
git代码冲突
查看>>
lnmp1.3 配置pathinfo---thinkphp3.2 亲测有效
查看>>
查看Linux 系统的配置和增减用户/增减组/增减权限
查看>>
利用android studio 生成 JNI需要的动态库so文件
查看>>
poll
查看>>