搭建Nextcloud
Nextcloud是一套用于创建网络硬盘的客户端-服务器软件。其功能与Dropbox相近,但Nextcloud是自由及开放源代码软件,每个人都可以在私人服务器上安装并运行它。
准备
提前安装Nginx、MySQL、PHP,Nginx可参考Nextcloud官方文档配置,MySQL需要创建数据库,PHP需要开启Fileinfo。
安装Nextcloud
进入网站目录并下载安装Nextcloud
1 | cd /home/wwwroot/ && wget https://download.nextcloud.com/server/releases/nextcloud-13.0.12.zip && unzip nextcloud-13.0.12.zip |
设置Nextcloud文件夹权限
1 | chown -R www:www nextcloud/ |
PS:nextcloud文件夹下有两个文件.htaccess和.user.ini,如果要移动文件夹下的文件,请务必复制这两个,不然会报文件完整性错误。
输入IP或域名进行访问配置,填入账号、密码,数据库用户、数据库密码、数据库名,完成安装。
PS:注意配置好防火墙,放行对应端口,以及数据库可单独创建一个用户并赋予相应权限。
常见问题
1. 访问界面为英文且无法更改为中文
修改php.ini配置,重启PHP。
1 | sed -i '/disable_functions =/{s/scandir,//}' /usr/local/php/etc/php.ini |
2. PHP的设置似乎有问题,无法获取系统环境变量。使用getenv(\”PATH\”)测试时仅返回空结果。
修改php-fpm.conf添加如下配置,重启PHP。
1 | cat >> /usr/local/php/etc/php-fpm.conf <<EOF |
3. 您正在通过HTTP访问该站点, 我们强烈建议您按照安全提示中的说明配置服务器强制使用HTTPS。
可以通过Let’s Encrypt申请一个免费的证书,配置Nginx以支持HTTPS。
4. PHP无法访问/dev/urandom, 由于安全原因, 这是强烈不推荐的。
修改Nginx配置文件fastcgi.conf,重启Nginx。
1 | sed -i 's#open_basedir=$document_root/:/tmp/:/proc/#open_basedir=$document_root/:/tmp/:/proc/:/dev/urandom#' /usr/local/nginx/conf/fastcgi.conf |
5. PHP的组件OPcache没有正确配置。为了提供更好的性能, 我们建议在php.ini文件中使用下列设置。
PHP添加如下配置,重启PHP。
1 | cat >> /usr/local/php/etc/conf.d/opcache.ini <<EOF |
6. 内存缓存未配置。如果可用,请配置 memcache 以增强性能。
安装并运行redis,设置redis开机自启。
1 | yum install -y epel-release |
PHP官网下载并编译安装phpredis组件。
1 | wget https://pecl.php.net/get/redis-4.3.0.tgz -O /usr/local/src/redis-4.3.0.tgz |
PHP添加如下配置,重启PHP。
1 | cat >> /usr/local/php/etc/conf.d/redis.ini <<EOF |
编辑nextcloud的配置文件config.php,添加如下配置。
1 | 'filelocking.enabled' => true, |
如有其它问题,查询Nextcloud官方文档。