Overview
- system: deepin15.9
- environment
- php7.2
- mysql5.7
- redis
- nginx
- nextcloud15.0.4
- frp0.24.1
nextcloud无法运行在windows上,不然我就使用windows了。
frp用来内网穿透,允许公网访问。
环境安装
1 | echo y | apt-get update |
数据库配置
1 | create database nextcloud; |
nextcloud下载以及部署
- 在nextcloud官网 下载nextcloud的server包,解压之后放在/repository/ 下。你也可以放在别的地方,但nginx中的root路径要更改
nginx配置
nginx.conf
确保nextcloud的文件夹的路径和server的root的地址一致
1 | user www-data; |
php配置
php.ini
1 | [PHP] |
www.conf
1 | ; Start a new pool named 'www'. |
开始使用
重启nginx以及php-fpm
访问127.0.0.1进入nextcloud配置页设置管理员账户密码和配置数据库。
注意,进入setting的overview之后,nextcloud会自动扫描服务器配置以检查安全性。这里会出现一些问题可能影响到服务器安全,你可以按照指示来做相应配置。一般来说这里会有数据库data文件夹可以被外部直接访问(这个必须改掉);没有配置redis缓存(这个最好配置以提升性能)
warnings solutions see: https://docs.nextcloud.com/server/15/admin_manual/configuration_server/security_setup_warnings.html
一般来说,会出现通过不信任的域名访问的情况,这是因为,最开始访问nextcloud时所使用的域名或ip会默认被视作trusted_domain存储,这可能是个局域网域名或者直接是127.0.0.1,而之后可能会通过其他ip域名访问比如内网穿透所使用的公网ip和域名。之后还想加入trusted_domain就需要手动添加。在 nextcloud/config/config.php的trusted_domain数组里添加即可。(redis的配置也是这样的)
示例config.php
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<?php
$CONFIG = array (
'instanceid' => '',
'passwordsalt' => '9PDaah6ONL+fiIFCgNmzJ8Fa/QctrU',
'secret' => '',
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => '127.0.0.1',
'port' => 6379,
),
'trusted_domains' =>
array (
0 => '172.22.161.174',
1 => '192.168.12.1'
),
'datadirectory' => '/repository/nextcloud/data',
'dbtype' => 'mysql',
'version' => '15.0.5.3',
'overwrite.cli.url' => 'http://172.22.161.174',
'dbname' => 'nextcloud',
'dbhost' => 'localhost:3306',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'nextcloud',
'dbpassword' => '',
'installed' => true,
'mail_smtpmode' => 'smtp',
'mail_sendmailmode' => 'smtp',
);