WeAir

搭建Nextcloud

Nextcloud是一套用于创建网络硬盘的客户端-服务器软件。其功能与Dropbox相近,但Nextcloud是自由及开放源代码软件,每个人都可以在私人服务器上安装并运行它。

搭建LNMP环境

  • 下载lnmp一键安装包并解压

1
2
sudo wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -O /usr/local/src/lnmp1.7.tar.gz
sudo tar -zxvf /usr/local/src/lnmp1.7.tar.gz -C /usr/local/src/ && cd /usr/local/src/lnmp1.7
  • 编辑lnmp.conf,以支持fileinfo

Enable_PHP_Fileinfo=’n’改为Enable_PHP_Fileinfo=’y’

1
sudo sed -i "s#Enable_PHP_Fileinfo='n'#Enable_PHP_Fileinfo='y'#g" lnmp.conf
  • 安装

1
sudo ./install.sh

进行安装,稍等片刻。

PS:强烈建议选择PHP7.0以上版本进行安装。

安装Nextcloud

  • 进入网站目录并下载安装Nextcloud

1
cd /home/wwwroot/ && sudo wget https://download.nextcloud.com/server/releases/nextcloud-13.0.12.zip && sudo unzip nextcloud-13.0.12.zip
  • 设置Nextcloud文件夹权限

1
sudo chown -R www:www nextcloud/

PS:nextcloud文件夹下有两个文件.htaccess.user.ini,如果要移动文件夹下的文件,请务必复制这两个,不然会报文件完整性错误。

  • 添加Nextcloud数据库

可以使用一键安装包自带的phpMyAdmin添加数据库,也可以直接使用命令行添加数据库。

  • 配置Nginx

可参考Nextcloud官方文档

  • 输入IP或域名进行访问

填入账号、密码,数据库用户、数据库密码、数据库名,完成安装。

PS:注意配置好防火墙,放行对应端口,以及数据库可单独创建一个用户并赋予相应权限。

常见问题

  • 访问界面为英文且无法更改为中文

修改php.ini,

1
sudo vim /usr/local/php/etc/php.ini

找到disable_functions =,删除scandir,,保存并退出,

1
sudo service php-fpm restart

重启PHP。

  • PHP的设置似乎有问题,无法获取系统环境变量。使用getenv(\”PATH\”)测试时仅返回空结果。

修改php-fpm.conf

1
sudo vim /usr/local/php/etc/php-fpm.conf

添加以下几行

1
2
3
4
5
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

然后重启PHP。

  • 您正在通过HTTP访问该站点, 我们强烈建议您按照安全提示中的说明配置服务器强制使用HTTPS。

可以通过Let’s Encrypt申请一个免费的证书,配置Nginx以支持HTTPS。

  • PHP无法访问/dev/urandom, 由于安全原因, 这是强烈不推荐的。

修改nginx配置文件下的fastcgi.conf

1
sudo vim /usr/local/nginx/conf/fastcgi.conf

fastcgi_param PHP_ADMIN_VALUE “open_basedir=$document_root/:/tmp/:/proc/“;修改为fastcgi_param PHP_ADMIN_VALUE “open_basedir=$document_root/:/tmp/:/proc/:/dev/urandom”;

  • PHP的组件OPcache没有正确配置。为了提供更好的性能, 我们建议在php.ini文件中使用下列设置:

1
2
3
4
5
6
7
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

修改php.ini,添加zend_extension=”opcache.so”,按照要求逐一修改或全部复制粘贴,重启PHP。

  • 内存缓存未配置。 如果可用,请配置 memcache 以增强性能。

安装redis以及phpredis组件,并开启redis,设置redis开机自启。

1
2
sudo yum install -y redis
sudo systemctl start redis && sudo systemctl enable redis

PS:显示未安装redis时,建议

1
2
sudo yum install -y epel-release
sudo yum update -y

进入软件包存放目录,

1
cd /usr/local/src

PHP官网下载phpredis组件并解压,

1
sudo wget https://pecl.php.net/get/redis-4.3.0.tgz && sudo tar -zxvf redis-4.3.0.tgz && cd redis-4.3.0/

phpize生成configure配置脚本,

1
sudo /usr/local/php/bin/phpize

构建,

1
./configure --with-php-config=/usr/local/php/bin/php-config

编译安装,

1
make && sudo make install

修改php.ini,添加extension=”redis.so”,重启PHP。

编辑nextcloud文件夹下的config文件夹下的config.php,添加

1
2
3
4
5
6
7
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),

如有其它问题,查询Nextcloud官方文档