nextcloud

Nextcloud多处错误代码完整性检查

五仁 · 5月21日 · 2019年本文共3396个字 · 预计阅读12分钟5564次已读

系统:CentOS 7

WEB环境:LNMP搭建

问题总览

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

2、 PHP模块“fileinfo”缺失。我们强烈建议启用此模块以便在MIME类型检测时获得最准确的结果。

3、一些文件没有通过完整性检查。了解如何解决该问题请查看我们的文档。(无效文件列表… /重新扫描…)

4、PHP无法访问/dev/urandom,出于安全原因这是强烈不推荐的。更多信息请参见文档

5、 HTTP请求头“Strict-Transport-Security”没有配置为至少“15552000”秒。出于增强安全性考虑,我们推荐按照安全提示中的说明启用HSTS。

6、内存缓存未配置,为了提升使用体验,请尽量配置内存缓存

7、 PHP 的 OPcache 模块未载入。推荐开启获得更好的性能。

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

9、 PHP内存限制低于建议值512MB.

问题一

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

解决办法:

在PHP-FPM配置文件:/usr/local/php/etc/php-fpm.conf 最后加上一句:

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

问题二

PHP模块“fileinfo”缺失。我们强烈建议启用此模块以便在MIME类型检测时获得最准确的结果。

解决办法:

先进入LNMP的PHP的安装目录

cd /lnmp1.5/src/

然后ls一下查看是否有PHP安装完成产生的目录,如php-7.2.6,如果没有则安装该文件夹下的php-7.2.6.tar.bz2,如果有则进入

ls
tar -xvf php-7.2.6.tar.bz2
cd php-7.2.6/ext/fileinfo

安装扩展

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

修改php.ini中,添加fileinfo扩展

vi /usr/local/php/etc/php.ini

六中命令输入侧/fileinfo回车定位,删除extension = fileinfo前面的注释;然后保存退出
重启PHP-FPM

lnmp php-fpm restart

问题三

一些文件没有通过完整性检查。了解如何解决该问题请查看我们的文档。(无效文件列表… /重新扫描…)

解决办法:

在搭建之初,解压官方安装压缩包latest-13.zip时产生的/nextcloud中有两个隐藏文件.htaccess状语从句:.user.ini没有被压到的wwwroot下,所以单独要转移他们
注意:解压在出来的nextcloud文件夹数状语从句:/../storage.j000e.com文件夹数中都有.user.ini文件,但是必须用nextcloud中的替换后者即网站文件夹数中的,而且两个文件都需要单独赋权才能进行操作。

cd /home/wwwroot/storage.j000e.com/
chattr -i .user.ini
rm .user.ini
cd /nextcloud
chattr -i .user.ini
mv .htaccess /home/wwwroot/storage.j000e.com/
mv .user.ini /home/wwwroot/storage.j000e.com/

回到报错页点解重新扫描即可。

问题四

PHP无法访问/dev/urandom,出于安全原因这是强烈不推荐的。更多信息请参见文档

解决办法:

这个问题谷歌的上解决大多数都是方法在php.ini中。去掉open_basedir=前的分号,再然后添加后面/dev/urandom或者.:/tmp/:/dev/urandom,对于多网站目录则添加/www/wwwroot/***/:/tmp/:/proc/:/dev/urandom,除了这些还有就是对阿帕奇的方案,不适用于nginx的

但是通过各种解决方案发现,解决问题的根本是关闭 “放跨目录” 功能,所以在军哥的LNMP网站找到了关于放跨目录的设置https://lnmp.org/faq/lnmp-vhost-附加howto.html#user.ini文件,关闭即刻,方法如下

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

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";前添加一个#,退出保存然后lnmp restart生效,这里我只改了这个配置文件就生效的,并未改.user.ini

问题五

HTTP请求头“Strict-Transport-Security”没有配置为至少“15552000”秒。出于增强安全性考虑,我们推荐按照安全提示中的说明启用HSTS。

解决办法:

此操错在使用HTTPS时出现,目的是让服务器开启HSTS,虽然安全性有点提升,但是经过反复折腾我非常不建议开启HSTS,尤其是套了的CloudFlare的域名,因为启用后浏览器会被要求记住该域名的HTTPS请求,以后想调试还需要清理浏览器的HSTS记录,非常麻烦,至于CF,如果套CF,则在CF的加密设置中开启HSTS即可,如果这里不开,即使在服务器中设置HSTS也不会生效,如果没套CF,则在Nginx的的配置文件中的443的口里server_name下面新起一行

add_header Strict-Transport-Security "max-age=63072000;";

保存生效。
注意!此网站不要套CF的域名,CF的CDN会导致网站的js失效,也就是浏览器能打开网页但是无法点击任何按钮,我使用后出现了火狐和Chrome浏览器无法使用网站的情况,只有IE和边缘可以,等于废站。所以应直接使用域名商的解析。

问题六

内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。

解决办法:

安装APCu

cd /root/lnmp1.5
./addons.sh install apcu

安装完成后编辑 /home/wwwroot/cloud.yourdomain.com/config/config.php 文件,加上

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

问题七

PHP 的 OPcache 模块未载入。推荐开启获得更好的性能。

解决办法:

安装OPcahe

cd /root/lnmp1.5
./addons.sh install opcache

配置OPcahe

  • LNMP1.4后,添加扩展已经不再修改php.ini,而是单独的 /usr/local/php/conf.d/004-opcache.ini,nextcloud推荐配置如下
[Zend Opcache]
zend_extension="opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.fast_shutdown=1
opcache.enable_cli=1
opcache.save_comments=1

问题八

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

解决办法:

安装ImageMagick

yum install ImageMagick-devel
cd /root/lnmp1.5
./addons.sh install imageMagick

修改 /usr/local/php/etc/php.ini,第一行加上:

extension="imagick.so"

问题九

PHP内存限制低于建议值512MB.

解决办法:

编辑 /usr/local/php/etc/php.ini,将memory_limit改为512M

memory_limit = 512M

END

0 条回应