Nextcloud网盘的安全及文件配置优化大全

最近需要自建一个网盘来存储和发布文件,经过筛选后发现nextcloud还不错,安装也方便,PHP在线安装设置好用户密码数据库连接后就OK了,最主要的是支持WebDAV,这是个好东西。nextcloud支持手机或电脑上客户端,而且安卓和苹果都支持,也可以下载其它的网盘文件管理工具,连接成功后就可以直接读取、使用文件。


最近需要自建一个网盘来存储和发布文件,经过筛选后发现还不错,安装也方便,PHP在线安装设置好用户密码数据库连接后就OK了,最主要的是支持WebDAV,这是个好东西。nextcloud支持手机或电脑上客户端,而且安卓和苹果都支持,也可以下载其它的网盘文件管理工具,连接成功后就可以直接读取、使用文件。
网盘在服务器上安装后,查看概览后,会出一堆的安全与设置警告,又是一个大坑!,Google上搜了一下,关于nextcloud的内容不是很多!

PHP 的安装似乎不正确,无法访问系统环境变量。getenv("PATH") 函数测试返回了一个空值。 请参照安装说明文档 ↗中的 PHP 配置说明查阅您服务器的PHP配置信息,特别是在使用 php-fpm 时。
需要在php-fpm.conf文件尾部添加一行代码。php-fpm.conf在服务器上安装的php目录下的etc目录里。这个每个人安装的都不同。找到自己的php-fpm.conf,使用vi编辑。

vi /usr/local/php/etc/php-fpm.conf

将下列代码复制到php-fpm.conf末端。

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
systemctl reload php-fpm

重启PHP服务使修改生效。
您的网页服务器未正确设置以解析“/.well-known/caldav”。您的网页服务器未正确设置以解析“/.well-known/carddav”。
这个需要在nginx里面修改配置文件nginx.conf

vi /usr/local/nginx/conf/nginx.conf

打开文件后,在server{}的里面加上两行代码

rewrite /.well-known/carddav /remote.php/dav permanent;
rewrite /.well-known/caldav /remote.php/dav permanent;

在Apache2x下,修改httpd.conf配置文件,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。
将配置文件里的 AllowOverride none全部改成 AllowOverride all
内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。
缓存通过将数据,代码和其他对象存储在内存中来提高性能。必须安装和配置Nextcloud服务器的内存缓存配置。
首先修改你的mysql配置,编辑my.cnf文件,将innodb_buffer_pool_size的数值设置1G或者更高,这个视系统内存大小而定,一般建议服务器内存的50%-70%。
设置innodb_io_capacity = 4000,如果没有此项,请复制粘贴到my.cnf文件内。保存重启mysql服务。
Nextcloud推荐是的Apcu,可以搭配memcached一起使用。开启php的Apcu扩展和memcached扩展,然后在Nextcloud网盘目录的的config.php文件中添加:
最新的扩展文件我们可以在http://pecl.php.net/的库里搜索。目前最新版本是5.18
安装Apcu扩展:

wget http://pecl.php.net/get/apcu-5.1.18.tgz
tar zxvf apcu-5.1.18.tgz
cd apcu-5.1.18
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install

安装扩展到你PHP的安装目录下面的bin/php-config内,路径要按照自己的安装路径来设置,否则会出错。
安装完毕后,下面会有一个apcu.so的存放目录。将下面代码复制到php.ini文件里,然后重新启动php服务。

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/apcu.so
apc.enabled= on
apc.shm_size= 64M
apc.enable_cli = on

安装Memcached扩展:
Memcached扩展总共需要编译安装 4 个软件:

首先安装 Memcached依赖的libevent;
然后安装 Memcached库;
再安装 PHP PECL的Memcached插件依赖的 libmemcached库;
最后安装 PHP PECL的 Memcached插件.
顺序一定不要搞错!
memcached扩展需要先安装依赖libevent,目前libevent的最新版本是2.1.11
安装libevent依赖:

wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz
tar -zxvf libevent-2.1.11-stable.tar.gz
cd libevent-2.1.11-stable
./configure --prefix=/usr/local/libevent
make
make install

下载解压编译安装一气呵成。然后安装下一个。
安装 Memcached库,注意Memcached库和Memcached扩展是两个东西,不要搞混了。Memcached库的最新版本是1.6.0
安装 Memcached库:

wget http://www.memcached.org/files/memcached-1.6.0.tar.gz
tar -zxvf memcached-1.6.0.tar.gz
cd memcached-1.6.0
./configure --prefix=/usr/local/memcached
make 
make install

安装libmemcached库:

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar -zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/usr/local/libmemcached --with-memcached=/usr/local/memcached/bin/memcached
make 
make install

上面的依赖库安装完毕后,下一步安装memcached扩展,去http://pecl.php.net/搜索一下memcached,最新版本是3.15
安装memcached扩展:

