我真是信了某些站攻略的邪,瞎写的,也不知道自己配置过没有。
随着开学的临近,我也想重新调整下我的文档数据,正好原先使用的坚果云备份时间到期不想继续使用。(在5月做设计的时候遇到很严重的同步问题,一直没能解决)
所以把私人云储存的目光瞄到了 Vultr 赠送的50G空间(对于文档来说够用了,大文件都是用GDrive+OneDrive存储+本地冷备份,照片则本地冷备份+Google Photos+Yandex.Disk)。
环境要求
官方文档见: System requirements — Nextcloud 13 Administration Manual 13 documentation
本人是用的是惯例的: Ubuntu 16.04 LTS + LNMP 1.5 (lnmp.org)
LNMP环境搭建
- 是用lnmp.org提供的LNMP 1.5进行搭建,不过在安装前需要修改
lnmp.conf文件,启用PHP的fileinfo插件。(注:fileinfo并非必要,只不过如果不安装,后面在基本设置界面会有提醒,不如装了算了)
1 | screen -S lnmp |
本人是用的是Mysql 5.6.41, PHP 7.2.9, TCmalloc,但实际官方推荐的是Mysql 5.5以及PHP 7.0或7.1。(建议选择PHP 7.1,而不是本人选择的 PHP 7.2,因为部分扩展应用尚未提供对应支持),反正此处任你选择即可。安装需要一些时间,耐心等待即可。
- 自签SSL备用(此步并非必须,但你必须要配置https,你可以在后面添加vhost的时候是用Let’s Encrypt进行SSL证书签名),并将生成的
$DOMAIN.crt以及$DOMAIN.key复制到/usr/local/nginx/ssl备用。
1 | wget https://github.com/michaelliao/itranswarp.js/blob/master/conf/ssl/gencert.sh |
- 启用Opcache作为PHP 优化加速组件。
1 | ./addons.sh install opcache |
并在php.ini中修改相关配置。
1 | opcache.enable=1 |
- 并选择Memcached、Redis、Apcu其中之一作为缓存引擎。(具体选择请见官方文档 Configuring memory caching )
1 | ./addons.sh install memcached # 使用php-memcached |
- 创建vhost
使用lnmp命令创建vhost。这里一堆选项除了SSL之外全部为n。因为我们后面需要自己配置。
1 | root@vultr:~/lnmp1.5# lnmp vhost add |
- 删除
.user.ini,解除open_basedir限制
这一步一定要做,否则会遇到很多奇怪的问题。
使用lnmp提供的工具直接删除就行,在lnmp解压的目录执行一下命令:
1 | ./tool/remove_open_basedir_restriction.sh |
你也可以选择手动删除并将 /usr/local/nginx/conf/fastcgi.conf 里面的fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 在该行行前添加 # 或删除改行,然后重启nginx。
1 | # 删除网站根目录下的.user.ini |
获取Nextcloud并安装
- 到 Install – Nextcloud 中获取最新的下载地址并使用wget下载+移动。
1 | cd /tmp |
- 配置目录权限
1 | # 网站目录 |
配置数据库:使用phpMyadmin添加一个名为
nextcloud的用户,并创建与用户同名的数据库,授予所有权限。配置Nginx文件,官方文档参见 Nginx configuration。下面配置参照官方提供的样板以及lnmp自动生成的修改,请根据你的需要修改
server_name字段以及log记录位置。
1 | server |
至此,完成基础配置。也请别忘了添加域名的A以及AAAA记录。
网页完成安装以及配置调优
访问对应域名,如本例的cloud.example.com,你会看到NextCloud的安装界面,在此你可以填入自己管理员账户,并修改数据目录以及Mysql配置。稍等就可以完成最后的安装过程。
(你也可以使用cli的形式进行安装,具体见 Installing from command line — Nextcloud 13 Administration Manual 13 documentation 此处不再累述)
然后进入设置界面,修改默认语言为简体中文。 (对,不懂别tm用瞎改配置文件的方式修改语言,别人都提供了web界面还傻。

在管理-基本设置中将后台任务改为Cron的形式,并添加对应的crontab任务。
1 | root@vultr:~# crontab -u www -e |

添加缓存,参照官方文档 Configuring memory caching — Recommendations based on type of deployment 使用你之前安装的缓存组件来修改你的 config/config.php 文件,如使用APCu(缓存)和Redis(文件锁),则在其后添加以下片段
1 | 'memcache.local' => '\OC\Memcache\APCu', |
请注意,redis的可选配置项还有dbindex,password,timeout。你可以按需使用。
至此,所有配置完成。你可以使用官方客户端或者WebDAV的形式在本地连接使用。
