PHP的设置似乎有问题,无法获取系统环境变量.使用getenv(\"PATH\")测试时仅返回空结果.测试时仅返回空结果.')
PHP模块"fileinfo"缺失.我们强烈建议启用此模块以便在MIME类型检测时获得最准确的结果.
一些文件没有通过完整性检查.了解如何解决该问题请查看我们的文档。(无效文件列表… / 重新扫描…)")
PHP无法访问/dev/urandom,出于安全原因这是强烈不推荐的。更多信息请参见文档
HTTP请求头"Strict-Transport-Security"没有配置为至少 “15552000” 秒。出于增强安全性考虑,我们推荐按照 安全提示中的说明启用HSTS。
内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。
Opcache配置参数
您的网页服务器未正确设置以解析"/.well-known/caldav".更多信息请参见文档
您的网页服务器未正确设置以解析"/.well-known/carddav".更多信息请参见文档
数据库丢失了一些索引.由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复.您可以在Nextcloud运行时通过命令行手动执行"occ db:add-missing-includes"命令修复丢失的索引.索引修复后会大大提高相应表的查询速度
为PHP分配更多内存The current PHP memory limit is below...
无法生成分享链接,分享链接按钮消失
该实例缺失了一些推荐的 PHP 模块。为提高性能和兼容性,我们强烈建议安装它们。imagick
Chrome等浏览器点击登录等按钮无反应,安装时数据库无法选择等js出错

q
1406
这篇文章中提及的方法只在ubuntu16.04+lnmp1.5环境下测试有效,不同环境未必奏效.

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

Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm.

解决方法
php-fpm.conf尾部添加一行

updatedb
locate php-fpm.conf
vi /usr/local/php/etc/php-fpm.conf
#添加如下
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

w

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 

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

lnmp php-fpm restart

2019.7.15更新使用了lnmp1.6,php7.3,Ubuntu18.04.2这种环境之后上面的方法对于fileinfo的方法部分失效
解压了lnmp里的php压缩包进入fileinfo文件夹后,开始同上过程编译,然后搜索fileinfo.so文件的位置,把它的路径加到php.ini文件里,具体如下

locate fileinfo.so
#输出/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/fileinfo.so
#复制这个路径
vi /usr/local/php/etc/php.ini
#在有一大堆`;extension=...`的地方,或者直接/extension=fileinfo
#加上一句
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/fileinfo.so
#原有的;/extension=fileinfo不动保持注释状态
lnmp php-fpm restart

如果报如下错误:

Gracefully shutting down php-fpm . done
Starting php-fpm [06-Sep-2018 12:24:13] NOTICE: PHP message: PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) ‘/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/fileinfo.so’ in Unknown on line 0
done

则需要重新进入扩展包目录,先执行如下命令:

make clean

然后再重新执行前面的编译操作.

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

e
在搭建之初,解压官方安装zip包latest-13.zip时产生的/nextcloud中有两个隐藏文件.htaccess.user.ini没有被mv到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`,出于安全原因这是强烈不推荐的。更多信息请参见文档

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

但是通过各种解决方案发现,解决问题的根本是关闭"放跨目录"功能,所以在军哥的lnmp网站找到了关于放跨目录的设置https://lnmp.org/faq/lnmp-vhost-add-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的Crypto设置中开启HSTS即可,如果这里不开,即使在服务器中设置HSTS也不会生效,如果没套CF,则在Nginx的配置文件中的443口里的server_name下面新起一行

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

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

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

更多信息请参见文档。https://docs.nextcloud.com/server/13/admin_manual/configuration_server/caching_configuration.html

cd /lnmp1.5
./addons.sh install redis
vi /home/wwwroot/joooe.xyz/config/config.php
#在末尾),前添加如下
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
      ),

Opcache配置参数

使用lnmp一键包安装opcache

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

源码编译安装

cd /lnmp1.5/src
#下面这行如果之前执行过则跳过
tar -zxvf php-7.2.6
cd php-7.2.6
#下面这行如果之前执行过则跳过
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-opcache
make && make install

修改php.ini

#如果找不到位置则执行
locate php.ini
vi /usr/local/php/etc/php.ini
#命令状态下输入/opcache定位到该区块,按照报错修改参数病去掉相应语句前面的;

注意:如果你使用的是lnmp一键包,则上面的修改不会起作用
继续操作,找到opcache.ini并按照报错要求修改

updatedb
locate opcache.ini
vi /usr/local/php/conf.d/004-opcache.ini
#按照要求修改对应数值并保存即可
#重启lnmp
lnmp restart

刷新报错页,已生效

您的网页服务器未正确设置以解析"/.well-known/caldav"

这个和您的网页服务器未正确设置以解析"/.well-known/carddav".更多信息请参见文档报错同时在13.x升级14.x后出现,报错中的官方参考文档如下:参考文档,文档阐述了Apache服务器的配置方法,大概看来是需要手动添加一些rewrite规则,对于Nginx服务器则直接看这个文档即可:参考文档,这是一个官方的Nginx配置文档,里面有一段注释表明了应该添加进去的义端代码,这段代码的缺失导致了报错,原代码段如下

    # The following 2 rules are only needed for the user_webfinger app.
    # Uncomment it if you're planning to use this app.
    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

    location = /.well-known/carddav {
      return 301 $scheme://$host/remote.php/dav;
    }
    location = /.well-known/caldav {
      return 301 $scheme://$host/remote.php/dav;
    }

完整代码参考: https://www.j000e.com/linux/nextcloud.html#8.1.1

数据库丢失了一些索引.由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复.您可以在Nextcloud运行时通过命令行手动执行"occ db:add-missing-includes"命令修复丢失的索引.索引修复后会大大提高相应表的查询速度

这个报错发生在我手动升级nextcloud后,提示写得很清楚,进入nextcloud所在目录,然后执行sudo -u www php occ db:add-missing-includes即可自动完成修复
occ
图中黄色提示部分是php分配内存不足512导致,下面单独记录.

为PHP分配更多内存The current PHP memory limit is below...

The current PHP memory limit is below the recommend value of 512MB这个提示出现在上图中在服务器使用occ命令时出现,为了给PHP分配更大内存

vi /usr/local/php/etc/php.ini
#查询关键字
/memory_limit
#默认128改为比512大的值,我改了600,然后保存退出
:wq
#查看生效
php -i | grep memory_limit
#输出的值为刚才修改的值,再执行occ命令就不会报错了

无法生成分享链接,分享链接按钮消失

屏蔽广告插件导致的,添加nextcloud到白名单或关闭插件即可.

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

lnmp已经带了安装脚本

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

Chrome等浏览器点击登录等按钮无反应,安装时数据库无法选择等js出错

多半是CDN导致的js错误
我得报错如图
df
解决方法:
进入cloudflare的speed选项卡关闭其中的Rocket Loader™选项,几乎立即生效
dfs
eg

THE END
最后修改:2019 年 08 月 02 日 18 : 10
本文链接:https://www.j000e.com/Nextcloud/nextcloudcodeserror.html
版权声明:本文『Nextcloud多处Bug代码完整性检查出现异常的解决』为『Joe』原创。著作权归作者所有。
转载说明:Nextcloud多处Bug代码完整性检查出现异常的解决 || Joe's Blog』转载许可类型见文末右下角标识。允许规范转载时,转载文章需注明原文出处及地址。
Last modification:August 2, 2019