wget http://pecl.php.net/get/memcached-3.1.5.tgz
tar -zxvf memcached-3.1.5.tgz
cd memcached-3.1.5
phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached --disable-memcached-sasl
make -j4 
make install

安装成功后,在Installing shared extensions:后面就是memcached.so的存放地址。
将下面内容复制粘贴到php.ini文件里。操作方式与上面安装apcu扩展的一样。

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/memcached.so

最后重新启动php服务,重启使修改的配置生效

systemctl reload php-fpm

安装redis扩展:

wget http://pecl.php.net/get/redis-5.2.0.tgz
tar -zxvf redis-5.2.0.tgz
cd redis-5.2.0
phpize
./configure --with-php-config=/usr/local/php/bin/php-config

复制下面内容到php.ini文件内,重新启动php服务,启用redis扩展成功。

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/redis.so

扩展已经安装完毕了,接下来是修改Nextcloud的config.php文件。
在网站目录下找到config,里面找到config.php。编辑config.php
在config.php的里面$CONFIG = array (的下面加入以下内容,这个是使用apcu的扩展。

'memcache.local' = '\\OC\\Memcache\\APCu',

PHP 的 OPcache 模块未载入。推荐开启获得更好的性能。
那么什么是Opcache呢?
Opcache 的前生是 Optimizer+ ,它是PHP的官方公司 Zend 开发的一款闭源但可以免费使用的 PHP 优化加速组件。 Optimizer+ 将PHP代码预编译生成的脚本文件 Opcode 缓存在共享内存中供以后反复使用,从而避免了从磁盘读取代码再次编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。从而加速PHP的执行。
如何安装Opcache?
PHP7默认是安装了Opcache的,只是没有启用,现在让我们启用一下。
编辑PHP7的配置文件
vim /usr/local/php/etc/php.ini
输入查找命令:/opcache
定位到[opcache]的字段里
将下面代码复制到php.ini里面

zend_extension=opcache.so
opcache.enable=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
opcache.optimization_level=1
opcache.force_restart_timeout=3600


Opcache已经成功启用了。
PHP 内存限制低于建议值 512MB。
编辑php.ini文件,将memory_limit改为512M

vi /usr/local/php/etc/php.ini
memory_limit = 512M

您的 PHP 没有 FreeType 支持,导致配置文件图片和设置界面中断。
很多人认为安装了GD库,支持了freetype,freetype不是一个独立的PHP扩展,是GD库下面的。

wget https://download.savannah.gnu.org/releases/freetype/freetype-2.10.0.tar.gz
tar -zxvf freetype-2.10.0.tar.gz
cd freetype-2.10.0
./configure --prefix=/usr/local/freetype
make
make install

进入到php7安装文件的ext/gd目录下

./configure --with-php-config=/usr/local/php/bin/php-config --with-freetype=/usr/local/freetype
make
make install

现在GD库已经支持freetype了。
数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。
这个可以在网站目录内执行命令解决。
CD进入网站存放目录,例如网站在wwwroot/nextcloud下面,

cd /wwwroot/nextcloud
sudo -u www php occ db:convert-filecache-bigint
sudo -u www php occ db:add-missing-indices


如果系统不支持使用php命令,报错:php: command not found
先使用echo $PATH查看下系统变量,如果usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/php/bin不存在的话,使用命令添加。

ln -s /usr/local/php/bin/php /usr/bin/php

该实例缺失了一些推荐的 PHP 模块。为提高性能和兼容性,我们强烈建议安装它们。imagick
先安装一下ImageMagick的源。

sudo yum -y install http://mirror.centos.org/centos/7/os/x86_64/Packages/ImageMagick-devel-6.7.8.9-18.el7.x86_64.rpm
yum search ImageMagick-deve
yum install ImageMagick-devel.x86_64

安装ImageMagick-devel后安装imagick,一定要安装ImageMagick-devel,否者安装报错!
pecl.php.net上下载个最新版,目前最新稳定版本是3.4.4

wget http://pecl.php.net/get/imagick-3.4.4.tgz
tar -zxvf imagick-3.4.4.tgz
cd imagick-3.4.4
phpize
./configure --prefix=/usr/local/imagemagick  --enable-shared
make
make install

将下面的内容添加到php.ini里。重启PHP服务,使扩展生效。

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/imagick.so

系统提示需要安装LDAP扩展。
用yum方式安装openldap和openldap-devel,安装后复制文件到/usr/lib/目录

yum install openldap
yum install openldap-devel
cp -frp /usr/lib64/libldap* /usr/lib/

进入PHP安装文件目录

cd php-7.4.3/ext/ldap
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install

然后在php.ini文件中添加

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/ldap.so
评分

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注